]> git.ipfire.org Git - thirdparty/sqlite.git/commitdiff
Make sure errors in coding triggers are propagated back up to the parser.
authordrh <drh@noemail.net>
Thu, 16 Apr 2015 15:47:06 +0000 (15:47 +0000)
committerdrh <drh@noemail.net>
Thu, 16 Apr 2015 15:47:06 +0000 (15:47 +0000)
FossilOrigin-Name: 928f973ca9adc7933015b2fb6b6fcb8e3154cb9c

manifest
manifest.uuid
src/trigger.c
test/fkey2.test

index 93103be3ba3aaa85dfa8f3cc3cc3a178e0a88e8a..d7954dddf76746d077661e6a25a949130b5ce983 100644 (file)
--- a/manifest
+++ b/manifest
@@ -1,5 +1,5 @@
-C Add\sthe\s--backslash\soption\sto\sthe\scommand-line\sshell\sfor\stesting\spurposes.
-D 2015-04-16T15:05:04.946
+C Make\ssure\serrors\sin\scoding\striggers\sare\spropagated\sback\sup\sto\sthe\sparser.
+D 2015-04-16T15:47:06.148
 F Makefile.arm-wince-mingw32ce-gcc d6df77f1f48d690bd73162294bbba7f59507c72f
 F Makefile.in 5f78b1ab81b64e7c57a75d170832443e66c0880a
 F Makefile.linux-gcc 91d710bdc4998cb015f39edf3cb314ec4f4d7e23
@@ -288,7 +288,7 @@ F src/test_vfstrace.c bab9594adc976cbe696ff3970728830b4c5ed698
 F src/test_wsd.c 41cadfd9d97fe8e3e4e44f61a4a8ccd6f7ca8fe9
 F src/threads.c 6bbcc9fe50c917864d48287b4792d46d6e873481
 F src/tokenize.c a8234a67577308935cdf13e618cd66556f5f45d1
-F src/trigger.c 69a91bed7c94e46223e37ffccfeeb35e34b999ac
+F src/trigger.c a261da05e2ba65035d6f4b85d1fe6d4f363c1f1f
 F src/update.c 3c4ecc282accf12d39edb8d524cf089645e55a13
 F src/utf.c fc6b889ba0779b7722634cdeaa25f1930d93820c
 F src/util.c 98a7627ca48ad3265b6940915a1d08355eb3fc7e
@@ -505,7 +505,7 @@ F test/fallocate.test 3e979af17dfa7e5e9dda5eba1a696c04fa9d47f7
 F test/filectrl.test 14fa712e42c4cb791e09dfd58a6a03efb47ef13a
 F test/filefmt.test cb34663f126cbc2d358af552dcaf5c72769b0146
 F test/fkey1.test e1d1fa84cde579185ea01358436839703e415a5b
-F test/fkey2.test 223c624e7eccee21e89c98d4d127ac88d774b940
+F test/fkey2.test 043692a609d513f8f230ca3064e8074f8643b60e
 F test/fkey3.test 76d475c80b84ee7a5d062e56ccb6ea68882e2b49
 F test/fkey4.test 86446017011273aad8f9a99c1a65019e7bd9ca9d
 F test/fkey5.test 56bcb5a6e8b725b17febc267fb041a6695e86853
@@ -1250,7 +1250,7 @@ F tool/vdbe_profile.tcl 67746953071a9f8f2f668b73fe899074e2c6d8c1
 F tool/warnings-clang.sh f6aa929dc20ef1f856af04a730772f59283631d4
 F tool/warnings.sh 0abfd78ceb09b7f7c27c688c8e3fe93268a13b32
 F tool/win/sqlite.vsix deb315d026cc8400325c5863eef847784a219a2f
-P 9d336be1b16aa9bd5c9e4132bb645874993c7d96
-R 5fbffaa37b14ccf06bc3b95dfad9c618
+P dd96211e8022365637286b146120cc5db44a9923
+R 046f14926b5af5dfc4416003fb47b3d1
 U drh
-Z e400cf12f450b0a1df16da05ddca199b
+Z 6ea7be360982608826bd8c7c45584988
index 57720c5916589055b680620aae2ea5af5e1be1d2..7832a2dde8fc0154a92a8f091a45b2884827be33 100644 (file)
@@ -1 +1 @@
-dd96211e8022365637286b146120cc5db44a9923
\ No newline at end of file
+928f973ca9adc7933015b2fb6b6fcb8e3154cb9c
\ No newline at end of file
index ed152d2a8ae0c1128bae7ded94fa532649a15eae..d29f509a8d692eeca5561956ebb3f54c106374c0 100644 (file)
@@ -795,6 +795,7 @@ static void transferParseError(Parse *pTo, Parse *pFrom){
   if( pTo->nErr==0 ){
     pTo->zErrMsg = pFrom->zErrMsg;
     pTo->nErr = pFrom->nErr;
+    pTo->rc = pFrom->rc;
   }else{
     sqlite3DbFree(pFrom->db, pFrom->zErrMsg);
   }
index 8b2871e5a6dc7b4594e81bf69f76d7308140fa0b..d0b284b780390d36d2da0f579356f5200c0d819d 100644 (file)
@@ -2014,4 +2014,18 @@ do_test fkey2-ce7c13.1.6 {
   }
 } {1 {FOREIGN KEY constraint failed}}
 
+# 2015-04-16:  Foreign key errors propagate back up to the parser.
+#
+do_test fkey2-20150416-100 {
+  db close
+  sqlite3 db :memory:
+  catchsql {
+    PRAGMA foreign_keys=1;
+    CREATE TABLE t1(x PRIMARY KEY);
+    CREATE TABLE t(y REFERENCES t0(x)ON DELETE SET DEFAULT);
+    CREATE TABLE t0(y REFERENCES t1 ON DELETE SET NULL);
+    REPLACE INTO t1 SELECT(0);CREATE TABLE t2(x);CREATE TABLE t3;
+  }
+} {1 {foreign key mismatch - "t" referencing "t0"}}
+
 finish_test