]> git.ipfire.org Git - thirdparty/sqlite.git/commitdiff
Add interfaces sqlite3_prepare_v3() and sqlite3_prepare16_v3() with the
authordrh <drh@noemail.net>
Thu, 29 Jun 2017 15:24:57 +0000 (15:24 +0000)
committerdrh <drh@noemail.net>
Thu, 29 Jun 2017 15:24:57 +0000 (15:24 +0000)
extra prepFlags argument. Add the SQLITE_PREPARE_PERSISTENT option as
one bit in that argument.  Use the new option in FTS3, FTS5, and RTREE.

FossilOrigin-Name: 03977248e6fdaa9b35c15e5dd9bb89552f2f0a913cc31609b5af1e2347b67d38

1  2 
manifest
manifest.uuid
src/sqlite.h.in
src/vdbeInt.h
src/vdbeaux.c

diff --cc manifest
index ea0b006ee319ab6bea6b983f9b63730eb26487a9,e22677a23d661674b647ca980a80af8e6c05f61e..5dfedc859cc706518f0f6654b26cb2cc62aef339
+++ b/manifest
@@@ -1,8 -1,8 +1,8 @@@
- C Further\scorrections\sto\sthe\sWin32\sinterface\sfor\slsm1.
- D 2017-06-29T15:13:48.585
 -C Incorporate\srecent\strunk\schanges.
 -D 2017-06-28T15:56:58.652
 -F Makefile.in 1cc758ce3374a32425e4d130c2fe7b026b20de5b8843243de75f087c0a2661fb
++C Add\sinterfaces\ssqlite3_prepare_v3()\sand\ssqlite3_prepare16_v3()\swith\sthe\s\nextra\sprepFlags\sargument.\sAdd\sthe\sSQLITE_PREPARE_PERSISTENT\soption\sas\s\none\sbit\sin\sthat\sargument.\s\sUse\sthe\snew\soption\sin\sFTS3,\sFTS5,\sand\sRTREE.
++D 2017-06-29T15:24:57.455
 +F Makefile.in 081e48dfe7f995d57ce1a88ddf4d2917b4349158648a6cd45b42beae30de3a12
  F Makefile.linux-gcc 7bc79876b875010e8c8f9502eb935ca92aa3c434
 -F Makefile.msc 8eeb80162074004e906b53d7340a12a14c471a83743aab975947e95ce061efcc
 +F Makefile.msc 4ebb1d257cac7fb1bcb4ba59278416d410ff1c4bf59447a9c37a415f3516056a
  F README.md 2b15fae33852f2f53996774c21fb41e1d94181c4401a0e43ac93e11f2cc901b9
  F VERSION 87f1498f27e398bce3da2fa8125c9879a38ed9d87e4b5fb922b351de1e25cadb
  F aclocal.m4 a5c22d164aff7ed549d53a90fa56d56955281f50
@@@ -443,22 -401,22 +443,22 @@@ F src/pcache.h 521bb9610d38ef17a3cc9b5d
  F src/pcache1.c 1195a21fe28e223e024f900b2011e80df53793f0356a24caace4188b098540dc
  F src/pragma.c 2362670a9d28b71708aecb2b9b10b3f7be71f4c950961c07e81dc400e3ce6371
  F src/pragma.h 99d3df4a3d2f12c5227ad403f767334910e6356325b6d155a9a99b4037093460
- F src/prepare.c a80a740b306a5fb2f2594d68776aade4ce1920687932e7c4dc0320ebdadcbb5d
+ F src/prepare.c 4b84ae7458febe1df3e04ae62ba56abc851f771340e460d14426e6802c5615f4
  F src/printf.c 8757834f1b54dae512fb25eb1acc8e94a0d15dd2290b58f2563f65973265adb2
  F src/random.c 80f5d666f23feb3e6665a6ce04c7197212a88384
 -F src/resolve.c adf3ef9843135b1383321ad751f16f5a40c3f37925154555a3e61653d2a954e8
 +F src/resolve.c d1e69759e7a79c156c692793f5d16f82f9a60ce5e82efd95e4374b2423034946
  F src/rowset.c 7b7e7e479212e65b723bf40128c7b36dc5afdfac
 -F src/select.c 35ccfae64cecfa843d54a5898c4ab7d6595ce03d147267fa5eecdc8eab39cd6a
 +F src/select.c 741937503c74d85e64828b63d5a4219d3cfce480a717efef635839606001b1ba
  F src/shell.c 227b86f2bdd707d0a177a4805a5c0b0378ef8337ab1ad04f5d79dc479568735a
