xref: /illumos-gate/usr/src/lib/libsqlite/test/notnull.test (revision 1da57d551424de5a9d469760be7c4b4d4f10a755)
1*1da57d55SToomas Soome#
2c5c4113dSnw141292# 2002 January 29
3c5c4113dSnw141292#
4c5c4113dSnw141292# The author disclaims copyright to this source code.  In place of
5c5c4113dSnw141292# a legal notice, here is a blessing:
6c5c4113dSnw141292#
7c5c4113dSnw141292#    May you do good and not evil.
8c5c4113dSnw141292#    May you find forgiveness for yourself and forgive others.
9c5c4113dSnw141292#    May you share freely, never taking more than you give.
10c5c4113dSnw141292#
11c5c4113dSnw141292#***********************************************************************
12c5c4113dSnw141292# This file implements regression tests for SQLite library.
13c5c4113dSnw141292#
14c5c4113dSnw141292# This file implements tests for the NOT NULL constraint.
15c5c4113dSnw141292#
16c5c4113dSnw141292# $Id: notnull.test,v 1.3 2003/01/29 18:46:54 drh Exp $
17c5c4113dSnw141292
18c5c4113dSnw141292set testdir [file dirname $argv0]
19c5c4113dSnw141292source $testdir/tester.tcl
20c5c4113dSnw141292
21c5c4113dSnw141292do_test notnull-1.0 {
22c5c4113dSnw141292  execsql {
23c5c4113dSnw141292    CREATE TABLE t1 (
24c5c4113dSnw141292      a NOT NULL,
25c5c4113dSnw141292      b NOT NULL DEFAULT 5,
26c5c4113dSnw141292      c NOT NULL ON CONFLICT REPLACE DEFAULT 6,
27c5c4113dSnw141292      d NOT NULL ON CONFLICT IGNORE DEFAULT 7,
28c5c4113dSnw141292      e NOT NULL ON CONFLICT ABORT DEFAULT 8
29c5c4113dSnw141292    );
30c5c4113dSnw141292    SELECT * FROM t1;
31c5c4113dSnw141292  }
32c5c4113dSnw141292} {}
33c5c4113dSnw141292do_test notnull-1.1 {
34c5c4113dSnw141292  catchsql {
35c5c4113dSnw141292    DELETE FROM t1;
36c5c4113dSnw141292    INSERT INTO t1(a,b,c,d,e) VALUES(1,2,3,4,5);
37c5c4113dSnw141292    SELECT * FROM t1 order by a;
38c5c4113dSnw141292  }
39c5c4113dSnw141292} {0 {1 2 3 4 5}}
40c5c4113dSnw141292do_test notnull-1.2 {
41c5c4113dSnw141292  catchsql {
42c5c4113dSnw141292    DELETE FROM t1;
43c5c4113dSnw141292    INSERT INTO t1(b,c,d,e) VALUES(2,3,4,5);
44c5c4113dSnw141292    SELECT * FROM t1 order by a;
45c5c4113dSnw141292  }
46c5c4113dSnw141292} {1 {t1.a may not be NULL}}
47c5c4113dSnw141292do_test notnull-1.3 {
48c5c4113dSnw141292  catchsql {
49c5c4113dSnw141292    DELETE FROM t1;
50c5c4113dSnw141292    INSERT OR IGNORE INTO t1(b,c,d,e) VALUES(2,3,4,5);
51c5c4113dSnw141292    SELECT * FROM t1 order by a;
52c5c4113dSnw141292  }
53c5c4113dSnw141292} {0 {}}
54c5c4113dSnw141292do_test notnull-1.4 {
55c5c4113dSnw141292  catchsql {
56c5c4113dSnw141292    DELETE FROM t1;
57c5c4113dSnw141292    INSERT OR REPLACE INTO t1(b,c,d,e) VALUES(2,3,4,5);
58c5c4113dSnw141292    SELECT * FROM t1 order by a;
59c5c4113dSnw141292  }
60c5c4113dSnw141292} {1 {t1.a may not be NULL}}
61c5c4113dSnw141292do_test notnull-1.5 {
62c5c4113dSnw141292  catchsql {
63c5c4113dSnw141292    DELETE FROM t1;
64c5c4113dSnw141292    INSERT OR ABORT INTO t1(b,c,d,e) VALUES(2,3,4,5);
65c5c4113dSnw141292    SELECT * FROM t1 order by a;
66c5c4113dSnw141292  }
67c5c4113dSnw141292} {1 {t1.a may not be NULL}}
68c5c4113dSnw141292do_test notnull-1.6 {
69c5c4113dSnw141292  catchsql {
70c5c4113dSnw141292    DELETE FROM t1;
71c5c4113dSnw141292    INSERT INTO t1(a,c,d,e) VALUES(1,3,4,5);
72c5c4113dSnw141292    SELECT * FROM t1 order by a;
73c5c4113dSnw141292  }
74c5c4113dSnw141292} {0 {1 5 3 4 5}}
75c5c4113dSnw141292do_test notnull-1.7 {
76c5c4113dSnw141292  catchsql {
77c5c4113dSnw141292    DELETE FROM t1;
78c5c4113dSnw141292    INSERT OR IGNORE INTO t1(a,c,d,e) VALUES(1,3,4,5);
79c5c4113dSnw141292    SELECT * FROM t1 order by a;
80c5c4113dSnw141292  }
81c5c4113dSnw141292} {0 {1 5 3 4 5}}
82c5c4113dSnw141292do_test notnull-1.8 {
83c5c4113dSnw141292  catchsql {
84c5c4113dSnw141292    DELETE FROM t1;
85c5c4113dSnw141292    INSERT OR REPLACE INTO t1(a,c,d,e) VALUES(1,3,4,5);
86c5c4113dSnw141292    SELECT * FROM t1 order by a;
87c5c4113dSnw141292  }
88c5c4113dSnw141292} {0 {1 5 3 4 5}}
89c5c4113dSnw141292do_test notnull-1.9 {
90c5c4113dSnw141292  catchsql {
91c5c4113dSnw141292    DELETE FROM t1;
92c5c4113dSnw141292    INSERT OR ABORT INTO t1(a,c,d,e) VALUES(1,3,4,5);
93c5c4113dSnw141292    SELECT * FROM t1 order by a;
94c5c4113dSnw141292  }
95c5c4113dSnw141292} {0 {1 5 3 4 5}}
96c5c4113dSnw141292do_test notnull-1.10 {
97c5c4113dSnw141292  catchsql {
98c5c4113dSnw141292    DELETE FROM t1;
99c5c4113dSnw141292    INSERT INTO t1(a,b,c,d,e) VALUES(1,null,3,4,5);
100c5c4113dSnw141292    SELECT * FROM t1 order by a;
101c5c4113dSnw141292  }
102c5c4113dSnw141292} {1 {t1.b may not be NULL}}
103c5c4113dSnw141292do_test notnull-1.11 {
104c5c4113dSnw141292  catchsql {
105c5c4113dSnw141292    DELETE FROM t1;
106c5c4113dSnw141292    INSERT OR IGNORE INTO t1(a,b,c,d,e) VALUES(1,null,3,4,5);
107c5c4113dSnw141292    SELECT * FROM t1 order by a;
108c5c4113dSnw141292  }
109c5c4113dSnw141292} {0 {}}
110c5c4113dSnw141292do_test notnull-1.12 {
111c5c4113dSnw141292  catchsql {
112c5c4113dSnw141292    DELETE FROM t1;
113c5c4113dSnw141292    INSERT OR REPLACE INTO t1(a,b,c,d,e) VALUES(1,null,3,4,5);
114c5c4113dSnw141292    SELECT * FROM t1 order by a;
115c5c4113dSnw141292  }
116c5c4113dSnw141292} {0 {1 5 3 4 5}}
117c5c4113dSnw141292do_test notnull-1.13 {
118c5c4113dSnw141292  catchsql {
119c5c4113dSnw141292    DELETE FROM t1;
120c5c4113dSnw141292    INSERT INTO t1(a,b,c,d,e) VALUES(1,2,null,4,5);
121c5c4113dSnw141292    SELECT * FROM t1 order by a;
122c5c4113dSnw141292  }
123c5c4113dSnw141292} {0 {1 2 6 4 5}}
124c5c4113dSnw141292do_test notnull-1.14 {
125c5c4113dSnw141292  catchsql {
126c5c4113dSnw141292    DELETE FROM t1;
127c5c4113dSnw141292    INSERT OR IGNORE INTO t1(a,b,c,d,e) VALUES(1,2,null,4,5);
128c5c4113dSnw141292    SELECT * FROM t1 order by a;
129c5c4113dSnw141292  }
130c5c4113dSnw141292} {0 {}}
131c5c4113dSnw141292do_test notnull-1.15 {
132c5c4113dSnw141292  catchsql {
133c5c4113dSnw141292    DELETE FROM t1;
134c5c4113dSnw141292    INSERT OR REPLACE INTO t1(a,b,c,d,e) VALUES(1,2,null,4,5);
135c5c4113dSnw141292    SELECT * FROM t1 order by a;
136c5c4113dSnw141292  }
137c5c4113dSnw141292} {0 {1 2 6 4 5}}
138c5c4113dSnw141292do_test notnull-1.16 {
139c5c4113dSnw141292  catchsql {
140c5c4113dSnw141292    DELETE FROM t1;
141c5c4113dSnw141292    INSERT OR ABORT INTO t1(a,b,c,d,e) VALUES(1,2,null,4,5);
142c5c4113dSnw141292    SELECT * FROM t1 order by a;
143c5c4113dSnw141292  }
144c5c4113dSnw141292} {1 {t1.c may not be NULL}}
145c5c4113dSnw141292do_test notnull-1.17 {
146c5c4113dSnw141292  catchsql {
147c5c4113dSnw141292    DELETE FROM t1;
148c5c4113dSnw141292    INSERT OR ABORT INTO t1(a,b,c,d,e) VALUES(1,2,3,null,5);
149c5c4113dSnw141292    SELECT * FROM t1 order by a;
150c5c4113dSnw141292  }
151c5c4113dSnw141292} {1 {t1.d may not be NULL}}
152c5c4113dSnw141292do_test notnull-1.18 {
153c5c4113dSnw141292  catchsql {
154c5c4113dSnw141292    DELETE FROM t1;
155c5c4113dSnw141292    INSERT OR ABORT INTO t1(a,b,c,e) VALUES(1,2,3,5);
156c5c4113dSnw141292    SELECT * FROM t1 order by a;
157c5c4113dSnw141292  }
158c5c4113dSnw141292} {0 {1 2 3 7 5}}
159c5c4113dSnw141292do_test notnull-1.19 {
160c5c4113dSnw141292  catchsql {
161c5c4113dSnw141292    DELETE FROM t1;
162c5c4113dSnw141292    INSERT INTO t1(a,b,c,d) VALUES(1,2,3,4);
163c5c4113dSnw141292    SELECT * FROM t1 order by a;
164c5c4113dSnw141292  }
165c5c4113dSnw141292} {0 {1 2 3 4 8}}
166c5c4113dSnw141292do_test notnull-1.20 {
167c5c4113dSnw141292  catchsql {
168c5c4113dSnw141292    DELETE FROM t1;
169c5c4113dSnw141292    INSERT INTO t1(a,b,c,d,e) VALUES(1,2,3,4,null);
170c5c4113dSnw141292    SELECT * FROM t1 order by a;
171c5c4113dSnw141292  }
172c5c4113dSnw141292} {1 {t1.e may not be NULL}}
173c5c4113dSnw141292do_test notnull-1.21 {
174c5c4113dSnw141292  catchsql {
175c5c4113dSnw141292    DELETE FROM t1;
176c5c4113dSnw141292    INSERT OR REPLACE INTO t1(e,d,c,b,a) VALUES(1,2,3,null,5);
177c5c4113dSnw141292    SELECT * FROM t1 order by a;
178c5c4113dSnw141292  }
179c5c4113dSnw141292} {0 {5 5 3 2 1}}
180c5c4113dSnw141292
181c5c4113dSnw141292do_test notnull-2.1 {
182c5c4113dSnw141292  catchsql {
183c5c4113dSnw141292    DELETE FROM t1;
184c5c4113dSnw141292    INSERT INTO t1 VALUES(1,2,3,4,5);
185c5c4113dSnw141292    UPDATE t1 SET a=null;
186c5c4113dSnw141292    SELECT * FROM t1 ORDER BY a;
187c5c4113dSnw141292  }
188c5c4113dSnw141292} {1 {t1.a may not be NULL}}
189c5c4113dSnw141292do_test notnull-2.2 {
190c5c4113dSnw141292  catchsql {
191c5c4113dSnw141292    DELETE FROM t1;
192c5c4113dSnw141292    INSERT INTO t1 VALUES(1,2,3,4,5);
193c5c4113dSnw141292    UPDATE OR REPLACE t1 SET a=null;
194c5c4113dSnw141292    SELECT * FROM t1 ORDER BY a;
195c5c4113dSnw141292  }
196c5c4113dSnw141292} {1 {t1.a may not be NULL}}
197c5c4113dSnw141292do_test notnull-2.3 {
198c5c4113dSnw141292  catchsql {
199c5c4113dSnw141292    DELETE FROM t1;
200c5c4113dSnw141292    INSERT INTO t1 VALUES(1,2,3,4,5);
201c5c4113dSnw141292    UPDATE OR IGNORE t1 SET a=null;
202c5c4113dSnw141292    SELECT * FROM t1 ORDER BY a;
203c5c4113dSnw141292  }
204c5c4113dSnw141292} {0 {1 2 3 4 5}}
205c5c4113dSnw141292do_test notnull-2.4 {
206c5c4113dSnw141292  catchsql {
207c5c4113dSnw141292    DELETE FROM t1;
208c5c4113dSnw141292    INSERT INTO t1 VALUES(1,2,3,4,5);
209c5c4113dSnw141292    UPDATE OR ABORT t1 SET a=null;
210c5c4113dSnw141292    SELECT * FROM t1 ORDER BY a;
211c5c4113dSnw141292  }
212c5c4113dSnw141292} {1 {t1.a may not be NULL}}
213c5c4113dSnw141292do_test notnull-2.5 {
214c5c4113dSnw141292  catchsql {
215c5c4113dSnw141292    DELETE FROM t1;
216c5c4113dSnw141292    INSERT INTO t1 VALUES(1,2,3,4,5);
217c5c4113dSnw141292    UPDATE t1 SET b=null;
218c5c4113dSnw141292    SELECT * FROM t1 ORDER BY a;
219c5c4113dSnw141292  }
220c5c4113dSnw141292} {1 {t1.b may not be NULL}}
221c5c4113dSnw141292do_test notnull-2.6 {
222c5c4113dSnw141292  catchsql {
223c5c4113dSnw141292    DELETE FROM t1;
224c5c4113dSnw141292    INSERT INTO t1 VALUES(1,2,3,4,5);
225c5c4113dSnw141292    UPDATE OR REPLACE t1 SET b=null, d=e, e=d;
226c5c4113dSnw141292    SELECT * FROM t1 ORDER BY a;
227c5c4113dSnw141292  }
228c5c4113dSnw141292} {0 {1 5 3 5 4}}
229c5c4113dSnw141292do_test notnull-2.7 {
230c5c4113dSnw141292  catchsql {
231c5c4113dSnw141292    DELETE FROM t1;
232c5c4113dSnw141292    INSERT INTO t1 VALUES(1,2,3,4,5);
233c5c4113dSnw141292    UPDATE OR IGNORE t1 SET b=null, d=e, e=d;
234c5c4113dSnw141292    SELECT * FROM t1 ORDER BY a;
235c5c4113dSnw141292  }
236c5c4113dSnw141292} {0 {1 2 3 4 5}}
237c5c4113dSnw141292do_test notnull-2.8 {
238c5c4113dSnw141292  catchsql {
239c5c4113dSnw141292    DELETE FROM t1;
240c5c4113dSnw141292    INSERT INTO t1 VALUES(1,2,3,4,5);
241c5c4113dSnw141292    UPDATE t1 SET c=null, d=e, e=d;
242c5c4113dSnw141292    SELECT * FROM t1 ORDER BY a;
243c5c4113dSnw141292  }
244c5c4113dSnw141292} {0 {1 2 6 5 4}}
245c5c4113dSnw141292do_test notnull-2.9 {
246c5c4113dSnw141292  catchsql {
247c5c4113dSnw141292    DELETE FROM t1;
248c5c4113dSnw141292    INSERT INTO t1 VALUES(1,2,3,4,5);
249c5c4113dSnw141292    UPDATE t1 SET d=null, a=b, b=a;
250c5c4113dSnw141292    SELECT * FROM t1 ORDER BY a;
251c5c4113dSnw141292  }
252c5c4113dSnw141292} {0 {1 2 3 4 5}}
253c5c4113dSnw141292do_test notnull-2.10 {
254c5c4113dSnw141292  catchsql {
255c5c4113dSnw141292    DELETE FROM t1;
256c5c4113dSnw141292    INSERT INTO t1 VALUES(1,2,3,4,5);
257c5c4113dSnw141292    UPDATE t1 SET e=null, a=b, b=a;
258c5c4113dSnw141292    SELECT * FROM t1 ORDER BY a;
259c5c4113dSnw141292  }
260c5c4113dSnw141292} {1 {t1.e may not be NULL}}
261c5c4113dSnw141292
262c5c4113dSnw141292do_test notnull-3.0 {
263c5c4113dSnw141292  execsql {
264c5c4113dSnw141292    CREATE INDEX t1a ON t1(a);
265c5c4113dSnw141292    CREATE INDEX t1b ON t1(b);
266c5c4113dSnw141292    CREATE INDEX t1c ON t1(c);
267c5c4113dSnw141292    CREATE INDEX t1d ON t1(d);
268c5c4113dSnw141292    CREATE INDEX t1e ON t1(e);
269c5c4113dSnw141292    CREATE INDEX t1abc ON t1(a,b,c);
270c5c4113dSnw141292  }
271c5c4113dSnw141292} {}
272c5c4113dSnw141292do_test notnull-3.1 {
273c5c4113dSnw141292  catchsql {
274c5c4113dSnw141292    DELETE FROM t1;
275c5c4113dSnw141292    INSERT INTO t1(a,b,c,d,e) VALUES(1,2,3,4,5);
276c5c4113dSnw141292    SELECT * FROM t1 order by a;
277c5c4113dSnw141292  }
278c5c4113dSnw141292} {0 {1 2 3 4 5}}
279c5c4113dSnw141292do_test notnull-3.2 {
280c5c4113dSnw141292  catchsql {
281c5c4113dSnw141292    DELETE FROM t1;
282c5c4113dSnw141292    INSERT INTO t1(b,c,d,e) VALUES(2,3,4,5);
283c5c4113dSnw141292    SELECT * FROM t1 order by a;
284c5c4113dSnw141292  }
285c5c4113dSnw141292} {1 {t1.a may not be NULL}}
286c5c4113dSnw141292do_test notnull-3.3 {
287c5c4113dSnw141292  catchsql {
288c5c4113dSnw141292    DELETE FROM t1;
289c5c4113dSnw141292    INSERT OR IGNORE INTO t1(b,c,d,e) VALUES(2,3,4,5);
290c5c4113dSnw141292    SELECT * FROM t1 order by a;
291c5c4113dSnw141292  }
292c5c4113dSnw141292} {0 {}}
293c5c4113dSnw141292do_test notnull-3.4 {
294c5c4113dSnw141292  catchsql {
295c5c4113dSnw141292    DELETE FROM t1;
296c5c4113dSnw141292    INSERT OR REPLACE INTO t1(b,c,d,e) VALUES(2,3,4,5);
297c5c4113dSnw141292    SELECT * FROM t1 order by a;
298c5c4113dSnw141292  }
299c5c4113dSnw141292} {1 {t1.a may not be NULL}}
300c5c4113dSnw141292do_test notnull-3.5 {
301c5c4113dSnw141292  catchsql {
302c5c4113dSnw141292    DELETE FROM t1;
303c5c4113dSnw141292    INSERT OR ABORT INTO t1(b,c,d,e) VALUES(2,3,4,5);
304c5c4113dSnw141292    SELECT * FROM t1 order by a;
305c5c4113dSnw141292  }
306c5c4113dSnw141292} {1 {t1.a may not be NULL}}
307c5c4113dSnw141292do_test notnull-3.6 {
308c5c4113dSnw141292  catchsql {
309c5c4113dSnw141292    DELETE FROM t1;
310c5c4113dSnw141292    INSERT INTO t1(a,c,d,e) VALUES(1,3,4,5);
311c5c4113dSnw141292    SELECT * FROM t1 order by a;
312c5c4113dSnw141292  }
313c5c4113dSnw141292} {0 {1 5 3 4 5}}
314c5c4113dSnw141292do_test notnull-3.7 {
315c5c4113dSnw141292  catchsql {
316c5c4113dSnw141292    DELETE FROM t1;
317c5c4113dSnw141292    INSERT OR IGNORE INTO t1(a,c,d,e) VALUES(1,3,4,5);
318c5c4113dSnw141292    SELECT * FROM t1 order by a;
319c5c4113dSnw141292  }
320c5c4113dSnw141292} {0 {1 5 3 4 5}}
321c5c4113dSnw141292do_test notnull-3.8 {
322c5c4113dSnw141292  catchsql {
323c5c4113dSnw141292    DELETE FROM t1;
324c5c4113dSnw141292    INSERT OR REPLACE INTO t1(a,c,d,e) VALUES(1,3,4,5);
325c5c4113dSnw141292    SELECT * FROM t1 order by a;
326c5c4113dSnw141292  }
327c5c4113dSnw141292} {0 {1 5 3 4 5}}
328c5c4113dSnw141292do_test notnull-3.9 {
329c5c4113dSnw141292  catchsql {
330c5c4113dSnw141292    DELETE FROM t1;
331c5c4113dSnw141292    INSERT OR ABORT INTO t1(a,c,d,e) VALUES(1,3,4,5);
332c5c4113dSnw141292    SELECT * FROM t1 order by a;
333c5c4113dSnw141292  }
334c5c4113dSnw141292} {0 {1 5 3 4 5}}
335c5c4113dSnw141292do_test notnull-3.10 {
336c5c4113dSnw141292  catchsql {
337c5c4113dSnw141292    DELETE FROM t1;
338c5c4113dSnw141292    INSERT INTO t1(a,b,c,d,e) VALUES(1,null,3,4,5);
339c5c4113dSnw141292    SELECT * FROM t1 order by a;
340c5c4113dSnw141292  }
341c5c4113dSnw141292} {1 {t1.b may not be NULL}}
342c5c4113dSnw141292do_test notnull-3.11 {
343c5c4113dSnw141292  catchsql {
344c5c4113dSnw141292    DELETE FROM t1;
345c5c4113dSnw141292    INSERT OR IGNORE INTO t1(a,b,c,d,e) VALUES(1,null,3,4,5);
346c5c4113dSnw141292    SELECT * FROM t1 order by a;
347c5c4113dSnw141292  }
348c5c4113dSnw141292} {0 {}}
349c5c4113dSnw141292do_test notnull-3.12 {
350c5c4113dSnw141292  catchsql {
351c5c4113dSnw141292    DELETE FROM t1;
352c5c4113dSnw141292    INSERT OR REPLACE INTO t1(a,b,c,d,e) VALUES(1,null,3,4,5);
353c5c4113dSnw141292    SELECT * FROM t1 order by a;
354c5c4113dSnw141292  }
355c5c4113dSnw141292} {0 {1 5 3 4 5}}
356c5c4113dSnw141292do_test notnull-3.13 {
357c5c4113dSnw141292  catchsql {
358c5c4113dSnw141292    DELETE FROM t1;
359c5c4113dSnw141292    INSERT INTO t1(a,b,c,d,e) VALUES(1,2,null,4,5);
360c5c4113dSnw141292    SELECT * FROM t1 order by a;
361c5c4113dSnw141292  }
362c5c4113dSnw141292} {0 {1 2 6 4 5}}
363c5c4113dSnw141292do_test notnull-3.14 {
364c5c4113dSnw141292  catchsql {
365c5c4113dSnw141292    DELETE FROM t1;
366c5c4113dSnw141292    INSERT OR IGNORE INTO t1(a,b,c,d,e) VALUES(1,2,null,4,5);
367c5c4113dSnw141292    SELECT * FROM t1 order by a;
368c5c4113dSnw141292  }
369c5c4113dSnw141292} {0 {}}
370c5c4113dSnw141292do_test notnull-3.15 {
371c5c4113dSnw141292  catchsql {
372c5c4113dSnw141292    DELETE FROM t1;
373c5c4113dSnw141292    INSERT OR REPLACE INTO t1(a,b,c,d,e) VALUES(1,2,null,4,5);
374c5c4113dSnw141292    SELECT * FROM t1 order by a;
375c5c4113dSnw141292  }
376c5c4113dSnw141292} {0 {1 2 6 4 5}}
377c5c4113dSnw141292do_test notnull-3.16 {
378c5c4113dSnw141292  catchsql {
379c5c4113dSnw141292    DELETE FROM t1;
380c5c4113dSnw141292    INSERT OR ABORT INTO t1(a,b,c,d,e) VALUES(1,2,null,4,5);
381c5c4113dSnw141292    SELECT * FROM t1 order by a;
382c5c4113dSnw141292  }
383c5c4113dSnw141292} {1 {t1.c may not be NULL}}
384c5c4113dSnw141292do_test notnull-3.17 {
385c5c4113dSnw141292  catchsql {
386c5c4113dSnw141292    DELETE FROM t1;
387c5c4113dSnw141292    INSERT OR ABORT INTO t1(a,b,c,d,e) VALUES(1,2,3,null,5);
388c5c4113dSnw141292    SELECT * FROM t1 order by a;
389c5c4113dSnw141292  }
390c5c4113dSnw141292} {1 {t1.d may not be NULL}}
391c5c4113dSnw141292do_test notnull-3.18 {
392c5c4113dSnw141292  catchsql {
393c5c4113dSnw141292    DELETE FROM t1;
394c5c4113dSnw141292    INSERT OR ABORT INTO t1(a,b,c,e) VALUES(1,2,3,5);
395c5c4113dSnw141292    SELECT * FROM t1 order by a;
396c5c4113dSnw141292  }
397c5c4113dSnw141292} {0 {1 2 3 7 5}}
398c5c4113dSnw141292do_test notnull-3.19 {
399c5c4113dSnw141292  catchsql {
400c5c4113dSnw141292    DELETE FROM t1;
401c5c4113dSnw141292    INSERT INTO t1(a,b,c,d) VALUES(1,2,3,4);
402c5c4113dSnw141292    SELECT * FROM t1 order by a;
403c5c4113dSnw141292  }
404c5c4113dSnw141292} {0 {1 2 3 4 8}}
405c5c4113dSnw141292do_test notnull-3.20 {
406c5c4113dSnw141292  catchsql {
407c5c4113dSnw141292    DELETE FROM t1;
408c5c4113dSnw141292    INSERT INTO t1(a,b,c,d,e) VALUES(1,2,3,4,null);
409c5c4113dSnw141292    SELECT * FROM t1 order by a;
410c5c4113dSnw141292  }
411c5c4113dSnw141292} {1 {t1.e may not be NULL}}
412c5c4113dSnw141292do_test notnull-3.21 {
413c5c4113dSnw141292  catchsql {
414c5c4113dSnw141292    DELETE FROM t1;
415c5c4113dSnw141292    INSERT OR REPLACE INTO t1(e,d,c,b,a) VALUES(1,2,3,null,5);
416c5c4113dSnw141292    SELECT * FROM t1 order by a;
417c5c4113dSnw141292  }
418c5c4113dSnw141292} {0 {5 5 3 2 1}}
419c5c4113dSnw141292
420c5c4113dSnw141292do_test notnull-4.1 {
421c5c4113dSnw141292  catchsql {
422c5c4113dSnw141292    DELETE FROM t1;
423c5c4113dSnw141292    INSERT INTO t1 VALUES(1,2,3,4,5);
424c5c4113dSnw141292    UPDATE t1 SET a=null;
425c5c4113dSnw141292    SELECT * FROM t1 ORDER BY a;
426c5c4113dSnw141292  }
427c5c4113dSnw141292} {1 {t1.a may not be NULL}}
428c5c4113dSnw141292do_test notnull-4.2 {
429c5c4113dSnw141292  catchsql {
430c5c4113dSnw141292    DELETE FROM t1;
431c5c4113dSnw141292    INSERT INTO t1 VALUES(1,2,3,4,5);
432c5c4113dSnw141292    UPDATE OR REPLACE t1 SET a=null;
433c5c4113dSnw141292    SELECT * FROM t1 ORDER BY a;
434c5c4113dSnw141292  }
435c5c4113dSnw141292} {1 {t1.a may not be NULL}}
436c5c4113dSnw141292do_test notnull-4.3 {
437c5c4113dSnw141292  catchsql {
438c5c4113dSnw141292    DELETE FROM t1;
439c5c4113dSnw141292    INSERT INTO t1 VALUES(1,2,3,4,5);
440c5c4113dSnw141292    UPDATE OR IGNORE t1 SET a=null;
441c5c4113dSnw141292    SELECT * FROM t1 ORDER BY a;
442c5c4113dSnw141292  }
443c5c4113dSnw141292} {0 {1 2 3 4 5}}
444c5c4113dSnw141292do_test notnull-4.4 {
445c5c4113dSnw141292  catchsql {
446c5c4113dSnw141292    DELETE FROM t1;
447c5c4113dSnw141292    INSERT INTO t1 VALUES(1,2,3,4,5);
448c5c4113dSnw141292    UPDATE OR ABORT t1 SET a=null;
449c5c4113dSnw141292    SELECT * FROM t1 ORDER BY a;
450c5c4113dSnw141292  }
451c5c4113dSnw141292} {1 {t1.a may not be NULL}}
452c5c4113dSnw141292do_test notnull-4.5 {
453c5c4113dSnw141292  catchsql {
454c5c4113dSnw141292    DELETE FROM t1;
455c5c4113dSnw141292    INSERT INTO t1 VALUES(1,2,3,4,5);
456c5c4113dSnw141292    UPDATE t1 SET b=null;
457c5c4113dSnw141292    SELECT * FROM t1 ORDER BY a;
458c5c4113dSnw141292  }
459c5c4113dSnw141292} {1 {t1.b may not be NULL}}
460c5c4113dSnw141292do_test notnull-4.6 {
461c5c4113dSnw141292  catchsql {
462c5c4113dSnw141292    DELETE FROM t1;
463c5c4113dSnw141292    INSERT INTO t1 VALUES(1,2,3,4,5);
464c5c4113dSnw141292    UPDATE OR REPLACE t1 SET b=null, d=e, e=d;
465c5c4113dSnw141292    SELECT * FROM t1 ORDER BY a;
466c5c4113dSnw141292  }
467c5c4113dSnw141292} {0 {1 5 3 5 4}}
468c5c4113dSnw141292do_test notnull-4.7 {
469c5c4113dSnw141292  catchsql {
470c5c4113dSnw141292    DELETE FROM t1;
471c5c4113dSnw141292    INSERT INTO t1 VALUES(1,2,3,4,5);
472c5c4113dSnw141292    UPDATE OR IGNORE t1 SET b=null, d=e, e=d;
473c5c4113dSnw141292    SELECT * FROM t1 ORDER BY a;
474c5c4113dSnw141292  }
475c5c4113dSnw141292} {0 {1 2 3 4 5}}
476c5c4113dSnw141292do_test notnull-4.8 {
477c5c4113dSnw141292  catchsql {
478c5c4113dSnw141292    DELETE FROM t1;
479c5c4113dSnw141292    INSERT INTO t1 VALUES(1,2,3,4,5);
480c5c4113dSnw141292    UPDATE t1 SET c=null, d=e, e=d;
481c5c4113dSnw141292    SELECT * FROM t1 ORDER BY a;
482c5c4113dSnw141292  }
483c5c4113dSnw141292} {0 {1 2 6 5 4}}
484c5c4113dSnw141292do_test notnull-4.9 {
485c5c4113dSnw141292  catchsql {
486c5c4113dSnw141292    DELETE FROM t1;
487c5c4113dSnw141292    INSERT INTO t1 VALUES(1,2,3,4,5);
488c5c4113dSnw141292    UPDATE t1 SET d=null, a=b, b=a;
489c5c4113dSnw141292    SELECT * FROM t1 ORDER BY a;
490c5c4113dSnw141292  }
491c5c4113dSnw141292} {0 {1 2 3 4 5}}
492c5c4113dSnw141292do_test notnull-4.10 {
493c5c4113dSnw141292  catchsql {
494c5c4113dSnw141292    DELETE FROM t1;
495c5c4113dSnw141292    INSERT INTO t1 VALUES(1,2,3,4,5);
496c5c4113dSnw141292    UPDATE t1 SET e=null, a=b, b=a;
497c5c4113dSnw141292    SELECT * FROM t1 ORDER BY a;
498c5c4113dSnw141292  }
499c5c4113dSnw141292} {1 {t1.e may not be NULL}}
500c5c4113dSnw141292
501c5c4113dSnw141292finish_test
502