]> git.ipfire.org Git - thirdparty/sqlite.git/commitdiff
Remove unnecessary fields from the Parse object.
authordrh <drh@noemail.net>
Fri, 30 Sep 2016 18:35:36 +0000 (18:35 +0000)
committerdrh <drh@noemail.net>
Fri, 30 Sep 2016 18:35:36 +0000 (18:35 +0000)
FossilOrigin-Name: 814e41da3563eecf5514811bc8ab2df4f5cc0d4b

manifest
manifest.uuid
src/build.c
src/sqliteInt.h

index 6a0491fe98ea11a44ffdb2b7958185a63e5ac2e4..d09c186f8dba83867f12213accaf8e43f49fcf18 100644 (file)
--- a/manifest
+++ b/manifest
@@ -1,5 +1,5 @@
-C Avoid\sunnecessary\sMem\sinitializations\swhen\sgenerating\sa\snew\ssqlite3_stmt\nobject.
-D 2016-09-30T17:46:44.827
+C Remove\sunnecessary\sfields\sfrom\sthe\sParse\sobject.
+D 2016-09-30T18:35:36.517
 F Makefile.in 6fd48ffcf7c2deea7499062d1f3747f986c19678
 F Makefile.linux-gcc 7bc79876b875010e8c8f9502eb935ca92aa3c434
 F Makefile.msc 5151cc64c4c05f3455f4f692ad11410a810d937f
@@ -332,7 +332,7 @@ F src/btmutex.c bc87dd3b062cc26edfe79918de2200ccb8d41e73
 F src/btree.c 56e1732ecfb3731efcb216266ec26b1b96e5e8c9
 F src/btree.h d05b2fcc290991a8a3d9ea1816ddd55a4359dcde
 F src/btreeInt.h c18b7d2a3494695133e4e60ee36061d37f45d9a5
-F src/build.c ab95712203bfbd83d65c878934201624f778e469
+F src/build.c 4d01b74ea76f4295f83910feb8fdb9635952904a
 F src/callback.c 2e76147783386374bf01b227f752c81ec872d730
 F src/complete.c a3634ab1e687055cd002e11b8f43eb75c17da23e
 F src/ctime.c e77f3dc297b4b65c96da78b4ae4272fdfae863d7
@@ -391,7 +391,7 @@ F src/shell.c b80396d2fadce4681397707e30078bf416e1dec2
 F src/sqlite.h.in 2683a291ed8db5228024267be6421f0de507b80e
 F src/sqlite3.rc 5121c9e10c3964d5755191c80dd1180c122fc3a8
 F src/sqlite3ext.h 8648034aa702469afb553231677306cc6492a1ae
-F src/sqliteInt.h 2599e8cc7e74733bd980b1c58712f975f914ef01
+F src/sqliteInt.h 8bf4d8ac59a393d2db34cd47c1f21e8f3efd49bc
 F src/sqliteLimit.h c0373387c287c8d0932510b5547ecde31b5da247
 F src/status.c a9e66593dfb28a9e746cba7153f84d49c1ddc4b1
 F src/table.c 5226df15ab9179b9ed558d89575ea0ce37b03fc9
@@ -1525,7 +1525,7 @@ F vsixtest/vsixtest.tcl 6a9a6ab600c25a91a7acc6293828957a386a8a93
 F vsixtest/vsixtest.vcxproj.data 2ed517e100c66dc455b492e1a33350c1b20fbcdc
 F vsixtest/vsixtest.vcxproj.filters 37e51ffedcdb064aad6ff33b6148725226cd608e
 F vsixtest/vsixtest_TemporaryKey.pfx e5b1b036facdb453873e7084e1cae9102ccc67a0
-P 3c93c8f5bbf54ed2a331079b28fdd94eb0e59e69
-R 3cf19b11ac694d678c7ce4092749d94e
+P 47ae1cda8dc255d100aeb8cb90ea4c9e449509be
+R 3a2fcadea5b6198ddf05a323497d9130
 U drh