- F src/sqlite.h.in 40c70d4c9c39f69c4de6704428eaacc3e0ae939af49bdb7bc6b272efe2d61516
 -F src/sqlite.h.in b44ec77f83c8599182ea6646e0a99dfa5b11644943a00c8bb5736c2d19b8cbb5
++F src/sqlite.h.in fdfae933ad8648defe209a3c155759e5677c23840c84fc7f2a7673bcf39f8b9c
  F src/sqlite3.rc 5121c9e10c3964d5755191c80dd1180c122fc3a8
  F src/sqlite3ext.h 58fd0676d3111d02e62e5a35992a7d3da5d3f88753acc174f2d37b774fbbdd28
 -F src/sqliteInt.h 620093497e54998c6b2a01ad98aed9b561716c3db4bde0cc37c8bf2416200bed
 +F src/sqliteInt.h 37f1a9a3266aa7b11126585314cd98cf11ba6f174b1244de2221270107ea754d
  F src/sqliteLimit.h 1513bfb7b20378aa0041e7022d04acb73525de35b80b252f1b83fedb4de6a76b
  F src/status.c a9e66593dfb28a9e746cba7153f84d49c1ddc4b1
  F src/table.c b46ad567748f24a326d9de40e5b9659f96ffff34
- F src/tclsqlite.c cbf6313f86400acdf7dbf55fcd218cd28d43110a1210967efbc4f250646f81c0
+ F src/tclsqlite.c 2c29b0b76e91edfd1b43bf135c32c8674710089197327682b6b7e6af88062c3d
 -F src/test1.c 735f7711e787f30ad4e0001220c580ce456d9f731e22e0e5f86dd5c7e41ccd4d
 +F src/test1.c 1c0726cdf7389ed053a9b9aa0dc3c63f3b9bbc607a25decae6549682008510b3
  F src/test2.c 3efb99ab7f1fc8d154933e02ae1378bac9637da5
  F src/test3.c b8434949dfb8aff8dfa082c8b592109e77844c2135ed3c492113839b6956255b
  F src/test4.c 18ec393bb4d0ad1de729f0b94da7267270f3d8e6
@@@ -515,11 -473,11 +515,11 @@@ F src/update.c c443935c652af9365e033f75
  F src/utf.c 699001c79f28e48e9bcdf8a463da029ea660540c
  F src/util.c fc081ec6f63448dcd80d3dfad35baecfa104823254a815b081a4d9fe76e1db23
  F src/vacuum.c 874c0f2f15ab2908748297d587d22d485ea96d55aaec91d4775dddb2e24d2ecf
 -F src/vdbe.c 50f4f47bb190099b61fe87e239de17ad00636a522a271dd9b28329053091401d
 +F src/vdbe.c adc8a378710ec2376101483cc8a5f499539ee9bbebfb2a784f3370704d5d44ad
- F src/vdbe.h 70a409d171d4e51b962f0d53abf15c33c404c6aa4c9d62fb3a931b5a62ba9615
- F src/vdbeInt.h a2d03f8b4dd8fc2f80c93b408d54c7c28f696b7156ed6fe2691ae2b58828b72e
- F src/vdbeapi.c c961d8d9e0f52e2df60a6ddbbccd7d99dc4d00103db7e53f77fcef44fbd23178
- F src/vdbeaux.c 09aaf89ef0fd9455ba5f814891e708f66705c9b3b5218fd89b087de59f2e5fb4
+ F src/vdbe.h dde459b1e8a02b8445ecfd5959f38cd5ebb6b0ad392d491d8b159ac8193d231a
 -F src/vdbeInt.h ba7a9436196e693cc51532138ba9431af2716efbc1afe62b03b2724a67853764
++F src/vdbeInt.h 8dd7548d86a98b77b6ed910d8014d0e9e0666356b56f3d16ab7063aad4f102f5
+ F src/vdbeapi.c 899d8f021c89ab348708b3a9b00b855f5ecc3c0f949a75359a61a3c621021281
 -F src/vdbeaux.c 69689a77db511e21dcc38d9acf7226c76861eee0e35f96d7f9f05b39f3fa39b7
++F src/vdbeaux.c 32ff5e8a7226c0bc6df0f214a5cc1a76fcc5d8863c491a800ef3d6f5236feae7
  F src/vdbeblob.c 359891617358deefc85bef7bcf787fa6b77facb9
  F src/vdbemem.c 8d78df62becfd2dce3c317f64b32a94ecaff8346d814bc8b0b877b38a1ad3718
  F src/vdbesort.c f512c68d0bf7e0105316a5594c4329358c8ee9cae3b25138df041d97516c0372
