Uploaded image for project: 'MariaDB Server'
  1. MariaDB Server
  2. MDEV-3706

LP:985828 - regression in sql queries using sub queries (with order by)

Details

    • Bug
    • Status: Closed (View Workflow)
    • Trivial
    • Resolution: Won't Fix
    • None
    • None
    • None

    Description

      1. Since mariadb version 5.3.3, I do have regression with sql queries using
      2. sub queries (with order by) and user variables. Theses queries just worked
      3. fine since many months/years, and they now return wrong result. May be
      4. it's just me doing something that's not supposed to work. I include here
      5. detailed explanation. Any hint would be highly appreciated
      1. I wish to parse this stock table in a given order and
      2. display in the same time a column showing the quantity
      3. cumulated. So expected result is (with "ORDER BY uid DESC") :
      4. ---------------------------
      5. uid quantity total_quantity
      6. ---------------------------
      7. 3 4 4
      8. 1 2 6
      9. ---------------------------

      DROP TABLE IF EXISTS stock_table;
      CREATE TABLE stock_table ( `uid` BIGINT UNSIGNED NOT NULL, `quantity` BIGINT UNSIGNED NOT NULL);
      INSERT INTO stock_table values (1, 2), (3, 4);

      SET @total_quantity := 0 ;
      SELECT
      q1.*,
      @total_quantity := @total_quantity + q1.quantity as total_quantity
      FROM (SELECT stock_table.uid,
      stock_table.quantity
      FROM
      stock_table
      ORDER BY
      stock_table.uid DESC) as q1;

      1. that was giving the expected result for us since a very long time,
      2. on older version of mariadb and mysql. We were relying on the fact,
      3. in our usage, that mariadb was always parsing the subquery in the specified
      4. order. But theses days (5.5.22-MariaDB-log), it does not work, it give :
      5. ---------------------------
      6. uid quantity total_quantity
      7. ---------------------------
      8. 1 2 2
      9. 3 4 6
      10. ---------------------------
      11. we want uid to be 3 then 1
        #
      12. It start failing after we moved from mariadb 5.3.2-beta to 5.3.3-rc
      13. In the changelog http://kb.askmonty.org/en/mariadb-533-changelog
      14. I see that there is optimization on "useless subquery clauses", it
      15. could be related.
      1. Is it expected that the outer query does not read the subquery in
      2. the order specified by the subquery ?
      3. Is there a way to solve this problem with mariadb if this is not considered
      4. as a regression?

      Attachments

        Activity

          People

            sanja Oleksandr Byelkin
            sebastienrobin Sebastien Robin (Inactive)
            Votes:
            0 Vote for this issue
            Watchers:
            0 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved:

              Git Integration

                Error rendering 'com.xiplink.jira.git.jira_git_plugin:git-issue-webpanel'. Please contact your Jira administrators.