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

Incorrect query result caused by WHERE optimization

    XMLWordPrintable

Details

    • Bug
    • Status: Confirmed (View Workflow)
    • Minor
    • Resolution: Unresolved
    • 11.4.0, 10.6, 10.11, 11.8
    • 10.6, 10.11, 11.4, 11.8
    • Optimizer
    • None
    • Windows11 CLI

    Description

      Description

      In theory, sql1 and sql2 should return the same result. However, sql1 return 0 while sql2 return 1.

      SQL1:

       SELECT f1 FROM (SELECT (t0.c0 % (-1| 1 )) AS f1 FROM t0) AS t WHERE (f1+1);
      

      SQL2:

       SELECT f1 FROM (SELECT (t0.c0 % (-1| 1 )) AS f1, ((t0.c0 % (-1| 1 ))+1) IS TRUE AS flag FROM t0) AS t WHERE flag=1;
      

      How to repeat

      DROP DATABASE IF EXISTS database0;
      CREATE DATABASE database0;
      USE database0;
      CREATE TABLE t0(c0 CHAR(100)  PRIMARY KEY NOT NULL);
      INSERT INTO t0 VALUES (1);
      

      version

       
      SELECT version();
       
      +----------------+
      | version()      |
      +----------------+
      | 11.4.0-MariaDB |
      +----------------+
      1 row in set (0.00 sec)
      

       SELECT f1 FROM (SELECT (t0.c0 % (-1| 1 )) AS f1 FROM t0) AS t WHERE (f1+1); --sql1
       
      +-------+
      | f1    |
      +-------+
      | 0 |
      +-------+
      

       SELECT f1 FROM (SELECT (t0.c0 % (-1| 1 )) AS f1, ((t0.c0 % (-1| 1 ))+1) IS TRUE AS flag FROM t0) AS t WHERE flag=1; --sql2
       
      +-----------+
      | f1        |
      +-----------+
      | 1 |
      +-----------+
      

      Attachments

        Activity

          People

            psergei Sergei Petrunia
            Shiyang Ye Shiyang Ye
            Votes:
            0 Vote for this issue
            Watchers:
            3 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.