-C Skip\sunique\sconstraint\senforcement\sif\scompiled\swith\sSQLITE_OMIT_UNIQUE_ENFORCEMENT.
-D 2011-03-10T21:13:18.347
+C Simplification\sof\stests\sand\smore\sadded\sfor\sSQLITE_OMIT_UNIQUE_ENFORCEMENT\stests.
+D 2011-03-10T21:48:02.401
F Makefile.arm-wince-mingw32ce-gcc d6df77f1f48d690bd73162294bbba7f59507c72f
F Makefile.in 27701a1653595a1f2187dc61c8117e00a6c1d50f
F Makefile.linux-gcc 91d710bdc4998cb015f39edf3cb314ec4f4d7e23
F test/notify3.test d60923e186e0900f4812a845fcdfd8eea096e33a
F test/notnull.test cc7c78340328e6112a13c3e311a9ab3127114347
F test/null.test a8b09b8ed87852742343b33441a9240022108993
-F test/omitunique.test f153c7540f2df6dc49c56b97242bda6b60e87fa6
+F test/omitunique.test 03747013c870bb4c14c3fbaeb13dae8c6efad9f2
F test/openv2.test af02ed0a9cbc0d2a61b8f35171d4d117e588e4ec
F test/oserror.test d1f085bdbac20456fccdf5877f52016453654fc3
F test/pager1.test d8672fd0af5f4f9b99b06283d00f01547809bebe
F tool/speedtest8.c 2902c46588c40b55661e471d7a86e4dd71a18224
F tool/speedtest8inst1.c 293327bc76823f473684d589a8160bde1f52c14e
F tool/vdbe-compress.tcl d70ea6d8a19e3571d7ab8c9b75cba86d1173ff0f
-P 3643842316239ff7859f0ec522736a2b9c03d22c
-R b1f7b8ea9c365b449d3359fe4224fd3a
+P ba85bf8cb88f7ae220d919f5c23f51d9dcedc843
+R 62d3b55d8406e6fbbc3a5bfec0a6bc04
U shaneh
-Z c08bc88ba8510c7d87325ff4426508db
+Z 0d4d7d2864ef8876819acc631335ab7b
set testdir [file dirname $argv0]
source $testdir/tester.tcl
+set uniq_enforced 1
+ifcapable !unique_enforcement {
+ set uniq_enforced 0
+}
+
# table with UNIQUE keyword on column
do_test omitunique-1.1.1 {
catchsql {CREATE TABLE t1(a TEXT UNIQUE); }
7 {INSERT OR ROLLBACK} 1
} {
- if { $uniq==0 || $err==0 } {
- set msg {0 {}}
+ ifcapable explain {
+ ifcapable unique_enforcement {
+ do_test omitunique-2.1.$j.$i.1 {
+ set x [execsql [ subst {EXPLAIN $cmd INTO $tbl (a) VALUES('abc')}]]
+ regexp { IsUnique } $x
+ } $uniq
+ }
+ ifcapable !unique_enforcement {
+ do_test omitunique-2.1.$j.$i.1 {
+ set x [execsql [ subst {EXPLAIN $cmd INTO $tbl (a) VALUES('abc')}]]
+ regexp { IsUnique } $x
+ } {0}
+ }
+ do_test omitunique-2.1.$j.2 {
+ set x [execsql [ subst {EXPLAIN $cmd INTO $tbl (a) VALUES('abc')}]]
+ regexp { Next } $x
+ } {0}
+ }
+
+ if { $uniq_enforced==0 || $uniq==0 || $err==0 } {
+ set msg {0 {}}
} {
set msg {1 {column a is not unique}}
}
+ do_test omitunique-2.1.$j.$i.3 {
+ catchsql [ subst {$cmd INTO $tbl (a) VALUES('abc')}]
+ } $msg
+
+ }
+ # end foreach cmd
+ # check UPDATE command
+ ifcapable explain {
ifcapable unique_enforcement {
- ifcapable explain {
- do_test omitunique-2.1.$j.$i.1 {
- set x [execsql [ subst {EXPLAIN $cmd INTO $tbl (a) VALUES('abc')}]]
+ do_test omitunique-2.2.$j.1 {
+ set x [execsql [ subst {EXPLAIN UPDATE $tbl SET a='abc'}]]
regexp { IsUnique } $x
} $uniq
- }
- do_test omitunique-2.1.$j.$i.2 {
- catchsql [ subst {$cmd INTO $tbl (a) VALUES('abc')}]
- } $msg
}
ifcapable !unique_enforcement {
- ifcapable explain {
- do_test omitunique-2.1.$j.$i.1 {
- set x [execsql [ subst {EXPLAIN $cmd INTO $tbl (a) VALUES('abc')}]]
+ do_test omitunique-2.2.$j.1 {
+ set x [execsql [ subst {EXPLAIN UPDATE $tbl SET a='abc'}]]
regexp { IsUnique } $x
} {0}
- }
- do_test omitunique-2.1.$j.$i.2 {
- catchsql [ subst {$cmd INTO $tbl (a) VALUES('abc')}]
- } {0 {}}
}
-
+# comment out for now
+# do_test omitunique-2.2.$j.2 {
+# set x [execsql [ subst {EXPLAIN UPDATE $tbl SET a='abc' WHERE a<>'abc'}]]
+# regexp { Next } $x
+# } {0}
}
- # end foreach cmd
-
- # check UPDATE command
- ifcapable unique_enforcement {
- ifcapable explain {
- do_test omitunique-2.2.$j.1 {
- set x [execsql [ subst {EXPLAIN UPDATE $tbl SET a='abc'}]]
- regexp { IsUnique } $x
- } $uniq
- }
- do_test omitunique-2.2.$j.2 {
- catchsql [ subst {UPDATE $tbl SET a='abc'}]
- } $msg
- }
- ifcapable !unique_enforcement {
- ifcapable explain {
- do_test omitunique-2.2.$j.1 {
- set x [execsql [ subst {EXPLAIN UPDATE $tbl SET a='abc'}]]
- regexp { IsUnique } $x
- } {0}
- }
- do_test omitunique-2.2.$j.2 {
- catchsql [ subst {UPDATE $tbl SET a='abc' }]
- } {0 {}}
+ if { $uniq_enforced==0 || $uniq==0 } {
+ set msg {0 {}}
+ } {
+ set msg {1 {column a is not unique}}
}
+ do_test omitunique-2.2.$j.3 {
+ catchsql [ subst {UPDATE $tbl SET a='abc'}]
+ } $msg
# check record counts
ifcapable unique_enforcement {
# make sure the query planner row estimate not affected because of omit enforcement
ifcapable explain {
do_test omitunique-2.4.$j {
- set x [execsql [ subst {EXPLAIN QUERY PLAN SELECT count(*) FROM $tbl WHERE a='abc' }]]
+ set x [ execsql [ subst {EXPLAIN QUERY PLAN SELECT count(*) FROM $tbl WHERE a='abc' }]]
set y [ subst {~$qp_est row} ]
regexp $y $x
} {1}