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

LP:424553 - No way to limit temporary table size when Aria tables are in use

    XMLWordPrintable

Details

    Description

      I've hit this while merging this testcase from mysql-5.1/mysql-test/insert_select.test:

      CREATE TABLE t1(a INT);

      1. To force MyISAM temp. table in the following INSERT ... SELECT.
        SET max_heap_table_size = 16384;
      2. To overflow the temp. table.
        SET @old_myisam_data_pointer_size = @@myisam_data_pointer_size;
        SET GLOBAL myisam_data_pointer_size = 2;

      INSERT INTO t1 VALUES (1), (2), (3), (4), (5);

      --error ER_RECORD_FILE_FULL,ER_RECORD_FILE_FULL
      INSERT IGNORE INTO t1 SELECT t1.a FROM t1,t1 t2,t1 t3,t1 t4,t1 t5,t1 t6,t1 t7;

      The problems are that

      • Aria engine doesn't have an analog of myisam_data_pointer_size, consequently the insert will not fail and we can't run the testcase.
      • Albeit there is a #define USE_MARIA_FOR_TMP_TABLES, once you have a binary there is no straightforward way to tell from SQL whether it will use maria or myisam for temporary tables.

      Attachments

        Activity

          People

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