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

GTT created with the InnoDB incorrectly accept FULLTEXT/VECTOR indexes

    XMLWordPrintable

Details

    • Not for Release Notes

    Description

      GTT created with the InnoDB incorrectly accept FULLTEXT/VECTOR indexes. However, INSERT/SELECT statement fails with ER_NO_INDEX_ON_TEMPORARY, leaving the table unusable. Normal temporary tables correctly reject FULLTEXT/VECTOR indexes at CREATE time

      MDEV-35915 CS 13.0.0 fcf14161a97ec5542a265d6f00a95264dbad4fa7 (Optimized, Clang 18.1.3-11) Build 03/06/2026

      13.0.0-opt>CREATE GLOBAL TEMPORARY TABLE gtt (id INT PRIMARY KEY, body TEXT, FULLTEXT (body))
          -> ENGINE=InnoDB ON COMMIT PRESERVE ROWS;
      Query OK, 0 rows affected (0.059 sec)
       
      13.0.0-opt>
      13.0.0-opt>INSERT INTO gtt VALUES (1, 'quick bROWn fox');
      ERROR 1796 (HY000): Cannot create FULLTEXT index on temporary InnoDB table
      13.0.0-opt>
      13.0.0-opt>SELECT * FROM gtt;
      ERROR 1796 (HY000): Cannot create FULLTEXT index on temporary InnoDB table
      13.0.0-opt>DROP TABLE gtt;
      Query OK, 0 rows affected (0.024 sec)
       
      13.0.0-opt>
       
       
      13.0.0-opt>CREATE TEMPORARY TABLE tmp1 (id INT PRIMARY KEY, body TEXT, FULLTEXT (body)) ENGINE=InnoDB;
      ERROR 1796 (HY000): Cannot create FULLTEXT index on temporary InnoDB table
      13.0.0-opt>
      

      --source include/have_innodb.inc
       
      CREATE GLOBAL TEMPORARY TABLE gtt (id INT PRIMARY KEY, body TEXT, FULLTEXT (body))
      ENGINE=InnoDB ON COMMIT PRESERVE ROWS;
       
      --echo INSERT AND SELECT both fail
      --error ER_NO_INDEX_ON_TEMPORARY
      INSERT INTO gtt VALUES (1, 'quick bROWn fox');
      --error ER_NO_INDEX_ON_TEMPORARY
      SELECT * FROM gtt;
      DROP TABLE gtt;
       
      --error ER_NO_INDEX_ON_TEMPORARY
      CREATE TEMPORARY TABLE tmp1 (id INT PRIMARY KEY, body TEXT, FULLTEXT (body)) ENGINE=InnoDB;
       
      --echo # Same FOR VECTOR
      CREATE GLOBAL TEMPORARY TABLE gtt_v (id INT PRIMARY KEY, v VECTOR (4) NOT NULL, VECTOR INDEX (v)) ENGINE=InnoDB ON COMMIT PRESERVE ROWS;
       
      --echo INSERT AND SELECT both fail
      --ERROR ER_NO_INDEX_ON_TEMPORARY
      INSERT INTO gtt_v VALUES (1, x'0000803f0000803f0000803f0000803f');
      --error ER_NO_INDEX_ON_TEMPORARY
      SELECT COUNT(*) FROM gtt_v;
      DROP TABLE gtt_v;
      

      Attachments

        Issue Links

          Activity

            People

              nikitamalyavin Nikita Malyavin
              ramesh Ramesh Sivaraman
              Votes:
              0 Vote for this issue
              Watchers:
              2 Start watching this issue

              Dates

                Created:
                Updated:

                Time Tracking

                  Estimated:
                  Original Estimate - 0d
                  0d
                  Remaining:
                  Remaining Estimate - 0d
                  0d
                  Logged:
                  Time Spent - 0.5h
                  0.5h

                  Git Integration

                    Error rendering 'com.xiplink.jira.git.jira_git_plugin:git-issue-webpanel'. Please contact your Jira administrators.