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

LP:780386 - Incorrect result of NULL <op> ALL (<empty set>)

    XMLWordPrintable

Details

    • Bug
    • Status: Closed (View Workflow)
    • Major
    • Resolution: Fixed
    • None
    • None
    • None

    Description

      The following query:

      SELECT a1.f3 AS r FROM t2 AS a1 , t1 WHERE a1.f3 < ALL ( SELECT f3 FROM t3 WHERE f3 = 1 ) ;

      returns 1 row for which a1.f3 = NULL with join_cache_level = 0 and 2 rows with join_cache_level = 3 . maria-5.1 returns 2 rows. Notice that the subquery returns an empty result.

      Note that the server reports that NULL < ALL ( SELECT f3 FROM t3 WHERE 0 ) is TRUE

      test case:

      DROP TABLE IF EXISTS t1;
      CREATE TABLE t1 ( f11 int) ;
      INSERT IGNORE INTO t1 VALUES (0),(0);

      CREATE TABLE t2 ( f3 int, f10 int, KEY (f10,f3)) ;
      INSERT IGNORE INTO t2 VALUES (0,0),(98,0),(6,0),(5,0),(0,0),(3,0),(1,0),(1,0),(147,0),(3,0),(3,0),(NULL,NULL),(2,0),(1,0),(8,0),(8,0),(8,0),(0,0),(1,0),(8,0),(5,0);

      DROP TABLE IF EXISTS t3;
      CREATE TABLE t3 ( f3 int) ;
      INSERT INTO t3 VALUES (0),(0);

      --let $query = SELECT a1.f3 AS r FROM t2 AS a1 , t1 WHERE a1.f3 < ALL ( SELECT f3 FROM t3 WHERE f3 = 1 ) ;

      SET SESSION join_cache_level = 0;
      --eval CREATE TABLE r1 AS $query ;
      SET SESSION join_cache_level = 3;
      --eval CREATE TABLE r2 AS $query ;

      SELECT COUNT FROM r1 WHERE r IS NULL;
      SELECT COUNT FROM r2 WHERE r IS NULL;

      Attachments

        Activity

          People

            sanja Oleksandr Byelkin
            philipstoev Philip Stoev (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.