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.1.1.1 2012/02/21 17:04:16 misho Exp $
17:
18: set testdir [file dirname $argv0]
19: source $testdir/tester.tcl
20:
21: do_test collateA-1.1 {
22: execsql {
23: CREATE TABLE t1(
24: a INTEGER PRIMARY KEY,
25: b TEXT COLLATE BINARY,
26: c TEXT COLLATE RTRIM
27: );
28: INSERT INTO t1 VALUES(1, 'abcde','abcde');
29: INSERT INTO t1 VALUES(2, 'xyzzy ','xyzzy ');
30: INSERT INTO t1 VALUES(3, 'xyzzy ','xyzzy ');
31: INSERT INTO t1 VALUES(4, 'xyzzy ','xyzzy ');
32: INSERT INTO t1 VALUES(5, ' ', ' ');
33: INSERT INTO t1 VALUES(6, '', '');
34: SELECT count(*) FROM t1;
35: }
36: } {6}
37: do_test collateA-1.2 {
38: execsql {SELECT a FROM t1 WHERE b='abcde '}
39: } {}
40: do_test collateA-1.3 {
41: execsql {SELECT a FROM t1 WHERE c='abcde '}
42: } {1}
43: do_test collateA-1.4 {
44: execsql {SELECT a FROM t1 WHERE b='xyzzy'}
45: } {}
46: do_test collateA-1.5 {
47: execsql {SELECT a FROM t1 WHERE c='xyzzy'}
48: } {2 3 4}
49: do_test collateA-1.6 {
50: execsql {SELECT a FROM t1 WHERE c='xyzzy '}
51: } {2 3 4}
52: do_test collateA-1.7 {
53: execsql {SELECT a FROM t1 WHERE c='xyzzy '}
54: } {2 3 4}
55: do_test collateA-1.8 {
56: execsql {SELECT a FROM t1 WHERE c='xyzzy '}
57: } {2 3 4}
58: do_test collateA-1.9 {
59: execsql {SELECT a FROM t1 WHERE c='xyzzy '}
60: } {2 3 4}
61: do_test collateA-1.10 {
62: execsql {SELECT a FROM t1 WHERE c='xyzzy '}
63: } {2 3 4}
64: do_test collateA-1.11 {
65: execsql {SELECT 'abc123'='abc123 ' COLLATE RTRIM;}
66: } {1}
67: do_test collateA-1.12 {
68: execsql {SELECT 'abc123 '='abc123' COLLATE RTRIM;}
69: } {1}
70: do_test collateA-1.13 {
71: execsql {SELECT ' '='' COLLATE RTRIM, ' '='' COLLATE BINARY, ' '=''}
72: } {1 0 0}
73: do_test collateA-1.14 {
74: execsql {SELECT ''=' ' COLLATE RTRIM, ''=' ' COLLATE BINARY, ''=' '}
75: } {1 0 0}
76: do_test collateA-1.15 {
77: execsql {SELECT ' '=' ' COLLATE RTRIM, ' '=' '}
78: } {1 0}
79: do_test collateA-1.16 {
80: execsql {SELECT ''<>' ' COLLATE RTRIM, ''<>' ' COLLATE BINARY, ''<>' '}
81: } {0 1 1}
82: do_test collateA-1.17 {
83: execsql {SELECT a FROM t1 WHERE c='xyzz'}
84: } {}
85: do_test collateA-1.18 {
86: execsql {SELECT a FROM t1 WHERE c='xyzzyy '}
87: } {}
88: do_test collateA-1.19 {
89: execsql {SELECT a FROM t1 WHERE c='xyzz '}
90: } {}
91: do_test collateA-1.20 {
92: execsql {SELECT a FROM t1 WHERE c='abcd '}
93: } {}
94: do_test collateA-1.21 {
95: execsql {SELECT a FROM t1 WHERE c='abcd'}
96: } {}
97: do_test collateA-1.22 {
98: execsql {SELECT a FROM t1 WHERE c='abc'}
99: } {}
100: do_test collateA-1.23 {
101: execsql {SELECT a FROM t1 WHERE c='abcdef '}
102: } {}
103: do_test collateA-1.24 {
104: execsql {SELECT a FROM t1 WHERE c=''}
105: } {5 6}
106: do_test collateA-1.25 {
107: execsql {SELECT a FROM t1 WHERE c=' '}
108: } {5 6}
109: do_test collateA-1.26 {
110: execsql {SELECT a FROM t1 WHERE c=' '}
111: } {5 6}
112:
113:
114: do_test collateA-2.1 {
115: execsql {
116: CREATE INDEX i1b ON t1(b);
117: CREATE INDEX i1c ON t1(c);
118: PRAGMA integrity_check;
119: }
120: } {ok}
121: do_test collateA-2.2 {
122: execsql {SELECT a FROM t1 WHERE b='abcde '}
123: } {}
124: do_test collateA-2.3 {
125: execsql {SELECT a FROM t1 WHERE c='abcde '}
126: } {1}
127: do_test collateA-2.4 {
128: execsql {SELECT a FROM t1 WHERE b='xyzzy'}
129: } {}
130: do_test collateA-2.5 {
131: execsql {SELECT a FROM t1 WHERE c='xyzzy'}
132: } {2 3 4}
133: do_test collateA-2.6 {
134: execsql {SELECT a FROM t1 WHERE c='xyzzy '}
135: } {2 3 4}
136: do_test collateA-2.7 {
137: execsql {SELECT a FROM t1 WHERE c='xyzzy '}
138: } {2 3 4}
139: do_test collateA-2.8 {
140: execsql {SELECT a FROM t1 WHERE c='xyzzy '}
141: } {2 3 4}
142: do_test collateA-2.9 {
143: execsql {SELECT a FROM t1 WHERE c='xyzzy '}
144: } {2 3 4}
145: do_test collateA-2.10 {
146: execsql {SELECT a FROM t1 WHERE c='xyzzy '}
147: } {2 3 4}
148: do_test collateA-2.17 {
149: execsql {SELECT a FROM t1 WHERE c='xyzz'}
150: } {}
151: do_test collateA-2.18 {
152: execsql {SELECT a FROM t1 WHERE c='xyzzyy '}
153: } {}
154: do_test collateA-2.19 {
155: execsql {SELECT a FROM t1 WHERE c='xyzz '}
156: } {}
157: do_test collateA-2.20 {
158: execsql {SELECT a FROM t1 WHERE c='abcd '}
159: } {}
160: do_test collateA-2.21 {
161: execsql {SELECT a FROM t1 WHERE c='abcd'}
162: } {}
163: do_test collateA-2.22 {
164: execsql {SELECT a FROM t1 WHERE c='abc'}
165: } {}
166: do_test collateA-2.23 {
167: execsql {SELECT a FROM t1 WHERE c='abcdef '}
168: } {}
169: do_test collateA-2.24 {
170: execsql {SELECT a FROM t1 WHERE c=''}
171: } {5 6}
172: do_test collateA-2.25 {
173: execsql {SELECT a FROM t1 WHERE c=' '}
174: } {5 6}
175: do_test collateA-2.26 {
176: execsql {SELECT a FROM t1 WHERE c=' '}
177: } {5 6}
178:
179:
180: do_test collateA-3.1 {
181: db close
182: sqlite3 db test.db
183: execsql {
184: REINDEX;
185: PRAGMA integrity_check;
186: }
187: } {ok}
188: do_test collateA-3.2 {
189: execsql {SELECT a FROM t1 WHERE b='abcde '}
190: } {}
191: do_test collateA-3.3 {
192: execsql {SELECT a FROM t1 WHERE c='abcde '}
193: } {1}
194: do_test collateA-3.4 {
195: execsql {SELECT a FROM t1 WHERE b='xyzzy'}
196: } {}
197: do_test collateA-3.5 {
198: execsql {SELECT a FROM t1 WHERE c='xyzzy'}
199: } {2 3 4}
200: do_test collateA-3.6 {
201: execsql {SELECT a FROM t1 WHERE c='xyzzy '}
202: } {2 3 4}
203: do_test collateA-3.7 {
204: execsql {SELECT a FROM t1 WHERE c='xyzzy '}
205: } {2 3 4}
206: do_test collateA-3.8 {
207: execsql {SELECT a FROM t1 WHERE c='xyzzy '}
208: } {2 3 4}
209: do_test collateA-3.9 {
210: execsql {SELECT a FROM t1 WHERE c='xyzzy '}
211: } {2 3 4}
212: do_test collateA-3.10 {
213: execsql {SELECT a FROM t1 WHERE c='xyzzy '}
214: } {2 3 4}
215:
216:
217: finish_test
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>