Details
-
Type:
Technical task
-
Status: Closed
-
Priority:
Major
-
Resolution: Won't Fix
-
Affects Version/s: None
-
Fix Version/s: None
-
Component/s: None
-
Labels:
Description
Auto-increment value is not initialized correctly on non-empty LevelDB tables, e.g
after server restart (output of test case 1):
CREATE TABLE t1 (pk INT AUTO_INCREMENT PRIMARY KEY) ENGINE=LevelDB; INSERT INTO t1 VALUES (NULL),(NULL); # Restart server SHOW CREATE TABLE t1; Table Create Table t1 CREATE TABLE `t1` ( `pk` int(11) NOT NULL AUTO_INCREMENT, PRIMARY KEY (`pk`) ) ENGINE=LEVELDB DEFAULT CHARSET=latin1 INSERT INTO t1 VALUES (NULL); ERROR 23000: Duplicate entry '1' for key 'PRIMARY'
after ALTER TABLE adding auto-increment (output of test case 2):
CREATE TABLE t2 (pk INT PRIMARY KEY) ENGINE=LevelDB; INSERT INTO t2 VALUES (1),(2); ALTER TABLE t2 MODIFY COLUMN pk INT AUTO_INCREMENT; SHOW CREATE TABLE t2; Table Create Table t2 CREATE TABLE `t2` ( `pk` int(11) NOT NULL AUTO_INCREMENT, PRIMARY KEY (`pk`) ) ENGINE=LEVELDB DEFAULT CHARSET=latin1 INSERT INTO t2 VALUES (NULL); ERROR 23000: Duplicate entry '1' for key 'PRIMARY'
Also, auto-increment doesn't change when an explicit value is inserted into the column (output of test case 3):
CREATE TABLE t3 (pk INT AUTO_INCREMENT PRIMARY KEY) ENGINE=LevelDB; INSERT INTO t3 VALUES (1),(2); SHOW CREATE TABLE t3; Table Create Table t3 CREATE TABLE `t3` ( `pk` int(11) NOT NULL AUTO_INCREMENT, PRIMARY KEY (`pk`) ) ENGINE=LEVELDB DEFAULT CHARSET=latin1 INSERT INTO t3 VALUES (NULL); ERROR 23000: Duplicate entry '1' for key 'PRIMARY'
Test case #1
CREATE TABLE t1 (pk INT AUTO_INCREMENT PRIMARY KEY) ENGINE=LevelDB; INSERT INTO t1 VALUES (NULL),(NULL); --echo # Restart server --write_file $MYSQLTEST_VARDIR/tmp/mysqld.1.expect wait EOF --shutdown_server --append_file $MYSQLTEST_VARDIR/tmp/mysqld.1.expect restart EOF --enable_reconnect --source include/wait_until_connected_again.inc #--connect (con1,localhost,root,,) SHOW CREATE TABLE t1; INSERT INTO t1 VALUES (NULL);
Test case #2
CREATE TABLE t2 (pk INT PRIMARY KEY) ENGINE=LevelDB; INSERT INTO t2 VALUES (1),(2); ALTER TABLE t2 MODIFY COLUMN pk INT AUTO_INCREMENT; SHOW CREATE TABLE t2; INSERT INTO t2 VALUES (NULL);
Test case #3
CREATE TABLE t3 (pk INT AUTO_INCREMENT PRIMARY KEY) ENGINE=LevelDB; INSERT INTO t3 VALUES (1),(2); SHOW CREATE TABLE t3; INSERT INTO t3 VALUES (NULL);
revision-id: psergey@askmonty.org-20130406172740-fid7u9tkz5ahlc4c revno: 4823 branch-nick: mysql-5.6-leveldb
Gliffy Diagrams
Attachments
Activity
- All
- Comments
- Work Log
- History
- Activity
- Transitions