-Z 262005117be631ec889db38469ab8967
+Z 7276f26b121b18d3ecda7a3236f1b99c
index bfa720094cf22a1dfaf782a769ede2b32dc8a84c..82d4b6b1da9bfb3acaef8eb87f835fdf4411bd44 100644 (file)
@@ -1 +1 @@
-47ae1cda8dc255d100aeb8cb90ea4c9e449509be
\ No newline at end of file
+814e41da3563eecf5514811bc8ab2df4f5cc0d4b
\ No newline at end of file
index 34073d1a3bd134d60c05b60ea13ac52180a8cfbd..d1fc4378449ad9f00b6bf6185e04b8200222025c 100644 (file)
@@ -172,14 +172,16 @@ void sqlite3FinishCoding(Parse *pParse){
       assert( sqlite3VdbeGetOp(v, 0)->opcode==OP_Init );
       sqlite3VdbeJumpHere(v, 0);
       for(iDb=0; iDb<db->nDb; iDb++){
+        Schema *pSchema;
         if( DbMaskTest(pParse->cookieMask, iDb)==0 ) continue;
         sqlite3VdbeUsesBtree(v, iDb);
+        pSchema = db->aDb[iDb].pSchema;
         sqlite3VdbeAddOp4Int(v,
           OP_Transaction,                    /* Opcode */
           iDb,                               /* P1 */
           DbMaskTest(pParse->writeMask,iDb), /* P2 */
-          pParse->cookieValue[iDb],          /* P3 */
-          db->aDb[iDb].pSchema->iGeneration  /* P4 */
+          pSchema->schema_cookie,            /* P3 */
+          pSchema->iGeneration               /* P4 */
         );
         if( db->init.busy==0 ) sqlite3VdbeChangeP5(v, 1);
         VdbeComment((v,
@@ -230,16 +232,6 @@ void sqlite3FinishCoding(Parse *pParse){
   }else{
     pParse->rc = SQLITE_ERROR;
   }
-
-  /* We are done with this Parse object. There is no need to de-initialize it */
-#if 0
-  pParse->colNamesSet = 0;
-  pParse->nTab = 0;
-  pParse->nMem = 0;
-  pParse->nSet = 0;
-  pParse->nVar = 0;
-  DbMaskZero(pParse->cookieMask);
-#endif
 }
 
 /*
@@ -4043,15 +4035,13 @@ int sqlite3OpenTempDatabase(Parse *pParse){
 */
 void sqlite3CodeVerifySchema(Parse *pParse, int iDb){
   Parse *pToplevel = sqlite3ParseToplevel(pParse);
-  sqlite3 *db = pToplevel->db;
 
-  assert( iDb>=0 && iDb<db->nDb );
-  assert( db->aDb[iDb].pBt!=0 || iDb==1 );
+  assert( iDb>=0 && iDb<pParse->db->nDb );
+  assert( pParse->db->aDb[iDb].pBt!=0 || iDb==1 );
   assert( iDb<SQLITE_MAX_ATTACHED+2 );
-  assert( sqlite3SchemaMutexHeld(db, iDb, 0) );
+  assert( sqlite3SchemaMutexHeld(pParse->db, iDb, 0) );
   if( DbMaskTest(pToplevel->cookieMask, iDb)==0 ){
     DbMaskSet(pToplevel->cookieMask, iDb);
-    pToplevel->cookieValue[iDb] = db->aDb[iDb].pSchema->schema_cookie;
     if( !OMIT_TEMPDB && iDb==1 ){
       sqlite3OpenTempDatabase(pToplevel);
     }
index 579685245f9d786485919835c5c9d9d6b795e1e0..cf4a253de71f66be911ba6c91db97e185be519c2 100644 (file)
@@ -2896,7 +2896,6 @@ struct Parse {
   int nErr;            /* Number of errors seen */
   int nTab;            /* Number of previously allocated VDBE cursors */
   int nMem;            /* Number of memory cells used so far */
-  int nSet;            /* Number of sets used so far */
   int nOpAlloc;        /* Number of slots allocated for Vdbe.aOp[] */
   int szOpAlloc;       /* Bytes of memory space allocated for Vdbe.aOp[] */
   int ckBase;          /* Base register of data during check constraints */
@@ -2917,7 +2916,6 @@ struct Parse {
   Token constraintName;/* Name of the constraint currently being parsed */
   yDbMask writeMask;   /* Start a write transaction on these databases */
   yDbMask cookieMask;  /* Bitmask of schema verified databases */
-  int cookieValue[SQLITE_MAX_ATTACHED+2];  /* Values of cookies to verify */
   int regRowid;        /* Register holding rowid of CREATE TABLE entry */
   int regRoot;         /* Register holding root page number for new objects */
   int nMaxArg;         /* Max args passed to user function by sub-program */