mariadb/mysql-test/suite/maria/alter.result
Michael Widenius 3d67c68ad1 Fixed MDEV-4970: Wrong result with Aria table populated with disabled keys
Problem was that ALTER TABLE DISABLE KEYS incremented create_trid for the table,
which made the new index entries invisible until the global trid catched up.

Fixed by only updating create_trid if we are rewriting all rows and indexes.


mysql-test/suite/maria/alter.result:
  Added test case
mysql-test/suite/maria/alter.test:
  Added test case
storage/maria/ha_maria.cc:
  Only updating create_trid if we are doing a full repair (and thus rewriting all rows and indexes).
storage/maria/trnman.c:
  More DBUG_PRINT
2014-01-25 15:41:08 +02:00

33 lines
939 B
Text

drop table if exists t1;
Warnings:
Note 1051 Unknown table 't1'
CREATE TABLE t1 (pk INT, d DATETIME, PRIMARY KEY(pk), KEY(d)) ENGINE=Aria;
ALTER TABLE t1 DISABLE KEYS;
INSERT INTO t1 VALUES (1,'2000-01-01 22:22:22'),(2,'2012-12-21 12:12:12');
INSERT INTO t1 VALUES (3, '2008-07-24');
ALTER TABLE t1 ENABLE KEYS;
SELECT t1a.pk FROM t1 AS t1a LEFT JOIN t1 AS t1b ON t1a.pk = t1b.pk;
pk
1
2
3
SELECT * FROM t1 AS t1a LEFT JOIN t1 AS t1b ON t1a.pk = t1b.pk;
pk d pk d
1 2000-01-01 22:22:22 1 2000-01-01 22:22:22
2 2012-12-21 12:12:12 2 2012-12-21 12:12:12
3 2008-07-24 00:00:00 3 2008-07-24 00:00:00
DROP TABLE t1;
CREATE TABLE t1 (pk INT PRIMARY KEY, i INT, KEY(i)) ENGINE=Aria;
ALTER TABLE t1 DISABLE KEYS;
INSERT INTO t1 VALUES (1,11);
INSERT INTO t1 VALUES (2,0),(3,33),(4,0),(5,55),(6,66),(7,0),(8,88),(9,99);
ALTER TABLE t1 ENABLE KEYS;
SELECT * FROM t1 WHERE i = 0 OR pk BETWEEN 6 AND 10;
pk i
2 0
4 0
6 66
7 0
8 88
9 99
DROP TABLE t1;