mirror of
https://github.com/sqlite/sqlite.git
synced 2025-08-08 14:02:16 +03:00
Avoid compiler warnings and excess opcodes when SQLITE_ENABLE_PREUPDATE_HOOK
is not used. Fix the EXPLAIN output for P4_TABLE opcodes. FossilOrigin-Name: 5ab46d760dff327491703478d6d7c7c44a0147ca
This commit is contained in:
18
manifest
18
manifest
@@ -1,5 +1,5 @@
|
|||||||
C Merge\schanges\sfor\s3.12.0.
|
C Avoid\scompiler\swarnings\sand\sexcess\sopcodes\swhen\sSQLITE_ENABLE_PREUPDATE_HOOK\nis\snot\sused.\s\sFix\sthe\sEXPLAIN\soutput\sfor\sP4_TABLE\sopcodes.
|
||||||
D 2016-03-29T10:19:29.541
|
D 2016-03-30T12:56:55.161
|
||||||
F Makefile.in e812bb732d7af01baa09f1278bd4f4a2e3a09449
|
F Makefile.in e812bb732d7af01baa09f1278bd4f4a2e3a09449
|
||||||
F Makefile.linux-gcc 7bc79876b875010e8c8f9502eb935ca92aa3c434
|
F Makefile.linux-gcc 7bc79876b875010e8c8f9502eb935ca92aa3c434
|
||||||
F Makefile.msc e6ee58b849c116d5554024f524cbf61f064f6f01
|
F Makefile.msc e6ee58b849c116d5554024f524cbf61f064f6f01
|
||||||
@@ -435,15 +435,15 @@ F src/threads.c 4ae07fa022a3dc7c5beb373cf744a85d3c5c6c3c
|
|||||||
F src/tokenize.c 3d338cdd00d916ce8a05c397001d64ed58e6fe1c
|
F src/tokenize.c 3d338cdd00d916ce8a05c397001d64ed58e6fe1c
|
||||||
F src/treeview.c e4b41a37530a191579d3c53142cc44ee2eb99373
|
F src/treeview.c e4b41a37530a191579d3c53142cc44ee2eb99373
|
||||||
F src/trigger.c e14840ee0c3e549e758ec9bf3e4146e166002280
|
F src/trigger.c e14840ee0c3e549e758ec9bf3e4146e166002280
|
||||||
F src/update.c 14c6916d0194a7f25ad429292f4831b8c31e93d9
|
F src/update.c 3e67ab3c0814635f355fb1f8ab010a2b9e016e7d
|
||||||
F src/utf.c 699001c79f28e48e9bcdf8a463da029ea660540c
|
F src/utf.c 699001c79f28e48e9bcdf8a463da029ea660540c
|
||||||
F src/util.c 8873d696c9ccc4206058c402e09e101f1b81561a
|
F src/util.c 8873d696c9ccc4206058c402e09e101f1b81561a
|
||||||
F src/vacuum.c feb1eabb20987983d9350cad98299b21fa811f52
|
F src/vacuum.c feb1eabb20987983d9350cad98299b21fa811f52
|
||||||
F src/vdbe.c da8f4d04fb134d7e64fd34d519b0eba4883ed779
|
F src/vdbe.c 04e0606bc0505924036a974759703af6a3664904
|
||||||
F src/vdbe.h c16ba943d407baa1c7085eefea73a063fc631863
|
F src/vdbe.h c16ba943d407baa1c7085eefea73a063fc631863
|
||||||
F src/vdbeInt.h 9b704336a69f62ba189eafb06a46171e3463d27b
|
F src/vdbeInt.h ddb157974436d87652de7dc641f7191496d9a8cd
|
||||||
F src/vdbeapi.c ba85b78fe08dc4a9ce747e62c89a2b4a4547e74c
|
F src/vdbeapi.c ba85b78fe08dc4a9ce747e62c89a2b4a4547e74c
|
||||||
F src/vdbeaux.c 03b2a622bf7714153bf06f9a6789e94aad9a5f89
|
F src/vdbeaux.c fa06ba5441714160ab5f64422660ee286968672f
|
||||||
F src/vdbeblob.c c9f2f494b911c6fa34efd9803f0a10807da80f77
|
F src/vdbeblob.c c9f2f494b911c6fa34efd9803f0a10807da80f77
|
||||||
F src/vdbemem.c 5cfef60e60e19cab6275d1b975bf4c791d575beb
|
F src/vdbemem.c 5cfef60e60e19cab6275d1b975bf4c791d575beb
|
||||||
F src/vdbesort.c 307460bfa4de4d1c3901fcd42089159131e34062
|
F src/vdbesort.c 307460bfa4de4d1c3901fcd42089159131e34062
|
||||||
@@ -1480,7 +1480,7 @@ F vsixtest/vsixtest.tcl 6a9a6ab600c25a91a7acc6293828957a386a8a93
|
|||||||
F vsixtest/vsixtest.vcxproj.data 2ed517e100c66dc455b492e1a33350c1b20fbcdc
|
F vsixtest/vsixtest.vcxproj.data 2ed517e100c66dc455b492e1a33350c1b20fbcdc
|
||||||
F vsixtest/vsixtest.vcxproj.filters 37e51ffedcdb064aad6ff33b6148725226cd608e
|
F vsixtest/vsixtest.vcxproj.filters 37e51ffedcdb064aad6ff33b6148725226cd608e
|
||||||
F vsixtest/vsixtest_TemporaryKey.pfx e5b1b036facdb453873e7084e1cae9102ccc67a0
|
F vsixtest/vsixtest_TemporaryKey.pfx e5b1b036facdb453873e7084e1cae9102ccc67a0
|
||||||
P beb5ea1439995fb8ab112451a8ffcc08fe42d0c4 e9bb4cf40f4971974a74468ef922bdee481c988b
|
P ed22eb653f2809446ace6a27e7ea3926ac6db30c
|
||||||
R 491d941731d06e3edceeb8f36a9265ac
|
R 5630f9e5708bbc437f2437f3c1df072c
|
||||||
U drh
|
U drh
|
||||||
Z 3f9fc483108428866f896f452f439d76
|
Z eacbad43019a9bff0f7b72fbe90e323f
|
||||||
|
@@ -1 +1 @@
|
|||||||
ed22eb653f2809446ace6a27e7ea3926ac6db30c
|
5ab46d760dff327491703478d6d7c7c44a0147ca
|
@@ -601,6 +601,7 @@ void sqlite3Update(
|
|||||||
** is the column index supplied by the user.
|
** is the column index supplied by the user.
|
||||||
*/
|
*/
|
||||||
assert( regNew==regNewRowid+1 );
|
assert( regNew==regNewRowid+1 );
|
||||||
|
#ifdef SQLITE_ENABLE_PREUPDATE_HOOK
|
||||||
sqlite3VdbeAddOp3(v, OP_Delete, iDataCur,
|
sqlite3VdbeAddOp3(v, OP_Delete, iDataCur,
|
||||||
OPFLAG_ISUPDATE | ((hasFK || chngKey || pPk!=0) ? 0 : OPFLAG_ISNOOP),
|
OPFLAG_ISUPDATE | ((hasFK || chngKey || pPk!=0) ? 0 : OPFLAG_ISNOOP),
|
||||||
regNewRowid
|
regNewRowid
|
||||||
@@ -608,6 +609,11 @@ void sqlite3Update(
|
|||||||
if( !pParse->nested ){
|
if( !pParse->nested ){
|
||||||
sqlite3VdbeChangeP4(v, -1, (char*)pTab, P4_TABLE);
|
sqlite3VdbeChangeP4(v, -1, (char*)pTab, P4_TABLE);
|
||||||
}
|
}
|
||||||
|
#else
|
||||||
|
if( hasFK || chngKey || pPk!=0 ){
|
||||||
|
sqlite3VdbeAddOp2(v, OP_Delete, iDataCur, 0);
|
||||||
|
}
|
||||||
|
#endif
|
||||||
if( bReplace || chngKey ){
|
if( bReplace || chngKey ){
|
||||||
sqlite3VdbeJumpHere(v, addr1);
|
sqlite3VdbeJumpHere(v, addr1);
|
||||||
}
|
}
|
||||||
|
@@ -4287,8 +4287,9 @@ case OP_InsertInt: {
|
|||||||
int seekResult; /* Result of prior seek or 0 if no USESEEKRESULT flag */
|
int seekResult; /* Result of prior seek or 0 if no USESEEKRESULT flag */
|
||||||
const char *zDb; /* database name - used by the update hook */
|
const char *zDb; /* database name - used by the update hook */
|
||||||
Table *pTab; /* Table structure - used by update and pre-update hooks */
|
Table *pTab; /* Table structure - used by update and pre-update hooks */
|
||||||
int op = 0; /* Opcode for update hook: SQLITE_UPDATE or SQLITE_INSERT */
|
int op; /* Opcode for update hook: SQLITE_UPDATE or SQLITE_INSERT */
|
||||||
|
|
||||||
|
op = 0;
|
||||||
pData = &aMem[pOp->p2];
|
pData = &aMem[pOp->p2];
|
||||||
assert( pOp->p1>=0 && pOp->p1<p->nCursor );
|
assert( pOp->p1>=0 && pOp->p1<p->nCursor );
|
||||||
assert( memIsValid(pData) );
|
assert( memIsValid(pData) );
|
||||||
@@ -4317,6 +4318,9 @@ case OP_InsertInt: {
|
|||||||
zDb = db->aDb[pC->iDb].zName;
|
zDb = db->aDb[pC->iDb].zName;
|
||||||
pTab = pOp->p4.pTab;
|
pTab = pOp->p4.pTab;
|
||||||
op = ((pOp->p5 & OPFLAG_ISUPDATE) ? SQLITE_UPDATE : SQLITE_INSERT);
|
op = ((pOp->p5 & OPFLAG_ISUPDATE) ? SQLITE_UPDATE : SQLITE_INSERT);
|
||||||
|
}else{
|
||||||
|
pTab = 0; /* Not needed. Silence a comiler warning. */
|
||||||
|
zDb = 0; /* Not needed. Silence a compiler warning. */
|
||||||
}
|
}
|
||||||
|
|
||||||
#ifdef SQLITE_ENABLE_PREUPDATE_HOOK
|
#ifdef SQLITE_ENABLE_PREUPDATE_HOOK
|
||||||
@@ -4431,6 +4435,9 @@ case OP_Delete: {
|
|||||||
if( pOp->p5 && pC->isTable ){
|
if( pOp->p5 && pC->isTable ){
|
||||||
sqlite3BtreeKeySize(pC->uc.pCursor, &pC->movetoTarget);
|
sqlite3BtreeKeySize(pC->uc.pCursor, &pC->movetoTarget);
|
||||||
}
|
}
|
||||||
|
}else{
|
||||||
|
zDb = 0; /* Not needed. Silence a compiler warning. */
|
||||||
|
pTab = 0; /* Not needed. Silence a compiler warning. */
|
||||||
}
|
}
|
||||||
|
|
||||||
#ifdef SQLITE_ENABLE_PREUPDATE_HOOK
|
#ifdef SQLITE_ENABLE_PREUPDATE_HOOK
|
||||||
|
@@ -506,8 +506,9 @@ int sqlite3VdbeMemClearAndResize(Mem *pMem, int n);
|
|||||||
int sqlite3VdbeCloseStatement(Vdbe *, int);
|
int sqlite3VdbeCloseStatement(Vdbe *, int);
|
||||||
void sqlite3VdbeFrameDelete(VdbeFrame*);
|
void sqlite3VdbeFrameDelete(VdbeFrame*);
|
||||||
int sqlite3VdbeFrameRestore(VdbeFrame *);
|
int sqlite3VdbeFrameRestore(VdbeFrame *);
|
||||||
void sqlite3VdbePreUpdateHook(
|
#ifdef SQLITE_ENABLE_PREUPDATE_HOOK
|
||||||
Vdbe *, VdbeCursor *, int, const char*, Table *, i64, int);
|
void sqlite3VdbePreUpdateHook(Vdbe*,VdbeCursor*,int,const char*,Table*,i64,int);
|
||||||
|
#endif
|
||||||
int sqlite3VdbeTransferError(Vdbe *p);
|
int sqlite3VdbeTransferError(Vdbe *p);
|
||||||
|
|
||||||
int sqlite3VdbeSorterInit(sqlite3 *, int, VdbeCursor *);
|
int sqlite3VdbeSorterInit(sqlite3 *, int, VdbeCursor *);
|
||||||
|
@@ -1318,6 +1318,10 @@ static char *displayP4(Op *pOp, char *zTemp, int nTemp){
|
|||||||
zTemp[0] = 0;
|
zTemp[0] = 0;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
case P4_TABLE: {
|
||||||
|
sqlite3XPrintf(&x, "%s", pOp->p4.pTab->zName);
|
||||||
|
break;
|
||||||
|
}
|
||||||
default: {
|
default: {
|
||||||
zP4 = pOp->p4.z;
|
zP4 = pOp->p4.z;
|
||||||
if( zP4==0 ){
|
if( zP4==0 ){
|
||||||
@@ -4509,7 +4513,9 @@ static void vdbeFreeUnpacked(sqlite3 *db, UnpackedRecord *p){
|
|||||||
sqlite3DbFree(db, p);
|
sqlite3DbFree(db, p);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
#endif /* SQLITE_ENABLE_PREUPDATE_HOOK */
|
||||||
|
|
||||||
|
#ifdef SQLITE_ENABLE_PREUPDATE_HOOK
|
||||||
/*
|
/*
|
||||||
** Invoke the pre-update hook. If this is an UPDATE or DELETE pre-update call,
|
** Invoke the pre-update hook. If this is an UPDATE or DELETE pre-update call,
|
||||||
** then cursor passed as the second argument should point to the row about
|
** then cursor passed as the second argument should point to the row about
|
||||||
|
Reference in New Issue
Block a user