1--source include/have_rocksdb.inc 2 3CREATE TABLE collations AS SELECT * FROM information_schema.COLLATION_CHARACTER_SET_APPLICABILITY WHERE COLLATION_NAME NOT IN ("latin2_czech_cs", "cp1250_czech_cs"); 4 5--let $i=1 6--let $charset=query_get_value(select * from collations, CHARACTER_SET_NAME, $i) 7--let $collate=query_get_value(select * from collations, COLLATION_NAME, $i) 8while ($charset != 'No such row') 9{ 10 --echo # Testing character set "$charset" collation "$collate" 11 --let table_name=t_$charset 12 if ($charset == "binary") 13 { 14 --eval CREATE TABLE $table_name (pk_varchar VARBINARY(64), pk_char BINARY(64), d_varchar VARBINARY(64), d_char BINARY(64), PRIMARY KEY(pk_varchar, pk_char)) ENGINE=RocksDB 15 --eval INSERT INTO $table_name VALUES('a ', 'a ', 'a ', 'a ') 16 --eval INSERT INTO $table_name VALUES ('a', 'a', 'a', 'a') 17 --eval INSERT INTO $table_name VALUES('b ', 'b ', 'b ', 'b '); 18 --eval INSERT INTO $table_name VALUES('b', 'b', 'b', 'b') 19 --eval INSERT INTO $table_name VALUES('a\t', 'a\t', 'a\t', 'a\t') 20 --eval INSERT INTO $table_name VALUES('a \t', 'a \t', 'a \t', 'a \t') 21 --eval INSERT INTO $table_name VALUES('a ', 'a ', 'a ', 'a ') 22 } 23 if ($charset != "binary") 24 { 25 --eval CREATE TABLE $table_name (pk_varchar VARCHAR(64), pk_char CHAR(64), d_varchar VARCHAR(64), d_char CHAR(64), PRIMARY KEY(pk_varchar, pk_char)) ENGINE=RocksDB CHARSET $charset COLLATE $collate 26 --eval INSERT INTO $table_name VALUES('a ', 'a ', 'a ', 'a ') 27 --error ER_DUP_ENTRY 28 --eval INSERT INTO $table_name VALUES ('a', 'a', 'a', 'a') 29 --eval INSERT INTO $table_name VALUES('b ', 'b ', 'b ', 'b '); 30 --error ER_DUP_ENTRY 31 --eval INSERT INTO $table_name VALUES('b', 'b', 'b', 'b') 32 --eval INSERT INTO $table_name VALUES('a\t', 'a\t', 'a\t', 'a\t') 33 --eval INSERT INTO $table_name VALUES('a \t', 'a \t', 'a \t', 'a \t') 34 --error ER_DUP_ENTRY 35 --eval INSERT INTO $table_name VALUES('a ', 'a ', 'a ', 'a ') 36 --eval INSERT INTO $table_name VALUES('c ', 'c ', 'c ', 'c ') 37 } 38 39 --eval SELECT pk_varchar, length(pk_varchar), hex(pk_varchar), pk_char, length(pk_char), hex(pk_char), d_varchar, length(d_varchar), hex(d_varchar), d_char, length(d_char), hex(d_char) FROM $table_name 40 --eval DROP TABLE $table_name 41 42 --inc $i 43 --let $charset=query_get_value(select * from collations, CHARACTER_SET_NAME, $i) 44 --let $collate=query_get_value(select * from collations, COLLATION_NAME, $i) 45} 46 47DROP TABLE collations; 48