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