summaryrefslogtreecommitdiffstats
path: root/mysql-test/main/myisam_debug_keys.test
diff options
context:
space:
mode:
Diffstat (limited to 'mysql-test/main/myisam_debug_keys.test')
-rw-r--r--mysql-test/main/myisam_debug_keys.test68
1 files changed, 68 insertions, 0 deletions
diff --git a/mysql-test/main/myisam_debug_keys.test b/mysql-test/main/myisam_debug_keys.test
new file mode 100644
index 00000000..73d68637
--- /dev/null
+++ b/mysql-test/main/myisam_debug_keys.test
@@ -0,0 +1,68 @@
+--source include/have_debug.inc
+
+--echo #
+--echo # MDEV-29672 Add MTR tests covering key and key segment flags and types
+--echo #
+
+SET debug_dbug='+d,key';
+CREATE TABLE types (
+ id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
+ type TEXT NOT NULL,
+ prefix_length INT NOT NULL
+);
+--disable_ps_protocol
+INSERT INTO types (type, prefix_length) VALUES
+('INT', 0),
+('BIGINT', 0),
+('DOUBLE', 0),
+('DECIMAL(20,10)', 0),
+('CHAR(4)', 0),
+('CHAR(10)', 0),
+('VARCHAR(4)', 0),
+('VARCHAR(6)', 0),
+('VARCHAR(8)', 0),
+('VARCHAR(12)', 0),
+('VARCHAR(16)', 0),
+('VARCHAR(100)', 0),
+('TEXT', 4),
+('TEXT', 6),
+('TEXT', 8),
+('TEXT', 12),
+('TEXT', 16),
+('TEXT', 100);
+--enable_ps_protocol
+DELIMITER $$;
+BEGIN NOT ATOMIC
+ DECLARE create2_template TEXT
+ DEFAULT 'CREATE TABLE t1 (a TYPE1 NOT NULL, b TYPE2 NOT NULL, KEY(SEG1,SEG2))';
+ DECLARE cur2 CURSOR FOR
+ SELECT t1.type AS type1,
+ t2.type AS type2,
+ t1.prefix_length AS prefix_length1,
+ t2.prefix_length AS prefix_length2
+ FROM types AS t1, types AS t2
+ ORDER BY t1.id, t2.id;
+ FOR rec IN cur2 DO
+ BEGIN
+ DECLARE tabledef TEXT DEFAULT REPLACE(create2_template,'TYPE1', rec.type1);
+ SET tabledef=REPLACE(tabledef, 'TYPE2', rec.type2);
+ SET tabledef=REPLACE(tabledef, 'SEG1',
+ IF(rec.prefix_length1,
+ CONCAT('a(',rec.prefix_length1,')'), 'a'));
+ SET tabledef=REPLACE(tabledef, 'SEG2',
+ IF(rec.prefix_length2,
+ CONCAT('b(',rec.prefix_length2,')'), 'b'));
+ SELECT tabledef AS ``;
+ EXECUTE IMMEDIATE tabledef;
+ SHOW WARNINGS;
+ SELECT * FROM t1;
+ SHOW WARNINGS;
+ SHOW CREATE TABLE t1;
+ DROP TABLE t1;
+ END;
+ END FOR;
+END;
+$$
+DELIMITER ;$$
+DROP TABLE types;
+SET debug_dbug='';