From 9a02fb444c7c38360f4dafc91433ddeb13381a6f Mon Sep 17 00:00:00 2001 From: danielk1977 Date: Mon, 27 Oct 2008 08:24:38 +0000 Subject: [PATCH] Remove some if() conditions that are always true from delete.c. (CVS 5843) FossilOrigin-Name: 297ad90dd3a69002e6e4175e9e3938b3a627574d --- manifest | 12 ++++++------ manifest.uuid | 2 +- src/delete.c | 24 +++++++++++------------- 3 files changed, 18 insertions(+), 20 deletions(-) diff --git a/manifest b/manifest index 7dd3f77016..22f03526b0 100644 --- a/manifest +++ b/manifest @@ -1,5 +1,5 @@ -C Remove\sunused\sparameter\sfrom\sfunction\srtreeInit()\s(part\sof\sthe\sr-tree\sextension).\s(CVS\s5842) -D 2008-10-25T17:10:10 +C Remove\ssome\sif()\sconditions\sthat\sare\salways\strue\sfrom\sdelete.c.\s(CVS\s5843) +D 2008-10-27T08:24:38 F Makefile.arm-wince-mingw32ce-gcc fcd5e9cd67fe88836360bb4f9ef4cb7f8e2fb5a0 F Makefile.in 3fe17eccd87d385b5adc9766828716cfdd154d6b F Makefile.linux-gcc d53183f4aa6a9192d249731c90dbdffbd2c68654 @@ -106,7 +106,7 @@ F src/build.c d6d55f97abcb6f17ac3e9e7a1dd8c0db67db34fd F src/callback.c e970e5beddbdb23f89a6d05cb1a6419d9f755624 F src/complete.c cb14e06dbe79dee031031f0d9e686ff306afe07c F src/date.c 6f4277fa56d8c1b8e70c0bde838c9e99609f5ec0 -F src/delete.c d3f2adfdd07e701115a111cc81dca33ed6039d10 +F src/delete.c 8bb079e098c0d154f0469062ddbc8237d1cc0b55 F src/expr.c 2b1945314fdc661fb04306cb86bd8516cfd12d4a F src/fault.c dc88c821842157460750d2d61a8a8b4197d047ff F src/func.c 8431b40a7843d1024145684d303c55b4ee087bbe @@ -651,7 +651,7 @@ F tool/speedtest16.c c8a9c793df96db7e4933f0852abb7a03d48f2e81 F tool/speedtest2.tcl ee2149167303ba8e95af97873c575c3e0fab58ff F tool/speedtest8.c 2902c46588c40b55661e471d7a86e4dd71a18224 F tool/speedtest8inst1.c 293327bc76823f473684d589a8160bde1f52c14e -P 1fa3bbd8220ce073e91935ea362b6f5d5d6d2859 -R dae93994bda0f30e07a5f49b4bf52661 +P 3224ea59812d0f3b5685bd92751054b81e3b681e +R ba54cbfc3be9ecc00ba76b8e1609779a U danielk1977 -Z 7aae3acdac273e44b3563e1dd3d963ab +Z ccda3a5856c2017497ad6a21acb2893e diff --git a/manifest.uuid b/manifest.uuid index 8b87b3000d..958e7b8d26 100644 --- a/manifest.uuid +++ b/manifest.uuid @@ -1 +1 @@ -3224ea59812d0f3b5685bd92751054b81e3b681e \ No newline at end of file +297ad90dd3a69002e6e4175e9e3938b3a627574d \ No newline at end of file diff --git a/src/delete.c b/src/delete.c index 0c0666529b..ef036cba92 100644 --- a/src/delete.c +++ b/src/delete.c @@ -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.182 2008/10/10 23:48:26 drh Exp $ +** $Id: delete.c,v 1.183 2008/10/27 08:24:38 danielk1977 Exp $ */ #include "sqliteInt.h" @@ -284,6 +284,7 @@ void sqlite3DeleteFrom( if( sqlite3AuthCheck(pParse, SQLITE_DELETE, pTab->zName, 0, zDb) ){ goto delete_from_cleanup; } + assert(!isView || triggers_exist); /* If pTab is really a view, make sure it has been initialized. */ @@ -370,27 +371,24 @@ void sqlite3DeleteFrom( ** this means that the row change count will be incorrect. */ if( pWhere==0 && !triggers_exist && !IsVirtual(pTab) ){ + assert( !isView ); if( db->flags & SQLITE_CountRows ){ /* If counting rows deleted, just count the total number of ** entries in the table. */ int addr2; - if( !isView ){ - sqlite3OpenTable(pParse, iCur, iDb, pTab, OP_OpenRead); - } + sqlite3OpenTable(pParse, iCur, iDb, pTab, OP_OpenRead); sqlite3VdbeAddOp2(v, OP_Rewind, iCur, sqlite3VdbeCurrentAddr(v)+2); addr2 = sqlite3VdbeAddOp2(v, OP_AddImm, memCnt, 1); sqlite3VdbeAddOp2(v, OP_Next, iCur, addr2); sqlite3VdbeAddOp1(v, OP_Close, iCur); } - if( !isView ){ - sqlite3VdbeAddOp2(v, OP_Clear, pTab->tnum, iDb); - if( !pParse->nested ){ - sqlite3VdbeChangeP4(v, -1, pTab->zName, P4_STATIC); - } - for(pIdx=pTab->pIndex; pIdx; pIdx=pIdx->pNext){ - assert( pIdx->pSchema==pTab->pSchema ); - sqlite3VdbeAddOp2(v, OP_Clear, pIdx->tnum, iDb); - } + sqlite3VdbeAddOp2(v, OP_Clear, pTab->tnum, iDb); + if( !pParse->nested ){ + sqlite3VdbeChangeP4(v, -1, pTab->zName, P4_STATIC); + } + for(pIdx=pTab->pIndex; pIdx; pIdx=pIdx->pNext){ + assert( pIdx->pSchema==pTab->pSchema ); + sqlite3VdbeAddOp2(v, OP_Clear, pIdx->tnum, iDb); } }else #endif /* SQLITE_OMIT_TRUNCATE_OPTIMIZATION */ -- 2.47.2