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

Unexpected Results by join_cache_bka

Details

    • Bug
    • Status: Confirmed (View Workflow)
    • Major
    • Resolution: Unresolved
    • 11.1.2, 10.4(EOL), 10.5, 10.6, 10.9(EOL), 10.10(EOL), 10.11, 11.0(EOL)
    • 10.5, 10.6, 10.11
    • Optimizer
    • None

    Description

      Two queries return different results.

       
      CREATE TABLE t0(c0 CHAR(100));
      CREATE TABLE t1(c0 CHAR(100) UNIQUE);
      SET SESSION join_cache_level = 7;
      REPAIR TABLE t1, t0 QUICK EXTENDED;
      INSERT INTO t0 VALUES ('%S');
      INSERT INTO t1 VALUES ('');
      INSERT INTO t1 VALUES ('*');
      INSERT INTO t0 VALUES ('');
      INSERT INTO t1 VALUES ('\r');
       
      SELECT t0.c0 FROM t0 NATURAL JOIN t1 WHERE TRUE RLIKE t1.c0; -- {}
      SET STATEMENT optimizer_switch = 'join_cache_bka=off' FOR SELECT t0.c0 FROM t0 NATURAL JOIN t1 WHERE TRUE RLIKE t1.c0; -- empty
      
      

      Attachments

        Issue Links

          Activity

            alice Alice Sherepa added a comment -

            Thanks!
            I repeated as described on 10.4-11.1:

            MariaDB [test]> CREATE TABLE t0(c0 CHAR(100));
            Query OK, 0 rows affected (0,030 sec)
             
            MariaDB [test]> CREATE TABLE t1(c0 CHAR(100) UNIQUE);
            Query OK, 0 rows affected (0,032 sec)
             
            MariaDB [test]> INSERT INTO t0 VALUES ('%S'),('');
            Query OK, 2 rows affected (0,003 sec)
            Records: 2  Duplicates: 0  Warnings: 0
             
            MariaDB [test]> INSERT INTO t1 VALUES (''),('*'),('\r');
            Query OK, 3 rows affected (0,003 sec)
            Records: 3  Duplicates: 0  Warnings: 0
             
            MariaDB [test]> SET SESSION join_cache_level = 7;
            Query OK, 0 rows affected (0,000 sec)
             
            MariaDB [test]> SELECT t0.c0 FROM t0 NATURAL JOIN t1 WHERE TRUE RLIKE t1.c0; 
            +------+
            | c0   |
            +------+
            |      |
            +------+
            1 row in set (0,001 sec)
             
            MariaDB [test]> SET STATEMENT optimizer_switch = 'join_cache_bka=off' FOR SELECT t0.c0 FROM t0 NATURAL JOIN t1 WHERE TRUE RLIKE t1.c0; 
            Empty set (0,001 sec)
             
            MariaDB [test]> SET SESSION join_cache_level = 4;
            Query OK, 0 rows affected (0,000 sec)
             
            MariaDB [test]> SELECT t0.c0 FROM t0 NATURAL JOIN t1 WHERE TRUE RLIKE t1.c0; 
            Empty set (0,001 sec)
             
            MariaDB [test]> SET STATEMENT optimizer_switch = 'join_cache_bka=off' FOR SELECT t0.c0 FROM t0 NATURAL JOIN t1 WHERE TRUE RLIKE t1.c0; 
            Empty set (0,001 sec)
             
            MariaDB [test]> SET SESSION join_cache_level = 2;
            Query OK, 0 rows affected (0,000 sec)
             
            MariaDB [test]> SELECT t0.c0 FROM t0 NATURAL JOIN t1 WHERE TRUE RLIKE t1.c0; 
            +------+
            | c0   |
            +------+
            |      |
            +------+
            1 row in set (0,000 sec)
             
            MariaDB [test]> SET STATEMENT optimizer_switch = 'join_cache_bka=off' FOR SELECT t0.c0 FROM t0 NATURAL JOIN t1 WHERE TRUE RLIKE t1.c0; 
            +------+
            | c0   |
            +------+
            |      |
            +------+
            1 row in set (0,001 sec)
            

            alice Alice Sherepa added a comment - Thanks! I repeated as described on 10.4-11.1: MariaDB [test]> CREATE TABLE t0(c0 CHAR(100)); Query OK, 0 rows affected (0,030 sec)   MariaDB [test]> CREATE TABLE t1(c0 CHAR(100) UNIQUE); Query OK, 0 rows affected (0,032 sec)   MariaDB [test]> INSERT INTO t0 VALUES ('%S'),(''); Query OK, 2 rows affected (0,003 sec) Records: 2 Duplicates: 0 Warnings: 0   MariaDB [test]> INSERT INTO t1 VALUES (''),('*'),('\r'); Query OK, 3 rows affected (0,003 sec) Records: 3 Duplicates: 0 Warnings: 0   MariaDB [test]> SET SESSION join_cache_level = 7; Query OK, 0 rows affected (0,000 sec)   MariaDB [test]> SELECT t0.c0 FROM t0 NATURAL JOIN t1 WHERE TRUE RLIKE t1.c0; +------+ | c0 | +------+ | | +------+ 1 row in set (0,001 sec)   MariaDB [test]> SET STATEMENT optimizer_switch = 'join_cache_bka=off' FOR SELECT t0.c0 FROM t0 NATURAL JOIN t1 WHERE TRUE RLIKE t1.c0; Empty set (0,001 sec)   MariaDB [test]> SET SESSION join_cache_level = 4; Query OK, 0 rows affected (0,000 sec)   MariaDB [test]> SELECT t0.c0 FROM t0 NATURAL JOIN t1 WHERE TRUE RLIKE t1.c0; Empty set (0,001 sec)   MariaDB [test]> SET STATEMENT optimizer_switch = 'join_cache_bka=off' FOR SELECT t0.c0 FROM t0 NATURAL JOIN t1 WHERE TRUE RLIKE t1.c0; Empty set (0,001 sec)   MariaDB [test]> SET SESSION join_cache_level = 2; Query OK, 0 rows affected (0,000 sec)   MariaDB [test]> SELECT t0.c0 FROM t0 NATURAL JOIN t1 WHERE TRUE RLIKE t1.c0; +------+ | c0 | +------+ | | +------+ 1 row in set (0,000 sec)   MariaDB [test]> SET STATEMENT optimizer_switch = 'join_cache_bka=off' FOR SELECT t0.c0 FROM t0 NATURAL JOIN t1 WHERE TRUE RLIKE t1.c0; +------+ | c0 | +------+ | | +------+ 1 row in set (0,001 sec)

            People

              Unassigned Unassigned
              bajinsheng Jinsheng Ba
              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.