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

Using too big key for internal temp tables

    XMLWordPrintable

Details

    Description

      MDEV-5721 is not fixed properly. This test case still fails:

      CREATE TABLE t1 (i INT, state VARCHAR(995)) ENGINE=MyISAM;
      INSERT INTO t1 VALUES (2,'Louisiana'),(9,'Maine');
       
      CREATE TABLE t2 (state VARCHAR(995), j INT) ENGINE=MyISAM;
      INSERT INTO t2 VALUES ('Louisiana',9),('Alaska',5);
      INSERT INTO t2 SELECT t2.* FROM t2 JOIN t2 AS t3 JOIN t2 AS t4 JOIN t2 AS t5;
       
      SET @@max_heap_table_size= 16384;
      set @@optimizer_switch='derived_merge=OFF';
       
      SELECT * FROM t1 AS t1_1 LEFT JOIN ( t1 AS t1_2 INNER JOIN (SELECT * FROM t2) v2 ON t1_2.i = j ) ON t1_1.state = v2.state;
       
      DROP TABLE t1, t2;

      Due to differences in:
      1. key length computation: key_length() in check_tmp_key vs pack_length() in create_internal_tmp_table
      2. key length comparing:
      "key_len <= MI_MAX_KEY_LENGTH" in check_tmp_table
      vs
      "keyinfo->key_length >= table->file->max_key_length()" in create_internal_tmp_table

      Attachments

        Issue Links

          Activity

            People

              cvicentiu Vicențiu Ciorbaru
              pomyk Patryk Pomykalski
              Votes:
              0 Vote for this issue
              Watchers:
              5 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.