Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(5)

Side by Side Diff: third_party/sqlite/src/test/collate3.test

Issue 901033002: Import SQLite 3.8.7.4. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Chromium changes to support SQLite 3.8.7.4. Created 5 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 # 2001 September 15 1 # 2001 September 15
2 # 2 #
3 # The author disclaims copyright to this source code. In place of 3 # The author disclaims copyright to this source code. In place of
4 # a legal notice, here is a blessing: 4 # a legal notice, here is a blessing:
5 # 5 #
6 # May you do good and not evil. 6 # May you do good and not evil.
7 # May you find forgiveness for yourself and forgive others. 7 # May you find forgiveness for yourself and forgive others.
8 # May you share freely, never taking more than you give. 8 # May you share freely, never taking more than you give.
9 # 9 #
10 #*********************************************************************** 10 #***********************************************************************
(...skipping 37 matching lines...) Expand 10 before | Expand all | Expand 10 after
48 do_test collate3-1.3 { 48 do_test collate3-1.3 {
49 catchsql { 49 catchsql {
50 CREATE INDEX collate3i1 ON collate3t1(c1 COLLATE garbage); 50 CREATE INDEX collate3i1 ON collate3t1(c1 COLLATE garbage);
51 } 51 }
52 } {1 {no such collation sequence: garbage}} 52 } {1 {no such collation sequence: garbage}}
53 53
54 execsql { 54 execsql {
55 DROP TABLE collate3t1; 55 DROP TABLE collate3t1;
56 } 56 }
57 57
58 proc caseless {a b} { string compare -nocase $a $b }
59 do_test collate3-1.4 {
60 db collate caseless caseless
61 execsql {
62 CREATE TABLE t1(a COLLATE caseless);
63 INSERT INTO t1 VALUES('Abc2');
64 INSERT INTO t1 VALUES('abc1');
65 INSERT INTO t1 VALUES('aBc3');
66 }
67 execsql { SELECT * FROM t1 ORDER BY a }
68 } {abc1 Abc2 aBc3}
69
70 do_test collate3-1.5 {
71 db close
72 sqlite3 db test.db
73 catchsql { SELECT * FROM t1 ORDER BY a }
74 } {1 {no such collation sequence: caseless}}
75
76 do_test collate3-1.6.1 {
77 db collate caseless caseless
78 execsql { CREATE INDEX i1 ON t1(a) }
79 execsql { SELECT * FROM t1 ORDER BY a }
80 } {abc1 Abc2 aBc3}
81
82 do_test collate3-1.6.2 {
83 db close
84 sqlite3 db test.db
85 catchsql { SELECT * FROM t1 ORDER BY a }
86 } {1 {no such collation sequence: caseless}}
87
88 do_test collate3-1.6.3 {
89 db close
90 sqlite3 db test.db
91 catchsql { PRAGMA integrity_check }
92 } {1 {no such collation sequence: caseless}}
93
94 do_test collate3-1.6.4 {
95 db close
96 sqlite3 db test.db
97 catchsql { REINDEX }
98 } {1 {no such collation sequence: caseless}}
99
100 do_test collate3-1.7.1 {
101 db collate caseless caseless
102 execsql {
103 DROP TABLE t1;
104 CREATE TABLE t1(a);
105 CREATE INDEX i1 ON t1(a COLLATE caseless);
106 INSERT INTO t1 VALUES('Abc2');
107 INSERT INTO t1 VALUES('abc1');
108 INSERT INTO t1 VALUES('aBc3');
109 SELECT * FROM t1 ORDER BY a COLLATE caseless;
110 }
111 } {abc1 Abc2 aBc3}
112
113 do_test collate3-1.7.2 {
114 db close
115 sqlite3 db test.db
116 catchsql { SELECT * FROM t1 ORDER BY a COLLATE caseless}
117 } {1 {no such collation sequence: caseless}}
118
119 do_test collate3-1.7.4 {
120 db close
121 sqlite3 db test.db
122 catchsql { REINDEX }
123 } {1 {no such collation sequence: caseless}}
124
125 do_test collate3-1.7.3 {
126 db close
127 sqlite3 db test.db
128 catchsql { PRAGMA integrity_check }
129 } {1 {no such collation sequence: caseless}}
130
131 do_test collate3-1.7.4 {
132 db close
133 sqlite3 db test.db
134 catchsql { REINDEX }
135 } {1 {no such collation sequence: caseless}}
136
137 do_test collate3-1.7.5 {
138 db close
139 sqlite3 db test.db
140 db collate caseless caseless
141 catchsql { PRAGMA integrity_check }
142 } {0 ok}
143
144 proc needed {nm} { db collate caseless caseless }
145 do_test collate3-1.7.6 {
146 db close
147 sqlite3 db test.db
148 db collation_needed needed
149 catchsql { PRAGMA integrity_check }
150 } {0 ok}
151
152 do_test collate3-1.8 {
153 execsql { DROP TABLE t1 }
154 } {}
155
58 # 156 #
59 # Create a table with a default collation sequence, then close 157 # Create a table with a default collation sequence, then close
60 # and re-open the database without re-registering the collation 158 # and re-open the database without re-registering the collation
61 # sequence. Then make sure the library stops us from using 159 # sequence. Then make sure the library stops us from using
62 # the collation sequence in: 160 # the collation sequence in:
63 # * an explicitly collated ORDER BY 161 # * an explicitly collated ORDER BY
64 # * an ORDER BY that uses the default collation sequence 162 # * an ORDER BY that uses the default collation sequence
65 # * an expression (=) 163 # * an expression (=)
66 # * a CREATE TABLE statement 164 # * a CREATE TABLE statement
67 # * a CREATE INDEX statement that uses a default collation sequence 165 # * a CREATE INDEX statement that uses a default collation sequence
(...skipping 351 matching lines...) Expand 10 before | Expand all | Expand 10 after
419 } 517 }
420 } {0 {}} 518 } {0 {}}
421 519
422 do_test collate3-5.9 { 520 do_test collate3-5.9 {
423 execsql { 521 execsql {
424 DROP TABLE collate3t1; 522 DROP TABLE collate3t1;
425 } 523 }
426 } {} 524 } {}
427 525
428 finish_test 526 finish_test
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698