@@@ -1627,7 -1584,7 +1627,8 @@@ F vsixtest/vsixtest.tcl 6a9a6ab600c25a9
  F vsixtest/vsixtest.vcxproj.data 2ed517e100c66dc455b492e1a33350c1b20fbcdc
  F vsixtest/vsixtest.vcxproj.filters 37e51ffedcdb064aad6ff33b6148725226cd608e
  F vsixtest/vsixtest_TemporaryKey.pfx e5b1b036facdb453873e7084e1cae9102ccc67a0
- P adfdb80105c46ac42b71132c80a91dbd5b1c9ff241fb4fbb5d04641a88898d90
- R ef8d689596b1b0f39f6ae35de6ffda86
- U mistachkin
- Z c36edb8fe864971f5a22ea12e57f4f5d
 -P 3fd050c343256c0748256ef183b46df04d9e0da0f81b841dbd336034402b36ab f02a54599de7620438aecd3753199fc52ce8919d7503bb8b2f5592b0e51dbf8c
 -R feb9e70d0a08e3077acee5058fe09cc5
++P 4df6e2476ce93b9ca7a6959c8c2d6ef2c30395984b007d74166031dcf09d54b4 62b8269ba2ff71e2daaa86688698896badd6f6e34ab42fbf92dda7fcda73a230
++R cad4927ca13ab606926228f90825f496
++T +closed 62b8269ba2ff71e2daaa86688698896badd6f6e34ab42fbf92dda7fcda73a230
+ U drh
 -Z 4e60571db7566c33ec3ac14916a90cee
++Z c711a468c88b761fff1a0b845cf3a6be
diff --cc manifest.uuid
index 3efb9e815a49214a02862615d9a02b9b9155de13,6eb67a9fcb4843fc5f2ff443d4c5883cd426e05b..9d2a38e5fb0dd34e24b8fc39dfcef299ff66b333
@@@ -1,1 -1,1 +1,1 @@@
- 4df6e2476ce93b9ca7a6959c8c2d6ef2c30395984b007d74166031dcf09d54b4
 -62b8269ba2ff71e2daaa86688698896badd6f6e34ab42fbf92dda7fcda73a230
++03977248e6fdaa9b35c15e5dd9bb89552f2f0a913cc31609b5af1e2347b67d38
diff --cc src/sqlite.h.in
Simple merge
diff --cc src/vdbeInt.h
index 0efacfbddcde52bbd17572561aae7fe512d51d26,a487e691cfc3bc30df2d9bcd6f7e3d1193162bcf..d8e899b0af27ea5def240ae8a70f9340936d7101
@@@ -390,10 -391,9 +391,9 @@@ struct Vdbe 
    bft usesStmtJournal:1;  /* True if uses a statement journal */
    bft readOnly:1;         /* True for statements that do not write */
    bft bIsReader:1;        /* True for statements that read */
-   bft isPrepareV2:1;      /* True if prepared with prepare_v2() */
    yDbMask btreeMask;      /* Bitmask of db->aDb[] entries referenced */
    yDbMask lockMask;       /* Subset of btreeMask that requires a lock */
 -  u32 aCounter[5];        /* Counters used by sqlite3_stmt_status() */
 +  u32 aCounter[7];        /* Counters used by sqlite3_stmt_status() */
    char *zSql;             /* Text of the SQL statement that generated this */
    void *pFree;            /* Free this when deleting the vdbe */
    VdbeFrame *pFrame;      /* Parent frame */
diff --cc src/vdbeaux.c
index 51622d8a235901003500bf4d9f1609fbdf0d36da,ce4a2f2deddffdc6e2ca078561b9d6f17a92a35c..138b7cb08f3cab14e0b82b2e1dea6ec2fb13e6d2
@@@ -85,11 -83,8 +83,10 @@@ void sqlite3VdbeSwap(Vdbe *pA, Vdbe *pB
    zTmp = pA->zSql;
    pA->zSql = pB->zSql;
    pB->zSql = zTmp;
-   pB->isPrepareV2 = pA->isPrepareV2;
    pB->expmask = pA->expmask;
+   pB->prepFlags = pA->prepFlags;
 +  memcpy(pB->aCounter, pA->aCounter, sizeof(pB->aCounter));
 +  pB->aCounter[SQLITE_STMTSTATUS_REPREPARE]++;
  }
  
  /*