From: drh Date: Tue, 8 Sep 2009 13:40:16 +0000 (+0000) Subject: Additional simplifications in support of structural testing. X-Git-Tag: fts3-refactor~208 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=345ba7db597addbe42bf8df833e30fad011f3908;p=thirdparty%2Fsqlite.git Additional simplifications in support of structural testing. FossilOrigin-Name: 4ab8c841f818326b0b04b95e3edd828c77f109d9 --- diff --git a/manifest b/manifest index 6d95cae6aa..5d45505343 100644 --- a/manifest +++ b/manifest @@ -1,8 +1,8 @@ -----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 -C Further\ssimplifications\sto\sthe\sVDBE\s-\sremoving\sfunctionality\sthat\sis\sno\slonger\nused. -D 2009-09-08T02:27:59 +C Additional\ssimplifications\sin\ssupport\sof\sstructural\stesting. +D 2009-09-08T13:40:17 F Makefile.arm-wince-mingw32ce-gcc fcd5e9cd67fe88836360bb4f9ef4cb7f8e2fb5a0 F Makefile.in 73ddeec9dd10b85876c5c2ce1fdce627e1dcc7f8 F Makefile.linux-gcc d53183f4aa6a9192d249731c90dbdffbd2c68654 @@ -124,7 +124,7 @@ F src/global.c 271952d199a8cc59d4ce840b3bbbfd2f30c8ba32 F src/hash.c ebcaa921ffd9d86f7ea5ae16a0a29d1c871130a7 F src/hash.h 35b216c13343d0b4f87d9f21969ac55ad72174e1 F src/hwtime.h 4a1d45f4cae1f402ea19686acf24acf4f0cb53cb -F src/insert.c c90b07a1c8c8c31f55ad906cc3fc2de10ba182dd +F src/insert.c 06fe504934bdd3b3a0fa0e11ccd6506b57114c52 F src/journal.c e00df0c0da8413ab6e1bb7d7cab5665d4a9000d0 F src/legacy.c 303b4ffcf1ae652fcf5ef635846c563c254564f6 F src/lempar.c 0c4d1ab0a5ef2b0381eb81a732c54f68f27a574d @@ -214,7 +214,7 @@ F src/vdbeInt.h 004dbb28a9195b6c85fe3255c7cc300ffd8b9453 F src/vdbeapi.c 8d5013ab6104be757c208a70ffb191cc27d2b688 F src/vdbeaux.c ec1545ece73dd739c9043f14963fb3f20d3880d6 F src/vdbeblob.c f93cb60ac388633ed3bde8a94ef161ad2dbfb689 -F src/vdbemem.c dc551981833756ea34a3e0b238f759479e7cf526 +F src/vdbemem.c 0ff2b209fccade3ff6709286057b82ed7f6c1e70 F src/vtab.c 3e54fe39374e5feb8b174de32a90e7a21966025d F src/walker.c 1edca756275f158b80f20eb6f104c8d3fcc96a04 F src/where.c 15b38ff11d83f749ac61ef2ab5ad7ddbee273d69 @@ -753,14 +753,14 @@ F tool/speedtest2.tcl ee2149167303ba8e95af97873c575c3e0fab58ff F tool/speedtest8.c 2902c46588c40b55661e471d7a86e4dd71a18224 F tool/speedtest8inst1.c 293327bc76823f473684d589a8160bde1f52c14e F tool/vdbe-compress.tcl d70ea6d8a19e3571d7ab8c9b75cba86d1173ff0f -P 52449a9569b7142095cc88ee208b31cc59a3cab4 -R 70ed5c4db2b466a473f539b4376c4de5 +P b271e16621831957468a1d3925174aac73f58891 +R 8c612cb15dd060090bb2d4d886dee584 U drh -Z 1c9033f2b3acc52071f7550f08e29c55 +Z a9d8abd000fb942a5d5935b1dbcc5c31 -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.6 (GNU/Linux) -iD8DBQFKpcEyoxKgR168RlERAlSiAJ0WnXRYxzLIp2BXv1Jfr5O1NvTtcACfcOtd -GJCQQ1LtgkqS/MBnZmt2PXw= -=MZwN +iD8DBQFKpl7EoxKgR168RlERArvgAJ9VIhI4NUVMwROuivJoGqBtHQo34ACdFY4R +tYb9IFwgX3mkui92z9PMIsY= +=tFOy -----END PGP SIGNATURE----- diff --git a/manifest.uuid b/manifest.uuid index 7070f408b1..10a03f931e 100644 --- a/manifest.uuid +++ b/manifest.uuid @@ -1 +1 @@ -b271e16621831957468a1d3925174aac73f58891 \ No newline at end of file +4ab8c841f818326b0b04b95e3edd828c77f109d9 \ No newline at end of file diff --git a/src/insert.c b/src/insert.c index d373a1d5b4..3eba2612ec 100644 --- a/src/insert.c +++ b/src/insert.c @@ -230,8 +230,10 @@ void sqlite3AutoincrementBegin(Parse *pParse){ int addr; /* A VDBE address */ Vdbe *v = pParse->pVdbe; /* VDBE under construction */ - /* If currently generating a trigger program, this call is a no-op */ - if( pParse->pTriggerTab ) return; + /* This routine is never called during trigger-generation. It is + ** only called from the top-level */ + assert( pParse->pTriggerTab==0 ); + assert( pParse==sqlite3ParseToplevel(pParse) ); assert( v ); /* We failed long ago if this is not so */ for(p = pParse->pAinc; p; p = p->pNext){ diff --git a/src/vdbemem.c b/src/vdbemem.c index 0995a3b68b..45a175f1f4 100644 --- a/src/vdbemem.c +++ b/src/vdbemem.c @@ -270,6 +270,10 @@ int sqlite3VdbeMemFinalize(Mem *pMem, FuncDef *pFunc){ */ void sqlite3VdbeMemReleaseExternal(Mem *p){ assert( p->db==0 || sqlite3_mutex_held(p->db->mutex) ); + testcase( p->flags & MEM_Agg ); + testcase( p->flags & MEM_Dyn ); + testcase( p->flags & MEM_RowSet ); + testcase( p->flags & MEM_Frame ); if( p->flags&(MEM_Agg|MEM_Dyn|MEM_RowSet|MEM_Frame) ){ if( p->flags&MEM_Agg ){ sqlite3VdbeMemFinalize(p, p->u.pDef); @@ -282,8 +286,7 @@ void sqlite3VdbeMemReleaseExternal(Mem *p){ }else if( p->flags&MEM_RowSet ){ sqlite3RowSetClear(p->u.pRowSet); }else if( p->flags&MEM_Frame ){ - sqlite3VdbeFrameDelete(p->u.pFrame); - p->flags &= ~MEM_Frame; + sqlite3VdbeMemSetNull(p); } } }