Details
- 
    
 Technical task
        
     - 
    Status: Closed (View Workflow)
 - 
    
Major
 - 
    Resolution: Won't Fix
 - 
    None
 - 
    None
 - 
    None
 
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
			 |