]> git.ipfire.org Git - thirdparty/sqlite.git/commitdiff
Fixed stack growth in delete trigger on views (tkt #1169) (CVS 2442)
authorkwel <kwel@noemail.net>
Fri, 8 Apr 2005 16:07:47 +0000 (16:07 +0000)
committerkwel <kwel@noemail.net>
Fri, 8 Apr 2005 16:07:47 +0000 (16:07 +0000)
FossilOrigin-Name: 1a757ba13292577d01bd7b66811bcfd6748b9f7e

manifest
manifest.uuid
src/delete.c

index 873d3e68bca4f579a36e76ad49d1b71ae13b9022..bb4f31bdef4d89d4539643e69f050a44602a776c 100644 (file)
--- a/manifest
+++ b/manifest
@@ -1,5 +1,5 @@
-C Apply\sTcl\s'nullvalue'\spatch\sfrom\sStefan\sFinzel.\s(CVS\s2441)
-D 2005-04-03T23:54:44
+C Fixed\sstack\sgrowth\sin\sdelete\strigger\son\sviews\s(tkt\s#1169)\s(CVS\s2442)
+D 2005-04-08T16:07:48
 F Makefile.in 5c00d0037104de2a50ac7647a5f12769795957a3
 F Makefile.linux-gcc 06be33b2a9ad4f005a5f42b22c4a19dab3cbb5c7
 F README 9c4e2d6706bdcc3efdd773ce752a8cdab4f90028
@@ -34,7 +34,7 @@ F src/btree.c 25770f8cf1fe778757b69cbe0b84c02615c6e1f5
 F src/btree.h 41a71ce027db9ddee72cb43df2316bbe3a1d92af
 F src/build.c 8afb06c791adcde7787f157bbc55aeef27fb27c1
 F src/date.c 2134ef4388256e8247405178df8a61bd60dc180a
-F src/delete.c d70d54a84695de92efc05b9db7d3684cd21d9094
+F src/delete.c bbdd1745a830e8b1b521481401f5ccc2aada5048
 F src/experimental.c 50c1e3b34f752f4ac10c36f287db095c2b61766d
 F src/expr.c bf7253cd2d828ec8bf321321c2598e4b8918d79b
 F src/func.c ff0673a25ec6216934e664bf9f480ae8b2c66936
@@ -278,7 +278,7 @@ F www/tclsqlite.tcl 425be741b8ae664f55cb1ef2371aab0a75109cf9
 F www/vdbe.tcl 87a31ace769f20d3627a64fa1fade7fed47b90d0
 F www/version3.tcl a99cf5f6d8bd4d5537584a2b342f0fb9fa601d8b
 F www/whentouse.tcl 528299b8316726dbcc5548e9aa0648c8b1bd055b
-P 7e6f688d468099a6e62e405086c9172459d43e3f
-R a8cca6db5487eb412a323e0b22bfb314
-U danielk1977
-Z ee96ebc082df4a64e80f84ebea2df6dc
+P 9906ae37b9be684b615a1190cf8798513baa799a
+R 7609cb649d78c69af1ca177c172914b2
+U kwel
+Z 7ab6075e5613a19e936e9a0dbe632efc
index c76c1eb5d1872b0ee53e954cd1054f7c7650ac30..43c327c98a5fcc0b70c9f5acf3f3b5701285cb62 100644 (file)
@@ -1 +1 @@
-9906ae37b9be684b615a1190cf8798513baa799a
\ No newline at end of file
+1a757ba13292577d01bd7b66811bcfd6748b9f7e
\ No newline at end of file
index 6d43bc6cf72621f6df3a819443c4a5daf28fc7ed..b86fc0a2a11845368b9d254b0951b8b71a0a7c5e 100644 (file)
@@ -12,7 +12,7 @@
 ** This file contains C code routines that are called by the parser
 ** in order to generate code for DELETE FROM statements.
 **
-** $Id: delete.c,v 1.102 2005/03/16 12:15:21 danielk1977 Exp $
+** $Id: delete.c,v 1.103 2005/04/08 16:07:48 kwel Exp $
 */
 #include "sqliteInt.h"
 
@@ -264,8 +264,8 @@ void sqlite3DeleteFrom(
     */
     if( triggers_exist ){
       addr = sqlite3VdbeAddOp(v, OP_ListRead, 0, end);
-      sqlite3VdbeAddOp(v, OP_Dup, 0, 0);
       if( !isView ){
+        sqlite3VdbeAddOp(v, OP_Dup, 0, 0);
         sqlite3OpenTableForReading(v, iCur, pTab);
       }
       sqlite3VdbeAddOp(v, OP_MoveGe, iCur, 0);
@@ -278,7 +278,7 @@ void sqlite3DeleteFrom(
 
       (void)sqlite3CodeRowTrigger(pParse, TK_DELETE, 0, TRIGGER_BEFORE, pTab,
           -1, oldIdx, (pParse->trigStack)?pParse->trigStack->orconf:OE_Default,
-         addr);
+          addr);
     }
 
     if( !isView ){
@@ -312,7 +312,7 @@ void sqlite3DeleteFrom(
       }
       (void)sqlite3CodeRowTrigger(pParse, TK_DELETE, 0, TRIGGER_AFTER, pTab, -1,
           oldIdx, (pParse->trigStack)?pParse->trigStack->orconf:OE_Default,
-         addr);
+          addr);
     }
 
     /* End of the delete loop */