------BEGIN PGP SIGNED MESSAGE-----
-Hash: SHA1
-
-C Change\san\s#if\sinto\san\s#ifdef.
-D 2010-03-30T11:57:01
+C Do\snot\scrash\swhen\scompiling\san\s"INSERT\sINTO\stbl\sDEFAULT\sVALUES"\swhen\stbl\shas\seither\sBEFORE\sor\sINSTEAD\sOF\striggers\sattached\sto\sit.\sTicket\s[f3162063fd].
+D 2010-03-30T12:40:33
F Makefile.arm-wince-mingw32ce-gcc fcd5e9cd67fe88836360bb4f9ef4cb7f8e2fb5a0
F Makefile.in 4f2f967b7e58a35bb74fb7ec8ae90e0f4ca7868b
F Makefile.linux-gcc d53183f4aa6a9192d249731c90dbdffbd2c68654
F src/hash.c 458488dcc159c301b8e7686280ab209f1fb915af
F src/hash.h 2894c932d84d9f892d4b4023a75e501f83050970
F src/hwtime.h d32741c8f4df852c7d959236615444e2b1063b08
-F src/insert.c 76d6b44a9f9050134fd81205f4b792cbdac7c925
+F src/insert.c 3a9567687f6b84ab9a41448e3d2ce20424f4743c
F src/journal.c b0ea6b70b532961118ab70301c00a33089f9315c
F src/legacy.c a199d7683d60cef73089e892409113e69c23a99f
F src/lempar.c 7f026423f4d71d989e719a743f98a1cbd4e6d99e
F test/trigger9.test 5b0789f1c5c4600961f8e68511b825b87be53e31
F test/triggerA.test 0718ad2d9bfef27c7af00e636df79bee6b988da7
F test/triggerB.test 56780c031b454abac2340dbb3b71ac5c56c3d7fe
-F test/triggerC.test 4083c64d80854d271bad211268a08985f3d61cbd
+F test/triggerC.test cac41fe31adc1abb9fa08532762fc2b4f662ab03
F test/triggerD.test c6add3817351451e419f6ff9e9a259b02b6e2de7
F test/types.test 9a825ec8eea4e965d7113b74c76a78bb5240f2ac
F test/types2.test 3555aacf8ed8dc883356e59efc314707e6247a84
F tool/speedtest8.c 2902c46588c40b55661e471d7a86e4dd71a18224
F tool/speedtest8inst1.c 293327bc76823f473684d589a8160bde1f52c14e
F tool/vdbe-compress.tcl d70ea6d8a19e3571d7ab8c9b75cba86d1173ff0f
-P 0092b36c7bbd04bf3826de7805e8a14739390f31
-R e6830afd696f92886f4e15da36e8a21e
-U drh
-Z 40be774e9b474c9229e7a0a284180d51
------BEGIN PGP SIGNATURE-----
-Version: GnuPG v1.4.6 (GNU/Linux)
-
-iD8DBQFLsecQoxKgR168RlERArHaAJ9qx0xDw9sULVJZASqsXe/+aloLGQCeOPwi
-veew0hRT3qVYZBfj+VUdiAo=
-=Cote
------END PGP SIGNATURE-----
+P 371bab5d6534860ce908e52129c64a49946be33a
+R 3994aaba17557add292404e3cf90a6c0
+U dan
+Z ebc48098411fcbe12e5a9df180be6bde
-371bab5d6534860ce908e52129c64a49946be33a
\ No newline at end of file
+ca359a3e8048bd11605c41c4b48134c0343e543b
\ No newline at end of file
if( pColumn->a[j].idx==i ) break;
}
}
- if( pColumn && j>=pColumn->nId ){
+ if( (!useTempTable && !pList) || (pColumn && j>=pColumn->nId) ){
sqlite3ExprCode(pParse, pTab->aCol[i].pDflt, regCols+i+1);
}else if( useTempTable ){
sqlite3VdbeAddOp3(v, OP_Column, srcTab, j, regCols+i+1);
}
} {5 2 3 35 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 32 33 22 34 35 36 37 38 39 40}
+#-------------------------------------------------------------------------
+# Test that bug [371bab5d65] has been fixed. BEFORE INSERT and INSTEAD OF
+# INSERT triggers with the DEFAULT VALUES INSERT syntax.
+#
+do_test triggerC-11.0 {
+ catchsql { DROP TABLE log }
+ execsql { CREATE TABLE log(a, b) }
+} {}
+
+foreach {testno tbl defaults} {
+ 1 "CREATE TABLE t1(a, b)" {{} {}}
+ 2 "CREATE TABLE t1(a DEFAULT 1, b DEFAULT 'abc')" {1 abc}
+ 3 "CREATE TABLE t1(a, b DEFAULT 4.5)" {{} 4.5}
+} {
+ do_test triggerC-11.$testno.1 {
+ catchsql { DROP TABLE t1 }
+ execsql { DELETE FROM log }
+ execsql $tbl
+ execsql {
+ CREATE TRIGGER tt1 BEFORE INSERT ON t1 BEGIN
+ INSERT INTO log VALUES(new.a, new.b);
+ END;
+ INSERT INTO t1 DEFAULT VALUES;
+ SELECT * FROM log;
+ }
+ } $defaults
+
+ do_test triggerC-11.$testno.2 {
+ execsql { DELETE FROM log }
+ execsql {
+ CREATE TRIGGER tt2 AFTER INSERT ON t1 BEGIN
+ INSERT INTO log VALUES(new.a, new.b);
+ END;
+ INSERT INTO t1 DEFAULT VALUES;
+ SELECT * FROM log;
+ }
+ } [concat $defaults $defaults]
+
+ do_test triggerC-11.$testno.3 {
+ execsql { DROP TRIGGER tt1 }
+ execsql { DELETE FROM log }
+ execsql {
+ INSERT INTO t1 DEFAULT VALUES;
+ SELECT * FROM log;
+ }
+ } $defaults
+}
+do_test triggerC-11.4 {
+ catchsql { DROP TABLE t2 }
+ execsql {
+ DELETE FROM log;
+ CREATE TABLE t2(a, b);
+ CREATE VIEW v2 AS SELECT * FROM t2;
+ CREATE TRIGGER tv2 INSTEAD OF INSERT ON v2 BEGIN
+ INSERT INTO log VALUES(new.a, new.b);
+ END;
+ INSERT INTO v2 DEFAULT VALUES;
+ SELECT a, b, a IS NULL, b IS NULL FROM log;
+ }
+} {{} {} 1 1}
+
+
finish_test