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