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

Wrong result set from a query with DISTINCT and HAVING over a SF call

    XMLWordPrintable

Details

    • Bug
    • Status: Confirmed (View Workflow)
    • Major
    • Resolution: Unresolved
    • 5.5, 10.0, 10.1, 10.2, 10.3, 10.4, 10.6.11, 10.6, 10.7, 10.8, 10.9, 10.10
    • 10.4, 10.5, 10.6
    • Optimizer

    Description

      The query with HAVING from the following test case

      SET @@sql_mode = '';
       
      CREATE TABLE series (
        val INT(10) UNSIGNED NOT NULL
      );
      INSERT INTO series VALUES(1);
      CREATE TABLE seq_calls (
        c INT
      );
      INSERT INTO seq_calls VALUES(0);
       
      DELIMITER |;
      CREATE FUNCTION next_seq_value() RETURNS INT
      BEGIN
       DECLARE next_val INT;
       SELECT val INTO next_val FROM series;
       UPDATE series SET val=mod(val + 1, 2);
       UPDATE seq_calls SET c=c+1;
       RETURN next_val;
      END;
      |
      DELIMITER ;|
       
      CREATE TABLE t1 (t INT, u INT, KEY(t));
      INSERT INTO t1 VALUES(10, 10), (11, 11), (12, 12), (12, 13),(14, 15), (15, 16),
                           (16, 17), (17, 18);
      ANALYZE TABLE t1;
       
      SELECT * FROM series, seq_calls;
      SELECT DISTINCT t1.t, next_seq_value() r  FROM t1, t1 P
             WHERE P.t = t1.t HAVING r = 1 ORDER BY t1.u;
       
      DROP TABLE t1;
      DROP FUNCTION next_seq_value;
      DROP TABLE series, seq_calls;
      

      returns a wrong result set:

      MariaDB [test]> SELECT DISTINCT t1.t, next_seq_value() r  FROM t1, t1 P
          ->        WHERE P.t = t1.t HAVING r = 1 ORDER BY t1.u;
      +------+------+
      | t    | r    |
      +------+------+
      |   10 |    0 |
      |   11 |    0 |
      |   12 |    0 |
      |   14 |    0 |
      |   15 |    0 |
      |   16 |    0 |
      |   17 |    0 |
      +------+------+
      

      Attachments

        Activity

          People

            monty Michael Widenius
            igor Igor Babaev
            Votes:
            0 Vote for this issue
            Watchers:
            5 Start watching this issue

            Dates

              Created:
              Updated:

              Git Integration

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