]> git.ipfire.org Git - thirdparty/sqlite.git/commitdiff
Add OOM test for UPDATE...FROM statements inside triggers.
authordan <dan@noemail.net>
Thu, 16 Jul 2020 10:48:37 +0000 (10:48 +0000)
committerdan <dan@noemail.net>
Thu, 16 Jul 2020 10:48:37 +0000 (10:48 +0000)
FossilOrigin-Name: 917a479b0d11fb59abf41d0317ffc541eb4b83928df9382b4782953c0035fa3e

manifest
manifest.uuid
test/upfromfault.test

index 9ad0351559d511b029b63cfb8afc01d607c6134a..7f1029dadffd34c8394ae2a812e8e0d7247ee2de 100644 (file)
--- a/manifest
+++ b/manifest
@@ -1,6 +1,6 @@
 B 7a876209a678a34c198b54ceef9e3c041f128a14dc73357f6a57cadadaa6cf7b
-C Fix\sa\sdouble-free\sof\sthe\sFROM\sclause\sof\san\sUPDATE\sinside\sof\striggers.
-D 2020-07-16T02:36:24.506
+C Add\sOOM\stest\sfor\sUPDATE...FROM\sstatements\sinside\striggers.
+D 2020-07-16T10:48:37.676
 F Makefile.in 19374a5db06c3199ec1bab71ab74a103d8abf21053c05e9389255dc58083f806
 F Makefile.msc 48f5a3fc32672c09ad73795749f6253e406a31526935fbbffd8f021108d54574
 F autoconf/Makefile.am a8d1d24affe52ebf8d7ddcf91aa973fa0316618ab95bb68c87cabf8faf527dc8
@@ -56,7 +56,7 @@ F test/upfrom1.tcl df984cb88010af1555812af55e9db44c4df50677395b45d1f30b69b1b6c07
 F test/upfrom1.test 2ba1ed45b4a2161fc79f234b9ce4300b0d3deba545e3f23b938fb3ebdbf8758d
 F test/upfrom2.test 79f2d3e4df214010011afdd588ce35410ea1416e0f87aadb48618864347f90a5
 F test/upfrom3.test f47fe3249927af1f912610840597948817f89d8d9d903f4b0a0857b062492758
-F test/upfromfault.test 1e68cc570695a0f8cd16ce09c14210fc43928c7b47b3eda38a99abb0b80c9a65
+F test/upfromfault.test 70ecf8eb85559727a487283f69374e3ae39879e994d8a2437c49d7c05ecb70c9
 F test/window1.test e52b81fff0c3cb122a1240f336688eb81bea2967a99c4ddb78969adec7aadc2a
 F tool/lemon.c 600a58b9d1b8ec5419373982428e927ca208826edacb91ca42ab94514d006039
 F tool/mkautoconfamal.sh f62353eb6c06ab264da027fd4507d09914433dbdcab9cb011cdc18016f1ab3b8
@@ -65,7 +65,7 @@ F tool/mksqlite3c.tcl f4ef476510eca4124c874a72029f1e01bc54a896b1724e8f9eef0d8bfa
 F tool/mksqlite3h.tcl 1f5e4a1dbbbc43c83cc6e74fe32c6c620502240b66c7c0f33a51378e78fc4edf
 F tool/showlocks.c 9cc5e66d4ebbf2d194f39db2527ece92077e86ae627ddd233ee48e16e8142564
 F tool/speed-check.sh 615cbdf50f1409ef3bbf9f682e396df80f49d97ed93ed3e61c8e91fae6afde58
-P da593e57df042527decfea68baacc72d463728544cab81c70fbb25839791f706
-R 3c1be9d78ac76070b4e1e9b0ee27588a
-U drh
-Z ff8d21dd1304c045d5436546299b72d7
+P 706c8da2f6d9299f0ad3b3c93332b38071e8e88b4d1660c1841309919b64fd18
+R fcab135d5deb5acb3d15005a264e9466
+U dan
+Z 22e315bcc6851243145bd7812adea6f1
index e0583b80495fd1fd0ee685fedc39f668bb173545..3881159ae3876b88207a19f6d1755228ca939cb5 100644 (file)
@@ -1 +1 @@
-706c8da2f6d9299f0ad3b3c93332b38071e8e88b4d1660c1841309919b64fd18
\ No newline at end of file
+917a479b0d11fb59abf41d0317ffc541eb4b83928df9382b4782953c0035fa3e
\ No newline at end of file
index 2645857207e8d0d9407b5d6232ba7ccedd883d42..fcb5956089b672de951e8893b144cba9f085ca62 100644 (file)
@@ -89,6 +89,52 @@ if {$tn<5} continue
   }
 }
 
+reset_db
+do_execsql_test 2.0 {
+  CREATE TABLE t1(a, b, c);
+  CREATE TABLE t2(x, y, z);
+}
+faultsim_save_and_close
+do_faultsim_test 2.1 -prep {
+  faultsim_restore_and_reopen
+} -body {
+  execsql {
+    CREATE TRIGGER tr1 AFTER INSERT ON t1 BEGIN
+      UPDATE t2 SET x=a FROM t1 WHERE c=z;
+    END;
+  }
+} -test {
+    faultsim_test_result {0 {}}
+}
+
+faultsim_restore_and_reopen
+do_execsql_test 2.2 {
+  CREATE TRIGGER tr1 AFTER INSERT ON t1 BEGIN
+    UPDATE t1 SET a=x FROM t2 WHERE c=z;
+  END;
+
+  INSERT INTO t2 VALUES(1, 1, 1);
+  INSERT INTO t2 VALUES(2, 2, 2);
+  INSERT INTO t2 VALUES(3, 3, 3);
+} 
+faultsim_save_and_close
+
+do_faultsim_test 2.3 -prep {
+  faultsim_restore_and_reopen
+} -body {
+  execsql {
+    INSERT INTO t1 VALUES(NULL, NULL, 1), (NULL, NULL, 3);
+  }
+} -test {
+  faultsim_test_result {0 {}}
+  if {$testrc==0} {
+    set res [execsql { SELECT * FROM t1 }]
+    if {$res!="1 {} 1 3 {} 3"} {
+      error "unexpected result: $res"
+    }
+  }
+}
+
 
 finish_test