1--source include/have_rocksdb.inc 2 3# 4# Basic syntax related to primary keys 5# 6 7CREATE TABLE t1 (a INT PRIMARY KEY, 8 b CHAR(8) 9) ENGINE=ROCKSDB; 10 11--replace_column 7 # 12SHOW KEYS IN t1; 13 14INSERT INTO t1 (a,b) VALUES (1,'a'),(2,'b'); 15--error ER_DUP_ENTRY 16INSERT INTO t1 (a,b) VALUES (1,'c'); 17 18DROP TABLE t1; 19 20--error ER_MULTIPLE_PRI_KEY 21CREATE TABLE t1 (a INT PRIMARY KEY, 22 b CHAR(8) PRIMARY KEY 23) ENGINE=ROCKSDB; 24 25CREATE TABLE t1 (a INT, 26 b CHAR(8), 27 PRIMARY KEY (a,b) 28) ENGINE=ROCKSDB; 29 30--replace_column 7 # 31SHOW INDEX IN t1; 32INSERT INTO t1 (a,b) VALUES (1,'a'),(1,'b'),(2,'a'),(2,'b'); 33--error ER_DUP_ENTRY 34INSERT INTO t1 (a,b) VALUES (1,'b'); 35 DROP TABLE t1; 36 37# KEY in a column definition means PK! 38 39CREATE TABLE t1 (a INT KEY, 40 b CHAR(8), 41 KEY (b) 42) ENGINE=ROCKSDB; 43 44--replace_column 7 # 45SHOW INDEX IN t1; 46DROP TABLE t1; 47 48CREATE TABLE t1 (a INT, 49 b CHAR(8) PRIMARY KEY 50) ENGINE=ROCKSDB; 51 52--replace_column 7 # 53SHOW INDEX IN t1; 54 55--error ER_MULTIPLE_PRI_KEY 56ALTER TABLE t1 ADD CONSTRAINT PRIMARY KEY pk (a); 57--replace_column 7 # 58SHOW KEYS IN t1; 59DROP TABLE t1; 60 61# 62# Test index prefix length limits. 63# 64set @orig_rocksdb_large_prefix=@@global.rocksdb_large_prefix; 65set @@global.rocksdb_large_prefix=0; 66 67CREATE TABLE t1 ( 68 a BLOB(1024), 69 PRIMARY KEY (a(767)) 70) ENGINE=ROCKSDB; 71DROP TABLE t1; 72 73--error ER_TOO_LONG_KEY 74CREATE TABLE t1 ( 75 a BLOB(1024), 76 PRIMARY KEY (a(768)) 77) ENGINE=ROCKSDB; 78 79set @@global.rocksdb_large_prefix=1; 80 81CREATE TABLE t1 ( 82 a BLOB(4096), 83 PRIMARY KEY (a(3072)) 84) ENGINE=ROCKSDB; 85DROP TABLE t1; 86 87--error ER_TOO_LONG_KEY 88CREATE TABLE t1 ( 89 a BLOB(4096), 90 PRIMARY KEY (a(3073)) 91) ENGINE=ROCKSDB; 92 93set @@global.rocksdb_large_prefix=@orig_rocksdb_large_prefix; 94