ndb_charset.test
上传用户:romrleung
上传日期:2022-05-23
资源大小:18897k
文件大小:4k
源码类别:

MySQL数据库

开发平台:

Visual C++

  1. --source include/have_ndb.inc
  2. -- source include/not_embedded.inc
  3. --disable_warnings
  4. drop table if exists t1;
  5. --enable_warnings
  6. #
  7. # Minimal NDB charset test.
  8. #
  9. # pk - binary
  10. create table t1 (
  11.   a char(3) character set latin1 collate latin1_bin primary key
  12. ) engine=ndb;
  13. # ok
  14. insert into t1 values('aAa');
  15. insert into t1 values('aaa');
  16. insert into t1 values('AAA');
  17. # 3
  18. select * from t1 order by a;
  19. # 1
  20. select * from t1 where a = 'aAa';
  21. # 1
  22. select * from t1 where a = 'aaa';
  23. # 0
  24. select * from t1 where a = 'AaA';
  25. # 1
  26. select * from t1 where a = 'AAA';
  27. drop table t1;
  28. # pk - case insensitive
  29. create table t1 (
  30.   a char(3) character set latin1 collate latin1_swedish_ci primary key
  31. ) engine=ndb;
  32. # ok
  33. insert into t1 values('aAa');
  34. # fail
  35. --error 1062
  36. insert into t1 values('aaa');
  37. --error 1062
  38. insert into t1 values('AAA');
  39. # 1
  40. select * from t1 order by a;
  41. # 1
  42. select * from t1 where a = 'aAa';
  43. # 1
  44. select * from t1 where a = 'aaa';
  45. # 1
  46. select * from t1 where a = 'AaA';
  47. # 1
  48. select * from t1 where a = 'AAA';
  49. drop table t1;
  50. # unique hash index - binary
  51. create table t1 (
  52.   p int primary key,
  53.   a char(3) character set latin1 collate latin1_bin not null,
  54.   unique key(a)
  55. ) engine=ndb;
  56. # ok
  57. insert into t1 values(1, 'aAa');
  58. insert into t1 values(2, 'aaa');
  59. insert into t1 values(3, 'AAA');
  60. # 3
  61. select * from t1 order by p;
  62. # 1
  63. select * from t1 where a = 'aAa';
  64. # 1
  65. select * from t1 where a = 'aaa';
  66. # 0
  67. select * from t1 where a = 'AaA';
  68. # 1
  69. select * from t1 where a = 'AAA';
  70. drop table t1;
  71. # unique hash index - case insensitive
  72. create table t1 (
  73.   p int primary key,
  74.   a char(3) character set latin1 collate latin1_swedish_ci not null,
  75.   unique key(a)
  76. ) engine=ndb;
  77. # ok
  78. insert into t1 values(1, 'aAa');
  79. # fail
  80. --error 1062
  81. insert into t1 values(2, 'aaa');
  82. --error 1062
  83. insert into t1 values(3, 'AAA');
  84. # 1
  85. select * from t1 order by p;
  86. # 1
  87. select * from t1 where a = 'aAa';
  88. # 1
  89. select * from t1 where a = 'aaa';
  90. # 1
  91. select * from t1 where a = 'AaA';
  92. # 1
  93. select * from t1 where a = 'AAA';
  94. drop table t1;
  95. # ordered index - binary
  96. create table t1 (
  97.   p int primary key,
  98.   a char(3) character set latin1 collate latin1_bin not null,
  99.   index(a)
  100. ) engine=ndb;
  101. # ok
  102. insert into t1 values(1, 'aAa');
  103. insert into t1 values(2, 'aaa');
  104. insert into t1 values(3, 'AAA');
  105. insert into t1 values(4, 'aAa');
  106. insert into t1 values(5, 'aaa');
  107. insert into t1 values(6, 'AAA');
  108. # 6
  109. select * from t1 order by p;
  110. # plan
  111. explain select * from t1 where a = 'zZz' order by p;
  112. # 2
  113. select * from t1 where a = 'aAa' order by p;
  114. # 2
  115. select * from t1 where a = 'aaa' order by p;
  116. # 0
  117. select * from t1 where a = 'AaA' order by p;
  118. # 2
  119. select * from t1 where a = 'AAA' order by p;
  120. drop table t1;
  121. # ordered index - case insensitive
  122. create table t1 (
  123.   p int primary key,
  124.   a char(3) character set latin1 collate latin1_swedish_ci not null,
  125.   index(a)
  126. ) engine=ndb;
  127. # ok
  128. insert into t1 values(1, 'aAa');
  129. insert into t1 values(2, 'aaa');
  130. insert into t1 values(3, 'AAA');
  131. insert into t1 values(4, 'aAa');
  132. insert into t1 values(5, 'aaa');
  133. insert into t1 values(6, 'AAA');
  134. # 6
  135. select * from t1 order by p;
  136. # plan
  137. explain select * from t1 where a = 'zZz' order by p;
  138. # 6
  139. select * from t1 where a = 'aAa' order by p;
  140. # 6
  141. select * from t1 where a = 'aaa' order by p;
  142. # 6
  143. select * from t1 where a = 'AaA' order by p;
  144. # 6
  145. select * from t1 where a = 'AAA' order by p;
  146. drop table t1;
  147. # bug#14007
  148. create table t1 (
  149.   a char(10) primary key
  150. ) engine=ndbcluster default charset=latin1;
  151. insert into t1 values ('aaabb');
  152. select * from t1;
  153. replace into t1 set a = 'AAABB';
  154. select * from t1;
  155. replace into t1 set a = 'aAaBb';
  156. select * from t1;
  157. replace into t1 set a = 'aaabb';
  158. select * from t1;
  159. drop table t1;