You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

228 lines
12 KiB

  1. #
  2. # Tests from mix2.inc which require ucs2 character sets should go here
  3. #
  4. #
  5. # BUG 14056 Column prefix index on UTF-8 primary key column causes: Can't find record..
  6. #
  7. eval create table t1 (
  8. a int, b char(10), c char(10), filler char(10), primary key(a, b(2)), unique key (a, c(2))
  9. ) character set utf8 engine = $engine_type;
  10. eval create table t2 (
  11. a int, b char(10), c char(10), filler char(10), primary key(a, b(2)), unique key (a, c(2))
  12. ) character set ucs2 engine = $engine_type;
  13. insert into t1 values (1,'abcdefg','abcdefg','one');
  14. insert into t1 values (2,'ijkilmn','ijkilmn','two');
  15. insert into t1 values (3,'qrstuvw','qrstuvw','three');
  16. insert into t1 values (4,_utf8 0xe880bd,_utf8 0xe880bd,'four');
  17. insert into t1 values (4,_utf8 0x5b,_utf8 0x5b,'five');
  18. insert into t1 values (4,_utf8 0xe880bde880bd,_utf8 0xe880bde880bd,'six');
  19. insert into t1 values (4,_utf8 0xe880bdD0B1e880bd,_utf8 0xe880bdD0B1e880bd,'seven');
  20. insert into t1 values (4,_utf8 0xD0B1,_utf8 0xD0B1,'eight');
  21. insert into t2 values (1,'abcdefg','abcdefg','one');
  22. insert into t2 values (2,'ijkilmn','ijkilmn','two');
  23. insert into t2 values (3,'qrstuvw','qrstuvw','three');
  24. insert into t2 values (4,_ucs2 0x00e400,_ucs2 0x00e400,'four');
  25. insert into t2 values (4,_ucs2 0x00640065,_ucs2 0x00640065,'five');
  26. insert into t2 values (4,_ucs2 0x00e400e50068,_ucs2 0x00e400e50068,'six');
  27. insert into t2 values (4,_ucs2 0x01fc,_ucs2 0x01fc,'seven');
  28. insert into t2 values (4,_ucs2 0x0120,_ucs2 0x0120,'eight');
  29. insert into t2 values (4,_ucs2 0x0563,_ucs2 0x0563,'ten');
  30. insert into t2 values (4,_ucs2 0x05630563,_ucs2 0x05630563,'eleven');
  31. insert into t2 values (4,_ucs2 0x0563001fc0563,_ucs2 0x0563001fc0563,'point');
  32. insert into t2 values (4,_ucs2 0x05612020,_ucs2 0x05612020,'taken');
  33. update t1 set filler = 'boo' where a = 1;
  34. update t2 set filler ='email' where a = 4;
  35. select a,hex(b),hex(c),filler from t1 order by filler;
  36. select a,hex(b),hex(c),filler from t2 order by filler;
  37. drop table t1;
  38. drop table t2;
  39. eval create table t1 (
  40. a int, b varchar(10), c varchar(10), filler varchar(10), primary key(a, b(2)), unique key (a, c(2))
  41. ) character set utf8 engine = $engine_type;
  42. eval create table t2 (
  43. a int, b varchar(10), c varchar(10), filler varchar(10), primary key(a, b(2)), unique key (a, c(2))
  44. ) character set ucs2 engine = $engine_type;
  45. insert into t1 values (1,'abcdefg','abcdefg','one');
  46. insert into t1 values (2,'ijkilmn','ijkilmn','two');
  47. insert into t1 values (3,'qrstuvw','qrstuvw','three');
  48. insert into t1 values (4,_utf8 0xe880bd,_utf8 0xe880bd,'four');
  49. insert into t1 values (4,_utf8 0x5b,_utf8 0x5b,'five');
  50. insert into t1 values (4,_utf8 0xe880bde880bd,_utf8 0xe880bde880bd,'six');
  51. insert into t1 values (4,_utf8 0xe880bdD0B1e880bd,_utf8 0xe880bdD0B1e880bd,'seven');
  52. insert into t1 values (4,_utf8 0xD0B1,_utf8 0xD0B1,'eight');
  53. insert into t2 values (1,'abcdefg','abcdefg','one');
  54. insert into t2 values (2,'ijkilmn','ijkilmn','two');
  55. insert into t2 values (3,'qrstuvw','qrstuvw','three');
  56. insert into t2 values (4,_ucs2 0x00e400,_ucs2 0x00e400,'four');
  57. insert into t2 values (4,_ucs2 0x00640065,_ucs2 0x00640065,'five');
  58. insert into t2 values (4,_ucs2 0x00e400e50068,_ucs2 0x00e400e50068,'six');
  59. insert into t2 values (4,_ucs2 0x01fc,_ucs2 0x01fc,'seven');
  60. insert into t2 values (4,_ucs2 0x0120,_ucs2 0x0120,'eight');
  61. insert into t2 values (4,_ucs2 0x0563,_ucs2 0x0563,'ten');
  62. insert into t2 values (4,_ucs2 0x05630563,_ucs2 0x05630563,'eleven');
  63. insert into t2 values (4,_ucs2 0x0563001fc0563,_ucs2 0x0563001fc0563,'point');
  64. insert into t2 values (4,_ucs2 0x05612020,_ucs2 0x05612020,'taken');
  65. update t1 set filler = 'boo' where a = 1;
  66. update t2 set filler ='email' where a = 4;
  67. select a,hex(b),hex(c),filler from t1 order by filler;
  68. select a,hex(b),hex(c),filler from t2 order by filler;
  69. drop table t1;
  70. drop table t2;
  71. eval create table t1 (
  72. a int, b text(10), c text(10), filler text(10), primary key(a, b(2)), unique key (a, c(2))
  73. ) character set utf8 engine = $engine_type;
  74. eval create table t2 (
  75. a int, b text(10), c text(10), filler text(10), primary key(a, b(2)), unique key (a, c(2))
  76. ) character set ucs2 engine = $engine_type;
  77. insert into t1 values (1,'abcdefg','abcdefg','one');
  78. insert into t1 values (2,'ijkilmn','ijkilmn','two');
  79. insert into t1 values (3,'qrstuvw','qrstuvw','three');
  80. insert into t1 values (4,_utf8 0xe880bd,_utf8 0xe880bd,'four');
  81. insert into t1 values (4,_utf8 0x5b,_utf8 0x5b,'five');
  82. insert into t1 values (4,_utf8 0xe880bde880bd,_utf8 0xe880bde880bd,'six');
  83. insert into t1 values (4,_utf8 0xe880bdD0B1e880bd,_utf8 0xe880bdD0B1e880bd,'seven');
  84. insert into t1 values (4,_utf8 0xD0B1,_utf8 0xD0B1,'eight');
  85. insert into t2 values (1,'abcdefg','abcdefg','one');
  86. insert into t2 values (2,'ijkilmn','ijkilmn','two');
  87. insert into t2 values (3,'qrstuvw','qrstuvw','three');
  88. insert into t2 values (4,_ucs2 0x00e400,_ucs2 0x00e400,'four');
  89. insert into t2 values (4,_ucs2 0x00640065,_ucs2 0x00640065,'five');
  90. insert into t2 values (4,_ucs2 0x00e400e50068,_ucs2 0x00e400e50068,'six');
  91. insert into t2 values (4,_ucs2 0x01fc,_ucs2 0x01fc,'seven');
  92. insert into t2 values (4,_ucs2 0x0120,_ucs2 0x0120,'eight');
  93. insert into t2 values (4,_ucs2 0x0563,_ucs2 0x0563,'ten');
  94. insert into t2 values (4,_ucs2 0x05630563,_ucs2 0x05630563,'eleven');
  95. insert into t2 values (4,_ucs2 0x0563001fc0563,_ucs2 0x0563001fc0563,'point');
  96. insert into t2 values (4,_ucs2 0x05612020,_ucs2 0x05612020,'taken');
  97. update t1 set filler = 'boo' where a = 1;
  98. update t2 set filler ='email' where a = 4;
  99. select a,hex(b),hex(c),filler from t1 order by filler;
  100. select a,hex(b),hex(c),filler from t2 order by filler;
  101. drop table t1;
  102. drop table t2;
  103. eval create table t1 (
  104. a int, b blob(10), c blob(10), filler blob(10), primary key(a, b(2)), unique key (a, c(2))
  105. ) character set utf8 engine = $engine_type;
  106. eval create table t2 (
  107. a int, b blob(10), c blob(10), filler blob(10), primary key(a, b(2)), unique key (a, c(2))
  108. ) character set ucs2 engine = $engine_type;
  109. insert into t1 values (1,'abcdefg','abcdefg','one');
  110. insert into t1 values (2,'ijkilmn','ijkilmn','two');
  111. insert into t1 values (3,'qrstuvw','qrstuvw','three');
  112. insert into t1 values (4,_utf8 0xe880bd,_utf8 0xe880bd,'four');
  113. insert into t1 values (4,_utf8 0x5b,_utf8 0x5b,'five');
  114. insert into t1 values (4,_utf8 0xD0B1,_utf8 0xD0B1,'eight');
  115. insert into t2 values (1,'abcdefg','abcdefg','one');
  116. insert into t2 values (2,'ijkilmn','ijkilmn','two');
  117. insert into t2 values (3,'qrstuvw','qrstuvw','three');
  118. insert into t2 values (4,_ucs2 0x00e400,_ucs2 0x00e400,'four');
  119. insert into t2 values (4,_ucs2 0x00640065,_ucs2 0x00640065,'five');
  120. insert into t2 values (4,_ucs2 0x00e400e50068,_ucs2 0x00e400e50068,'six');
  121. insert into t2 values (4,_ucs2 0x01fc,_ucs2 0x01fc,'seven');
  122. insert into t2 values (4,_ucs2 0x0120,_ucs2 0x0120,'eight');
  123. insert into t2 values (4,_ucs2 0x0563,_ucs2 0x0563,'ten');
  124. insert into t2 values (4,_ucs2 0x05612020,_ucs2 0x05612020,'taken');
  125. update t1 set filler = 'boo' where a = 1;
  126. update t2 set filler ='email' where a = 4;
  127. select a,hex(b),hex(c),filler from t1 order by filler;
  128. select a,hex(b),hex(c),filler from t2 order by filler;
  129. drop table t1;
  130. drop table t2;
  131. commit;
  132. #
  133. # Test cases for bug #15308 Problem of Order with Enum Column in Primary Key
  134. #
  135. eval CREATE TABLE t1 (
  136. ind enum('0','1','2') NOT NULL default '0',
  137. string1 varchar(250) NOT NULL,
  138. PRIMARY KEY (ind)
  139. ) ENGINE=$engine_type DEFAULT CHARSET=utf8;
  140. eval CREATE TABLE t2 (
  141. ind enum('0','1','2') NOT NULL default '0',
  142. string1 varchar(250) NOT NULL,
  143. PRIMARY KEY (ind)
  144. ) ENGINE=$engine_type DEFAULT CHARSET=ucs2;
  145. INSERT INTO t1 VALUES ('1', ''),('2', '');
  146. INSERT INTO t2 VALUES ('1', ''),('2', '');
  147. SELECT hex(ind),hex(string1) FROM t1 ORDER BY string1;
  148. SELECT hex(ind),hex(string1) FROM t2 ORDER BY string1;
  149. drop table t1,t2;
  150. eval CREATE TABLE t1 (
  151. ind set('0','1','2') NOT NULL default '0',
  152. string1 varchar(250) NOT NULL,
  153. PRIMARY KEY (ind)
  154. ) ENGINE=$engine_type DEFAULT CHARSET=utf8;
  155. eval CREATE TABLE t2 (
  156. ind set('0','1','2') NOT NULL default '0',
  157. string1 varchar(250) NOT NULL,
  158. PRIMARY KEY (ind)
  159. ) ENGINE=$engine_type DEFAULT CHARSET=ucs2;
  160. INSERT INTO t1 VALUES ('1', ''),('2', '');
  161. INSERT INTO t2 VALUES ('1', ''),('2', '');
  162. SELECT hex(ind),hex(string1) FROM t1 ORDER BY string1;
  163. SELECT hex(ind),hex(string1) FROM t2 ORDER BY string1;
  164. drop table t1,t2;
  165. eval CREATE TABLE t1 (
  166. ind bit not null,
  167. string1 varchar(250) NOT NULL,
  168. PRIMARY KEY (ind)
  169. ) ENGINE=$engine_type DEFAULT CHARSET=utf8;
  170. eval CREATE TABLE t2 (
  171. ind bit not null,
  172. string1 varchar(250) NOT NULL,
  173. PRIMARY KEY (ind)
  174. ) ENGINE=$engine_type DEFAULT CHARSET=ucs2;
  175. insert into t1 values(0,''),(1,'');
  176. insert into t2 values(0,''),(1,'');
  177. select hex(ind),hex(string1) from t1 order by string1;
  178. select hex(ind),hex(string1) from t2 order by string1;
  179. drop table t1,t2;
  180. # tests for bug #14056 Column prefix index on UTF-8 primary key column causes 'Can't find record..'
  181. eval create table t2 (
  182. a int, b char(10), filler char(10), primary key(a, b(2))
  183. ) character set utf8 engine = $engine_type;
  184. insert into t2 values (1,'abcdefg','one');
  185. insert into t2 values (2,'ijkilmn','two');
  186. insert into t2 values (3, 'qrstuvw','three');
  187. update t2 set a=5, filler='booo' where a=1;
  188. drop table t2;
  189. eval create table t2 (
  190. a int, b char(10), filler char(10), primary key(a, b(2))
  191. ) character set ucs2 engine = $engine_type;
  192. insert into t2 values (1,'abcdefg','one');
  193. insert into t2 values (2,'ijkilmn','two');
  194. insert into t2 values (3, 'qrstuvw','three');
  195. update t2 set a=5, filler='booo' where a=1;
  196. drop table t2;
  197. eval create table t1(a int not null, b char(110),primary key(a,b(100))) engine=$engine_type default charset=utf8;
  198. insert into t1 values(1,'abcdefg'),(2,'defghijk');
  199. insert into t1 values(6,_utf8 0xD0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1);
  200. insert into t1 values(7,_utf8 0xD0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B2);
  201. select a,hex(b) from t1 order by b;
  202. update t1 set b = 'three' where a = 6;
  203. drop table t1;
  204. eval create table t1(a int not null, b text(110),primary key(a,b(100))) engine=$engine_type default charset=utf8;
  205. insert into t1 values(1,'abcdefg'),(2,'defghijk');
  206. insert into t1 values(6,_utf8 0xD0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1);
  207. insert into t1 values(7,_utf8 0xD0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B2);
  208. select a,hex(b) from t1 order by b;
  209. update t1 set b = 'three' where a = 6;
  210. drop table t1;