PageRenderTime 57ms CodeModel.GetById 29ms RepoModel.GetById 0ms app.codeStats 0ms

/trunk/src/sqlite/test/collateA.test

#
Unknown | 217 lines | 209 code | 8 blank | 0 comment | 0 complexity | f3455554e491a45870ff1b272d79e5b7 MD5 | raw file
Possible License(s): BSD-3-Clause
  1. #
  2. # 2008 January 20
  3. #
  4. # The author disclaims copyright to this source code. In place of
  5. # a legal notice, here is a blessing:
  6. #
  7. # May you do good and not evil.
  8. # May you find forgiveness for yourself and forgive others.
  9. # May you share freely, never taking more than you give.
  10. #
  11. #***********************************************************************
  12. # This file implements regression tests for SQLite library. The
  13. # focus of this script is the built-in RTRIM collating
  14. # API.
  15. #
  16. # $Id: collateA.test,v 1.3 2008/04/15 04:02:41 drh Exp $
  17. set testdir [file dirname $argv0]
  18. source $testdir/tester.tcl
  19. do_test collateA-1.1 {
  20. execsql {
  21. CREATE TABLE t1(
  22. a INTEGER PRIMARY KEY,
  23. b TEXT COLLATE BINARY,
  24. c TEXT COLLATE RTRIM
  25. );
  26. INSERT INTO t1 VALUES(1, 'abcde','abcde');
  27. INSERT INTO t1 VALUES(2, 'xyzzy ','xyzzy ');
  28. INSERT INTO t1 VALUES(3, 'xyzzy ','xyzzy ');
  29. INSERT INTO t1 VALUES(4, 'xyzzy ','xyzzy ');
  30. INSERT INTO t1 VALUES(5, ' ', ' ');
  31. INSERT INTO t1 VALUES(6, '', '');
  32. SELECT count(*) FROM t1;
  33. }
  34. } {6}
  35. do_test collateA-1.2 {
  36. execsql {SELECT a FROM t1 WHERE b='abcde '}
  37. } {}
  38. do_test collateA-1.3 {
  39. execsql {SELECT a FROM t1 WHERE c='abcde '}
  40. } {1}
  41. do_test collateA-1.4 {
  42. execsql {SELECT a FROM t1 WHERE b='xyzzy'}
  43. } {}
  44. do_test collateA-1.5 {
  45. execsql {SELECT a FROM t1 WHERE c='xyzzy'}
  46. } {2 3 4}
  47. do_test collateA-1.6 {
  48. execsql {SELECT a FROM t1 WHERE c='xyzzy '}
  49. } {2 3 4}
  50. do_test collateA-1.7 {
  51. execsql {SELECT a FROM t1 WHERE c='xyzzy '}
  52. } {2 3 4}
  53. do_test collateA-1.8 {
  54. execsql {SELECT a FROM t1 WHERE c='xyzzy '}
  55. } {2 3 4}
  56. do_test collateA-1.9 {
  57. execsql {SELECT a FROM t1 WHERE c='xyzzy '}
  58. } {2 3 4}
  59. do_test collateA-1.10 {
  60. execsql {SELECT a FROM t1 WHERE c='xyzzy '}
  61. } {2 3 4}
  62. do_test collateA-1.11 {
  63. execsql {SELECT 'abc123'='abc123 ' COLLATE RTRIM;}
  64. } {1}
  65. do_test collateA-1.12 {
  66. execsql {SELECT 'abc123 '='abc123' COLLATE RTRIM;}
  67. } {1}
  68. do_test collateA-1.13 {
  69. execsql {SELECT ' '='' COLLATE RTRIM, ' '='' COLLATE BINARY, ' '=''}
  70. } {1 0 0}
  71. do_test collateA-1.14 {
  72. execsql {SELECT ''=' ' COLLATE RTRIM, ''=' ' COLLATE BINARY, ''=' '}
  73. } {1 0 0}
  74. do_test collateA-1.15 {
  75. execsql {SELECT ' '=' ' COLLATE RTRIM, ' '=' '}
  76. } {1 0}
  77. do_test collateA-1.16 {
  78. execsql {SELECT ''<>' ' COLLATE RTRIM, ''<>' ' COLLATE BINARY, ''<>' '}
  79. } {0 1 1}
  80. do_test collateA-1.17 {
  81. execsql {SELECT a FROM t1 WHERE c='xyzz'}
  82. } {}
  83. do_test collateA-1.18 {
  84. execsql {SELECT a FROM t1 WHERE c='xyzzyy '}
  85. } {}
  86. do_test collateA-1.19 {
  87. execsql {SELECT a FROM t1 WHERE c='xyzz '}
  88. } {}
  89. do_test collateA-1.20 {
  90. execsql {SELECT a FROM t1 WHERE c='abcd '}
  91. } {}
  92. do_test collateA-1.21 {
  93. execsql {SELECT a FROM t1 WHERE c='abcd'}
  94. } {}
  95. do_test collateA-1.22 {
  96. execsql {SELECT a FROM t1 WHERE c='abc'}
  97. } {}
  98. do_test collateA-1.23 {
  99. execsql {SELECT a FROM t1 WHERE c='abcdef '}
  100. } {}
  101. do_test collateA-1.24 {
  102. execsql {SELECT a FROM t1 WHERE c=''}
  103. } {5 6}
  104. do_test collateA-1.25 {
  105. execsql {SELECT a FROM t1 WHERE c=' '}
  106. } {5 6}
  107. do_test collateA-1.26 {
  108. execsql {SELECT a FROM t1 WHERE c=' '}
  109. } {5 6}
  110. do_test collateA-2.1 {
  111. execsql {
  112. CREATE INDEX i1b ON t1(b);
  113. CREATE INDEX i1c ON t1(c);
  114. PRAGMA integrity_check;
  115. }
  116. } {ok}
  117. do_test collateA-2.2 {
  118. execsql {SELECT a FROM t1 WHERE b='abcde '}
  119. } {}
  120. do_test collateA-2.3 {
  121. execsql {SELECT a FROM t1 WHERE c='abcde '}
  122. } {1}
  123. do_test collateA-2.4 {
  124. execsql {SELECT a FROM t1 WHERE b='xyzzy'}
  125. } {}
  126. do_test collateA-2.5 {
  127. execsql {SELECT a FROM t1 WHERE c='xyzzy'}
  128. } {2 3 4}
  129. do_test collateA-2.6 {
  130. execsql {SELECT a FROM t1 WHERE c='xyzzy '}
  131. } {2 3 4}
  132. do_test collateA-2.7 {
  133. execsql {SELECT a FROM t1 WHERE c='xyzzy '}
  134. } {2 3 4}
  135. do_test collateA-2.8 {
  136. execsql {SELECT a FROM t1 WHERE c='xyzzy '}
  137. } {2 3 4}
  138. do_test collateA-2.9 {
  139. execsql {SELECT a FROM t1 WHERE c='xyzzy '}
  140. } {2 3 4}
  141. do_test collateA-2.10 {
  142. execsql {SELECT a FROM t1 WHERE c='xyzzy '}
  143. } {2 3 4}
  144. do_test collateA-2.17 {
  145. execsql {SELECT a FROM t1 WHERE c='xyzz'}
  146. } {}
  147. do_test collateA-2.18 {
  148. execsql {SELECT a FROM t1 WHERE c='xyzzyy '}
  149. } {}
  150. do_test collateA-2.19 {
  151. execsql {SELECT a FROM t1 WHERE c='xyzz '}
  152. } {}
  153. do_test collateA-2.20 {
  154. execsql {SELECT a FROM t1 WHERE c='abcd '}
  155. } {}
  156. do_test collateA-2.21 {
  157. execsql {SELECT a FROM t1 WHERE c='abcd'}
  158. } {}
  159. do_test collateA-2.22 {
  160. execsql {SELECT a FROM t1 WHERE c='abc'}
  161. } {}
  162. do_test collateA-2.23 {
  163. execsql {SELECT a FROM t1 WHERE c='abcdef '}
  164. } {}
  165. do_test collateA-2.24 {
  166. execsql {SELECT a FROM t1 WHERE c=''}
  167. } {5 6}
  168. do_test collateA-2.25 {
  169. execsql {SELECT a FROM t1 WHERE c=' '}
  170. } {5 6}
  171. do_test collateA-2.26 {
  172. execsql {SELECT a FROM t1 WHERE c=' '}
  173. } {5 6}
  174. do_test collateA-3.1 {
  175. db close
  176. sqlite3 db test.db
  177. execsql {
  178. REINDEX;
  179. PRAGMA integrity_check;
  180. }
  181. } {ok}
  182. do_test collateA-3.2 {
  183. execsql {SELECT a FROM t1 WHERE b='abcde '}
  184. } {}
  185. do_test collateA-3.3 {
  186. execsql {SELECT a FROM t1 WHERE c='abcde '}
  187. } {1}
  188. do_test collateA-3.4 {
  189. execsql {SELECT a FROM t1 WHERE b='xyzzy'}
  190. } {}
  191. do_test collateA-3.5 {
  192. execsql {SELECT a FROM t1 WHERE c='xyzzy'}
  193. } {2 3 4}
  194. do_test collateA-3.6 {
  195. execsql {SELECT a FROM t1 WHERE c='xyzzy '}
  196. } {2 3 4}
  197. do_test collateA-3.7 {
  198. execsql {SELECT a FROM t1 WHERE c='xyzzy '}
  199. } {2 3 4}
  200. do_test collateA-3.8 {
  201. execsql {SELECT a FROM t1 WHERE c='xyzzy '}
  202. } {2 3 4}
  203. do_test collateA-3.9 {
  204. execsql {SELECT a FROM t1 WHERE c='xyzzy '}
  205. } {2 3 4}
  206. do_test collateA-3.10 {
  207. execsql {SELECT a FROM t1 WHERE c='xyzzy '}
  208. } {2 3 4}
  209. finish_test