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

Side by Side Diff: third_party/sqlite/src/test/notnull.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 # 2002 January 29 1 # 2002 January 29
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 29 matching lines...) Expand all
40 INSERT INTO t1(a,b,c,d,e) VALUES(1,2,3,4,5); 40 INSERT INTO t1(a,b,c,d,e) VALUES(1,2,3,4,5);
41 SELECT * FROM t1 order by a; 41 SELECT * FROM t1 order by a;
42 } 42 }
43 } {0 {1 2 3 4 5}} 43 } {0 {1 2 3 4 5}}
44 do_test notnull-1.2 { 44 do_test notnull-1.2 {
45 catchsql { 45 catchsql {
46 DELETE FROM t1; 46 DELETE FROM t1;
47 INSERT INTO t1(b,c,d,e) VALUES(2,3,4,5); 47 INSERT INTO t1(b,c,d,e) VALUES(2,3,4,5);
48 SELECT * FROM t1 order by a; 48 SELECT * FROM t1 order by a;
49 } 49 }
50 } {1 {t1.a may not be NULL}} 50 } {1 {NOT NULL constraint failed: t1.a}}
51 verify_ex_errcode notnull-1.2b SQLITE_CONSTRAINT_NOTNULL
51 do_test notnull-1.3 { 52 do_test notnull-1.3 {
52 catchsql { 53 catchsql {
53 DELETE FROM t1; 54 DELETE FROM t1;
54 INSERT OR IGNORE INTO t1(b,c,d,e) VALUES(2,3,4,5); 55 INSERT OR IGNORE INTO t1(b,c,d,e) VALUES(2,3,4,5);
55 SELECT * FROM t1 order by a; 56 SELECT * FROM t1 order by a;
56 } 57 }
57 } {0 {}} 58 } {0 {}}
58 do_test notnull-1.4 { 59 do_test notnull-1.4 {
59 catchsql { 60 catchsql {
60 DELETE FROM t1; 61 DELETE FROM t1;
61 INSERT OR REPLACE INTO t1(b,c,d,e) VALUES(2,3,4,5); 62 INSERT OR REPLACE INTO t1(b,c,d,e) VALUES(2,3,4,5);
62 SELECT * FROM t1 order by a; 63 SELECT * FROM t1 order by a;
63 } 64 }
64 } {1 {t1.a may not be NULL}} 65 } {1 {NOT NULL constraint failed: t1.a}}
66 verify_ex_errcode notnull-1.4b SQLITE_CONSTRAINT_NOTNULL
65 do_test notnull-1.5 { 67 do_test notnull-1.5 {
66 catchsql { 68 catchsql {
67 DELETE FROM t1; 69 DELETE FROM t1;
68 INSERT OR ABORT INTO t1(b,c,d,e) VALUES(2,3,4,5); 70 INSERT OR ABORT INTO t1(b,c,d,e) VALUES(2,3,4,5);
69 SELECT * FROM t1 order by a; 71 SELECT * FROM t1 order by a;
70 } 72 }
71 } {1 {t1.a may not be NULL}} 73 } {1 {NOT NULL constraint failed: t1.a}}
74 verify_ex_errcode notnull-1.5b SQLITE_CONSTRAINT_NOTNULL
72 do_test notnull-1.6 { 75 do_test notnull-1.6 {
73 catchsql { 76 catchsql {
74 DELETE FROM t1; 77 DELETE FROM t1;
75 INSERT INTO t1(a,c,d,e) VALUES(1,3,4,5); 78 INSERT INTO t1(a,c,d,e) VALUES(1,3,4,5);
76 SELECT * FROM t1 order by a; 79 SELECT * FROM t1 order by a;
77 } 80 }
78 } {0 {1 5 3 4 5}} 81 } {0 {1 5 3 4 5}}
79 do_test notnull-1.7 { 82 do_test notnull-1.7 {
80 catchsql { 83 catchsql {
81 DELETE FROM t1; 84 DELETE FROM t1;
(...skipping 14 matching lines...) Expand all
96 INSERT OR ABORT INTO t1(a,c,d,e) VALUES(1,3,4,5); 99 INSERT OR ABORT INTO t1(a,c,d,e) VALUES(1,3,4,5);
97 SELECT * FROM t1 order by a; 100 SELECT * FROM t1 order by a;
98 } 101 }
99 } {0 {1 5 3 4 5}} 102 } {0 {1 5 3 4 5}}
100 do_test notnull-1.10 { 103 do_test notnull-1.10 {
101 catchsql { 104 catchsql {
102 DELETE FROM t1; 105 DELETE FROM t1;
103 INSERT INTO t1(a,b,c,d,e) VALUES(1,null,3,4,5); 106 INSERT INTO t1(a,b,c,d,e) VALUES(1,null,3,4,5);
104 SELECT * FROM t1 order by a; 107 SELECT * FROM t1 order by a;
105 } 108 }
106 } {1 {t1.b may not be NULL}} 109 } {1 {NOT NULL constraint failed: t1.b}}
110 verify_ex_errcode notnull-1.10b SQLITE_CONSTRAINT_NOTNULL
107 do_test notnull-1.11 { 111 do_test notnull-1.11 {
108 catchsql { 112 catchsql {
109 DELETE FROM t1; 113 DELETE FROM t1;
110 INSERT OR IGNORE INTO t1(a,b,c,d,e) VALUES(1,null,3,4,5); 114 INSERT OR IGNORE INTO t1(a,b,c,d,e) VALUES(1,null,3,4,5);
111 SELECT * FROM t1 order by a; 115 SELECT * FROM t1 order by a;
112 } 116 }
113 } {0 {}} 117 } {0 {}}
114 do_test notnull-1.12 { 118 do_test notnull-1.12 {
115 catchsql { 119 catchsql {
116 DELETE FROM t1; 120 DELETE FROM t1;
(...skipping 21 matching lines...) Expand all
138 INSERT OR REPLACE INTO t1(a,b,c,d,e) VALUES(1,2,null,4,5); 142 INSERT OR REPLACE INTO t1(a,b,c,d,e) VALUES(1,2,null,4,5);
139 SELECT * FROM t1 order by a; 143 SELECT * FROM t1 order by a;
140 } 144 }
141 } {0 {1 2 6 4 5}} 145 } {0 {1 2 6 4 5}}
142 do_test notnull-1.16 { 146 do_test notnull-1.16 {
143 catchsql { 147 catchsql {
144 DELETE FROM t1; 148 DELETE FROM t1;
145 INSERT OR ABORT INTO t1(a,b,c,d,e) VALUES(1,2,null,4,5); 149 INSERT OR ABORT INTO t1(a,b,c,d,e) VALUES(1,2,null,4,5);
146 SELECT * FROM t1 order by a; 150 SELECT * FROM t1 order by a;
147 } 151 }
148 } {1 {t1.c may not be NULL}} 152 } {1 {NOT NULL constraint failed: t1.c}}
153 verify_ex_errcode notnull-1.16b SQLITE_CONSTRAINT_NOTNULL
149 do_test notnull-1.17 { 154 do_test notnull-1.17 {
150 catchsql { 155 catchsql {
151 DELETE FROM t1; 156 DELETE FROM t1;
152 INSERT OR ABORT INTO t1(a,b,c,d,e) VALUES(1,2,3,null,5); 157 INSERT OR ABORT INTO t1(a,b,c,d,e) VALUES(1,2,3,null,5);
153 SELECT * FROM t1 order by a; 158 SELECT * FROM t1 order by a;
154 } 159 }
155 } {1 {t1.d may not be NULL}} 160 } {1 {NOT NULL constraint failed: t1.d}}
161 verify_ex_errcode notnull-1.17b SQLITE_CONSTRAINT_NOTNULL
156 do_test notnull-1.18 { 162 do_test notnull-1.18 {
157 catchsql { 163 catchsql {
158 DELETE FROM t1; 164 DELETE FROM t1;
159 INSERT OR ABORT INTO t1(a,b,c,e) VALUES(1,2,3,5); 165 INSERT OR ABORT INTO t1(a,b,c,e) VALUES(1,2,3,5);
160 SELECT * FROM t1 order by a; 166 SELECT * FROM t1 order by a;
161 } 167 }
162 } {0 {1 2 3 7 5}} 168 } {0 {1 2 3 7 5}}
163 do_test notnull-1.19 { 169 do_test notnull-1.19 {
164 catchsql { 170 catchsql {
165 DELETE FROM t1; 171 DELETE FROM t1;
166 INSERT INTO t1(a,b,c,d) VALUES(1,2,3,4); 172 INSERT INTO t1(a,b,c,d) VALUES(1,2,3,4);
167 SELECT * FROM t1 order by a; 173 SELECT * FROM t1 order by a;
168 } 174 }
169 } {0 {1 2 3 4 8}} 175 } {0 {1 2 3 4 8}}
170 do_test notnull-1.20 { 176 do_test notnull-1.20 {
171 catchsql { 177 catchsql {
172 DELETE FROM t1; 178 DELETE FROM t1;
173 INSERT INTO t1(a,b,c,d,e) VALUES(1,2,3,4,null); 179 INSERT INTO t1(a,b,c,d,e) VALUES(1,2,3,4,null);
174 SELECT * FROM t1 order by a; 180 SELECT * FROM t1 order by a;
175 } 181 }
176 } {1 {t1.e may not be NULL}} 182 } {1 {NOT NULL constraint failed: t1.e}}
183 verify_ex_errcode notnull-1.20b SQLITE_CONSTRAINT_NOTNULL
177 do_test notnull-1.21 { 184 do_test notnull-1.21 {
178 catchsql { 185 catchsql {
179 DELETE FROM t1; 186 DELETE FROM t1;
180 INSERT OR REPLACE INTO t1(e,d,c,b,a) VALUES(1,2,3,null,5); 187 INSERT OR REPLACE INTO t1(e,d,c,b,a) VALUES(1,2,3,null,5);
181 SELECT * FROM t1 order by a; 188 SELECT * FROM t1 order by a;
182 } 189 }
183 } {0 {5 5 3 2 1}} 190 } {0 {5 5 3 2 1}}
184 191
185 do_test notnull-2.1 { 192 do_test notnull-2.1 {
186 catchsql { 193 catchsql {
187 DELETE FROM t1; 194 DELETE FROM t1;
188 INSERT INTO t1 VALUES(1,2,3,4,5); 195 INSERT INTO t1 VALUES(1,2,3,4,5);
189 UPDATE t1 SET a=null; 196 UPDATE t1 SET a=null;
190 SELECT * FROM t1 ORDER BY a; 197 SELECT * FROM t1 ORDER BY a;
191 } 198 }
192 } {1 {t1.a may not be NULL}} 199 } {1 {NOT NULL constraint failed: t1.a}}
200 verify_ex_errcode notnull-2.1b SQLITE_CONSTRAINT_NOTNULL
193 do_test notnull-2.2 { 201 do_test notnull-2.2 {
194 catchsql { 202 catchsql {
195 DELETE FROM t1; 203 DELETE FROM t1;
196 INSERT INTO t1 VALUES(1,2,3,4,5); 204 INSERT INTO t1 VALUES(1,2,3,4,5);
197 UPDATE OR REPLACE t1 SET a=null; 205 UPDATE OR REPLACE t1 SET a=null;
198 SELECT * FROM t1 ORDER BY a; 206 SELECT * FROM t1 ORDER BY a;
199 } 207 }
200 } {1 {t1.a may not be NULL}} 208 } {1 {NOT NULL constraint failed: t1.a}}
209 verify_ex_errcode notnull-2.2b SQLITE_CONSTRAINT_NOTNULL
201 do_test notnull-2.3 { 210 do_test notnull-2.3 {
202 catchsql { 211 catchsql {
203 DELETE FROM t1; 212 DELETE FROM t1;
204 INSERT INTO t1 VALUES(1,2,3,4,5); 213 INSERT INTO t1 VALUES(1,2,3,4,5);
205 UPDATE OR IGNORE t1 SET a=null; 214 UPDATE OR IGNORE t1 SET a=null;
206 SELECT * FROM t1 ORDER BY a; 215 SELECT * FROM t1 ORDER BY a;
207 } 216 }
208 } {0 {1 2 3 4 5}} 217 } {0 {1 2 3 4 5}}
209 do_test notnull-2.4 { 218 do_test notnull-2.4 {
210 catchsql { 219 catchsql {
211 DELETE FROM t1; 220 DELETE FROM t1;
212 INSERT INTO t1 VALUES(1,2,3,4,5); 221 INSERT INTO t1 VALUES(1,2,3,4,5);
213 UPDATE OR ABORT t1 SET a=null; 222 UPDATE OR ABORT t1 SET a=null;
214 SELECT * FROM t1 ORDER BY a; 223 SELECT * FROM t1 ORDER BY a;
215 } 224 }
216 } {1 {t1.a may not be NULL}} 225 } {1 {NOT NULL constraint failed: t1.a}}
226 verify_ex_errcode notnull-2.4b SQLITE_CONSTRAINT_NOTNULL
217 do_test notnull-2.5 { 227 do_test notnull-2.5 {
218 catchsql { 228 catchsql {
219 DELETE FROM t1; 229 DELETE FROM t1;
220 INSERT INTO t1 VALUES(1,2,3,4,5); 230 INSERT INTO t1 VALUES(1,2,3,4,5);
221 UPDATE t1 SET b=null; 231 UPDATE t1 SET b=null;
222 SELECT * FROM t1 ORDER BY a; 232 SELECT * FROM t1 ORDER BY a;
223 } 233 }
224 } {1 {t1.b may not be NULL}} 234 } {1 {NOT NULL constraint failed: t1.b}}
235 verify_ex_errcode notnull-2.6b SQLITE_CONSTRAINT_NOTNULL
225 do_test notnull-2.6 { 236 do_test notnull-2.6 {
226 catchsql { 237 catchsql {
227 DELETE FROM t1; 238 DELETE FROM t1;
228 INSERT INTO t1 VALUES(1,2,3,4,5); 239 INSERT INTO t1 VALUES(1,2,3,4,5);
229 UPDATE OR REPLACE t1 SET b=null, d=e, e=d; 240 UPDATE OR REPLACE t1 SET b=null, d=e, e=d;
230 SELECT * FROM t1 ORDER BY a; 241 SELECT * FROM t1 ORDER BY a;
231 } 242 }
232 } {0 {1 5 3 5 4}} 243 } {0 {1 5 3 5 4}}
233 do_test notnull-2.7 { 244 do_test notnull-2.7 {
234 catchsql { 245 catchsql {
(...skipping 19 matching lines...) Expand all
254 SELECT * FROM t1 ORDER BY a; 265 SELECT * FROM t1 ORDER BY a;
255 } 266 }
256 } {0 {1 2 3 4 5}} 267 } {0 {1 2 3 4 5}}
257 do_test notnull-2.10 { 268 do_test notnull-2.10 {
258 catchsql { 269 catchsql {
259 DELETE FROM t1; 270 DELETE FROM t1;
260 INSERT INTO t1 VALUES(1,2,3,4,5); 271 INSERT INTO t1 VALUES(1,2,3,4,5);
261 UPDATE t1 SET e=null, a=b, b=a; 272 UPDATE t1 SET e=null, a=b, b=a;
262 SELECT * FROM t1 ORDER BY a; 273 SELECT * FROM t1 ORDER BY a;
263 } 274 }
264 } {1 {t1.e may not be NULL}} 275 } {1 {NOT NULL constraint failed: t1.e}}
276 verify_ex_errcode notnull-2.10b SQLITE_CONSTRAINT_NOTNULL
265 277
266 do_test notnull-3.0 { 278 do_test notnull-3.0 {
267 execsql { 279 execsql {
268 CREATE INDEX t1a ON t1(a); 280 CREATE INDEX t1a ON t1(a);
269 CREATE INDEX t1b ON t1(b); 281 CREATE INDEX t1b ON t1(b);
270 CREATE INDEX t1c ON t1(c); 282 CREATE INDEX t1c ON t1(c);
271 CREATE INDEX t1d ON t1(d); 283 CREATE INDEX t1d ON t1(d);
272 CREATE INDEX t1e ON t1(e); 284 CREATE INDEX t1e ON t1(e);
273 CREATE INDEX t1abc ON t1(a,b,c); 285 CREATE INDEX t1abc ON t1(a,b,c);
274 } 286 }
275 } {} 287 } {}
276 do_test notnull-3.1 { 288 do_test notnull-3.1 {
277 catchsql { 289 catchsql {
278 DELETE FROM t1; 290 DELETE FROM t1;
279 INSERT INTO t1(a,b,c,d,e) VALUES(1,2,3,4,5); 291 INSERT INTO t1(a,b,c,d,e) VALUES(1,2,3,4,5);
280 SELECT * FROM t1 order by a; 292 SELECT * FROM t1 order by a;
281 } 293 }
282 } {0 {1 2 3 4 5}} 294 } {0 {1 2 3 4 5}}
283 do_test notnull-3.2 { 295 do_test notnull-3.2 {
284 catchsql { 296 catchsql {
285 DELETE FROM t1; 297 DELETE FROM t1;
286 INSERT INTO t1(b,c,d,e) VALUES(2,3,4,5); 298 INSERT INTO t1(b,c,d,e) VALUES(2,3,4,5);
287 SELECT * FROM t1 order by a; 299 SELECT * FROM t1 order by a;
288 } 300 }
289 } {1 {t1.a may not be NULL}} 301 } {1 {NOT NULL constraint failed: t1.a}}
302 verify_ex_errcode notnull-3.2b SQLITE_CONSTRAINT_NOTNULL
290 do_test notnull-3.3 { 303 do_test notnull-3.3 {
291 catchsql { 304 catchsql {
292 DELETE FROM t1; 305 DELETE FROM t1;
293 INSERT OR IGNORE INTO t1(b,c,d,e) VALUES(2,3,4,5); 306 INSERT OR IGNORE INTO t1(b,c,d,e) VALUES(2,3,4,5);
294 SELECT * FROM t1 order by a; 307 SELECT * FROM t1 order by a;
295 } 308 }
296 } {0 {}} 309 } {0 {}}
297 do_test notnull-3.4 { 310 do_test notnull-3.4 {
298 catchsql { 311 catchsql {
299 DELETE FROM t1; 312 DELETE FROM t1;
300 INSERT OR REPLACE INTO t1(b,c,d,e) VALUES(2,3,4,5); 313 INSERT OR REPLACE INTO t1(b,c,d,e) VALUES(2,3,4,5);
301 SELECT * FROM t1 order by a; 314 SELECT * FROM t1 order by a;
302 } 315 }
303 } {1 {t1.a may not be NULL}} 316 } {1 {NOT NULL constraint failed: t1.a}}
317 verify_ex_errcode notnull-3.4b SQLITE_CONSTRAINT_NOTNULL
304 do_test notnull-3.5 { 318 do_test notnull-3.5 {
305 catchsql { 319 catchsql {
306 DELETE FROM t1; 320 DELETE FROM t1;
307 INSERT OR ABORT INTO t1(b,c,d,e) VALUES(2,3,4,5); 321 INSERT OR ABORT INTO t1(b,c,d,e) VALUES(2,3,4,5);
308 SELECT * FROM t1 order by a; 322 SELECT * FROM t1 order by a;
309 } 323 }
310 } {1 {t1.a may not be NULL}} 324 } {1 {NOT NULL constraint failed: t1.a}}
325 verify_ex_errcode notnull-3.5b SQLITE_CONSTRAINT_NOTNULL
311 do_test notnull-3.6 { 326 do_test notnull-3.6 {
312 catchsql { 327 catchsql {
313 DELETE FROM t1; 328 DELETE FROM t1;
314 INSERT INTO t1(a,c,d,e) VALUES(1,3,4,5); 329 INSERT INTO t1(a,c,d,e) VALUES(1,3,4,5);
315 SELECT * FROM t1 order by a; 330 SELECT * FROM t1 order by a;
316 } 331 }
317 } {0 {1 5 3 4 5}} 332 } {0 {1 5 3 4 5}}
318 do_test notnull-3.7 { 333 do_test notnull-3.7 {
319 catchsql { 334 catchsql {
320 DELETE FROM t1; 335 DELETE FROM t1;
(...skipping 14 matching lines...) Expand all
335 INSERT OR ABORT INTO t1(a,c,d,e) VALUES(1,3,4,5); 350 INSERT OR ABORT INTO t1(a,c,d,e) VALUES(1,3,4,5);
336 SELECT * FROM t1 order by a; 351 SELECT * FROM t1 order by a;
337 } 352 }
338 } {0 {1 5 3 4 5}} 353 } {0 {1 5 3 4 5}}
339 do_test notnull-3.10 { 354 do_test notnull-3.10 {
340 catchsql { 355 catchsql {
341 DELETE FROM t1; 356 DELETE FROM t1;
342 INSERT INTO t1(a,b,c,d,e) VALUES(1,null,3,4,5); 357 INSERT INTO t1(a,b,c,d,e) VALUES(1,null,3,4,5);
343 SELECT * FROM t1 order by a; 358 SELECT * FROM t1 order by a;
344 } 359 }
345 } {1 {t1.b may not be NULL}} 360 } {1 {NOT NULL constraint failed: t1.b}}
361 verify_ex_errcode notnull-3.10b SQLITE_CONSTRAINT_NOTNULL
346 do_test notnull-3.11 { 362 do_test notnull-3.11 {
347 catchsql { 363 catchsql {
348 DELETE FROM t1; 364 DELETE FROM t1;
349 INSERT OR IGNORE INTO t1(a,b,c,d,e) VALUES(1,null,3,4,5); 365 INSERT OR IGNORE INTO t1(a,b,c,d,e) VALUES(1,null,3,4,5);
350 SELECT * FROM t1 order by a; 366 SELECT * FROM t1 order by a;
351 } 367 }
352 } {0 {}} 368 } {0 {}}
353 do_test notnull-3.12 { 369 do_test notnull-3.12 {
354 catchsql { 370 catchsql {
355 DELETE FROM t1; 371 DELETE FROM t1;
(...skipping 21 matching lines...) Expand all
377 INSERT OR REPLACE INTO t1(a,b,c,d,e) VALUES(1,2,null,4,5); 393 INSERT OR REPLACE INTO t1(a,b,c,d,e) VALUES(1,2,null,4,5);
378 SELECT * FROM t1 order by a; 394 SELECT * FROM t1 order by a;
379 } 395 }
380 } {0 {1 2 6 4 5}} 396 } {0 {1 2 6 4 5}}
381 do_test notnull-3.16 { 397 do_test notnull-3.16 {
382 catchsql { 398 catchsql {
383 DELETE FROM t1; 399 DELETE FROM t1;
384 INSERT OR ABORT INTO t1(a,b,c,d,e) VALUES(1,2,null,4,5); 400 INSERT OR ABORT INTO t1(a,b,c,d,e) VALUES(1,2,null,4,5);
385 SELECT * FROM t1 order by a; 401 SELECT * FROM t1 order by a;
386 } 402 }
387 } {1 {t1.c may not be NULL}} 403 } {1 {NOT NULL constraint failed: t1.c}}
404 verify_ex_errcode notnull-3.16b SQLITE_CONSTRAINT_NOTNULL
388 do_test notnull-3.17 { 405 do_test notnull-3.17 {
389 catchsql { 406 catchsql {
390 DELETE FROM t1; 407 DELETE FROM t1;
391 INSERT OR ABORT INTO t1(a,b,c,d,e) VALUES(1,2,3,null,5); 408 INSERT OR ABORT INTO t1(a,b,c,d,e) VALUES(1,2,3,null,5);
392 SELECT * FROM t1 order by a; 409 SELECT * FROM t1 order by a;
393 } 410 }
394 } {1 {t1.d may not be NULL}} 411 } {1 {NOT NULL constraint failed: t1.d}}
412 verify_ex_errcode notnull-3.17b SQLITE_CONSTRAINT_NOTNULL
395 do_test notnull-3.18 { 413 do_test notnull-3.18 {
396 catchsql { 414 catchsql {
397 DELETE FROM t1; 415 DELETE FROM t1;
398 INSERT OR ABORT INTO t1(a,b,c,e) VALUES(1,2,3,5); 416 INSERT OR ABORT INTO t1(a,b,c,e) VALUES(1,2,3,5);
399 SELECT * FROM t1 order by a; 417 SELECT * FROM t1 order by a;
400 } 418 }
401 } {0 {1 2 3 7 5}} 419 } {0 {1 2 3 7 5}}
402 do_test notnull-3.19 { 420 do_test notnull-3.19 {
403 catchsql { 421 catchsql {
404 DELETE FROM t1; 422 DELETE FROM t1;
405 INSERT INTO t1(a,b,c,d) VALUES(1,2,3,4); 423 INSERT INTO t1(a,b,c,d) VALUES(1,2,3,4);
406 SELECT * FROM t1 order by a; 424 SELECT * FROM t1 order by a;
407 } 425 }
408 } {0 {1 2 3 4 8}} 426 } {0 {1 2 3 4 8}}
409 do_test notnull-3.20 { 427 do_test notnull-3.20 {
410 catchsql { 428 catchsql {
411 DELETE FROM t1; 429 DELETE FROM t1;
412 INSERT INTO t1(a,b,c,d,e) VALUES(1,2,3,4,null); 430 INSERT INTO t1(a,b,c,d,e) VALUES(1,2,3,4,null);
413 SELECT * FROM t1 order by a; 431 SELECT * FROM t1 order by a;
414 } 432 }
415 } {1 {t1.e may not be NULL}} 433 } {1 {NOT NULL constraint failed: t1.e}}
434 verify_ex_errcode notnull-3.20b SQLITE_CONSTRAINT_NOTNULL
416 do_test notnull-3.21 { 435 do_test notnull-3.21 {
417 catchsql { 436 catchsql {
418 DELETE FROM t1; 437 DELETE FROM t1;
419 INSERT OR REPLACE INTO t1(e,d,c,b,a) VALUES(1,2,3,null,5); 438 INSERT OR REPLACE INTO t1(e,d,c,b,a) VALUES(1,2,3,null,5);
420 SELECT * FROM t1 order by a; 439 SELECT * FROM t1 order by a;
421 } 440 }
422 } {0 {5 5 3 2 1}} 441 } {0 {5 5 3 2 1}}
423 442
424 do_test notnull-4.1 { 443 do_test notnull-4.1 {
425 catchsql { 444 catchsql {
426 DELETE FROM t1; 445 DELETE FROM t1;
427 INSERT INTO t1 VALUES(1,2,3,4,5); 446 INSERT INTO t1 VALUES(1,2,3,4,5);
428 UPDATE t1 SET a=null; 447 UPDATE t1 SET a=null;
429 SELECT * FROM t1 ORDER BY a; 448 SELECT * FROM t1 ORDER BY a;
430 } 449 }
431 } {1 {t1.a may not be NULL}} 450 } {1 {NOT NULL constraint failed: t1.a}}
451 verify_ex_errcode notnull-4.1b SQLITE_CONSTRAINT_NOTNULL
432 do_test notnull-4.2 { 452 do_test notnull-4.2 {
433 catchsql { 453 catchsql {
434 DELETE FROM t1; 454 DELETE FROM t1;
435 INSERT INTO t1 VALUES(1,2,3,4,5); 455 INSERT INTO t1 VALUES(1,2,3,4,5);
436 UPDATE OR REPLACE t1 SET a=null; 456 UPDATE OR REPLACE t1 SET a=null;
437 SELECT * FROM t1 ORDER BY a; 457 SELECT * FROM t1 ORDER BY a;
438 } 458 }
439 } {1 {t1.a may not be NULL}} 459 } {1 {NOT NULL constraint failed: t1.a}}
460 verify_ex_errcode notnull-4.2b SQLITE_CONSTRAINT_NOTNULL
440 do_test notnull-4.3 { 461 do_test notnull-4.3 {
441 catchsql { 462 catchsql {
442 DELETE FROM t1; 463 DELETE FROM t1;
443 INSERT INTO t1 VALUES(1,2,3,4,5); 464 INSERT INTO t1 VALUES(1,2,3,4,5);
444 UPDATE OR IGNORE t1 SET a=null; 465 UPDATE OR IGNORE t1 SET a=null;
445 SELECT * FROM t1 ORDER BY a; 466 SELECT * FROM t1 ORDER BY a;
446 } 467 }
447 } {0 {1 2 3 4 5}} 468 } {0 {1 2 3 4 5}}
448 do_test notnull-4.4 { 469 do_test notnull-4.4 {
449 catchsql { 470 catchsql {
450 DELETE FROM t1; 471 DELETE FROM t1;
451 INSERT INTO t1 VALUES(1,2,3,4,5); 472 INSERT INTO t1 VALUES(1,2,3,4,5);
452 UPDATE OR ABORT t1 SET a=null; 473 UPDATE OR ABORT t1 SET a=null;
453 SELECT * FROM t1 ORDER BY a; 474 SELECT * FROM t1 ORDER BY a;
454 } 475 }
455 } {1 {t1.a may not be NULL}} 476 } {1 {NOT NULL constraint failed: t1.a}}
477 verify_ex_errcode notnull-4.4b SQLITE_CONSTRAINT_NOTNULL
456 do_test notnull-4.5 { 478 do_test notnull-4.5 {
457 catchsql { 479 catchsql {
458 DELETE FROM t1; 480 DELETE FROM t1;
459 INSERT INTO t1 VALUES(1,2,3,4,5); 481 INSERT INTO t1 VALUES(1,2,3,4,5);
460 UPDATE t1 SET b=null; 482 UPDATE t1 SET b=null;
461 SELECT * FROM t1 ORDER BY a; 483 SELECT * FROM t1 ORDER BY a;
462 } 484 }
463 } {1 {t1.b may not be NULL}} 485 } {1 {NOT NULL constraint failed: t1.b}}
486 verify_ex_errcode notnull-4.5b SQLITE_CONSTRAINT_NOTNULL
464 do_test notnull-4.6 { 487 do_test notnull-4.6 {
465 catchsql { 488 catchsql {
466 DELETE FROM t1; 489 DELETE FROM t1;
467 INSERT INTO t1 VALUES(1,2,3,4,5); 490 INSERT INTO t1 VALUES(1,2,3,4,5);
468 UPDATE OR REPLACE t1 SET b=null, d=e, e=d; 491 UPDATE OR REPLACE t1 SET b=null, d=e, e=d;
469 SELECT * FROM t1 ORDER BY a; 492 SELECT * FROM t1 ORDER BY a;
470 } 493 }
471 } {0 {1 5 3 5 4}} 494 } {0 {1 5 3 5 4}}
472 do_test notnull-4.7 { 495 do_test notnull-4.7 {
473 catchsql { 496 catchsql {
(...skipping 19 matching lines...) Expand all
493 SELECT * FROM t1 ORDER BY a; 516 SELECT * FROM t1 ORDER BY a;
494 } 517 }
495 } {0 {1 2 3 4 5}} 518 } {0 {1 2 3 4 5}}
496 do_test notnull-4.10 { 519 do_test notnull-4.10 {
497 catchsql { 520 catchsql {
498 DELETE FROM t1; 521 DELETE FROM t1;
499 INSERT INTO t1 VALUES(1,2,3,4,5); 522 INSERT INTO t1 VALUES(1,2,3,4,5);
500 UPDATE t1 SET e=null, a=b, b=a; 523 UPDATE t1 SET e=null, a=b, b=a;
501 SELECT * FROM t1 ORDER BY a; 524 SELECT * FROM t1 ORDER BY a;
502 } 525 }
503 } {1 {t1.e may not be NULL}} 526 } {1 {NOT NULL constraint failed: t1.e}}
527 verify_ex_errcode notnull-4.10b SQLITE_CONSTRAINT_NOTNULL
504 528
505 # Test that bug 29ab7be99f is fixed. 529 # Test that bug 29ab7be99f is fixed.
506 # 530 #
507 do_test notnull-5.1 { 531 do_test notnull-5.1 {
508 execsql { 532 execsql {
509 DROP TABLE IF EXISTS t1; 533 DROP TABLE IF EXISTS t1;
510 CREATE TABLE t1(a, b NOT NULL); 534 CREATE TABLE t1(a, b NOT NULL);
511 CREATE TABLE t2(c, d); 535 CREATE TABLE t2(c, d);
512 INSERT INTO t2 VALUES(3, 4); 536 INSERT INTO t2 VALUES(3, 4);
513 INSERT INTO t2 VALUES(5, NULL); 537 INSERT INTO t2 VALUES(5, NULL);
514 } 538 }
515 } {} 539 } {}
516 do_test notnull-5.2 { 540 do_test notnull-5.2 {
517 catchsql { 541 catchsql {
518 INSERT INTO t1 VALUES(1, 2); 542 INSERT INTO t1 VALUES(1, 2);
519 INSERT INTO t1 SELECT * FROM t2; 543 INSERT INTO t1 SELECT * FROM t2;
520 } 544 }
521 } {1 {t1.b may not be NULL}} 545 } {1 {NOT NULL constraint failed: t1.b}}
546 verify_ex_errcode notnull-5.2b SQLITE_CONSTRAINT_NOTNULL
522 do_test notnull-5.3 { 547 do_test notnull-5.3 {
523 execsql { SELECT * FROM t1 } 548 execsql { SELECT * FROM t1 }
524 } {1 2} 549 } {1 2}
525 do_test notnull-5.4 { 550 do_test notnull-5.4 {
526 catchsql { 551 catchsql {
527 DELETE FROM t1; 552 DELETE FROM t1;
528 BEGIN; 553 BEGIN;
529 INSERT INTO t1 VALUES(1, 2); 554 INSERT INTO t1 VALUES(1, 2);
530 INSERT INTO t1 SELECT * FROM t2; 555 INSERT INTO t1 SELECT * FROM t2;
531 COMMIT; 556 COMMIT;
532 } 557 }
533 } {1 {t1.b may not be NULL}} 558 } {1 {NOT NULL constraint failed: t1.b}}
559 verify_ex_errcode notnull-5.4b SQLITE_CONSTRAINT_NOTNULL
534 do_test notnull-5.5 { 560 do_test notnull-5.5 {
535 execsql { SELECT * FROM t1 } 561 execsql { SELECT * FROM t1 }
536 } {1 2} 562 } {1 2}
537 563
538 finish_test 564 finish_test
539
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698