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