]> git.ipfire.org Git - thirdparty/sqlite.git/commitdiff
Merge the Parse.prepFlags change from trunk. stmt-cache
authordrh <>
Sat, 1 Oct 2022 13:28:04 +0000 (13:28 +0000)
committerdrh <>
Sat, 1 Oct 2022 13:28:04 +0000 (13:28 +0000)
FossilOrigin-Name: c8d77f398099f357bed0aab10f066c6b26ba4ad8ffd68bb7b4465c0c4999599b

1  2 
manifest
manifest.uuid
src/build.c
src/prepare.c
src/sqliteInt.h
src/trigger.c

diff --cc manifest
index 933838950bd92ee7ec63b42d0fd5c9cd1b1d8556,1bac28833eeca5a016ce11920d0c4f350e2f7bf4..6e3d77315e2452c6dbaa3b612499dcac8b2270a3
+++ b/manifest
@@@ -1,5 -1,5 +1,5 @@@
- C Merge\sthe\slatest\strunk\senhancements\sinto\sthe\sstmt-cache\sbranch.
- D 2022-10-01T12:00:39.143
 -C Replace\sthe\sParse.disableVtab\sfield\swith\sParse.prepFlags\sfor\sincreased\ngenerality,\sa\ssmall\ssize\sreduction,\sand\sa\ssmall\sperformance\sincrease.
 -D 2022-10-01T13:17:53.450
++C Merge\sthe\sParse.prepFlags\schange\sfrom\strunk.
++D 2022-10-01T13:28:04.924
  F .fossil-settings/empty-dirs dbb81e8fc0401ac46a1491ab34a7f2c7c0452f2f06b54ebb845d024ca8283ef1
  F .fossil-settings/ignore-glob 35175cdfcf539b2318cb04a9901442804be81cd677d8b889fcc9149c21f239ea
  F LICENSE.md df5091916dbb40e6e9686186587125e1b2ff51f022cc334e886c19a0e9982724
@@@ -531,7 -531,7 +531,7 @@@ F src/btmutex.c 6ffb0a22c19e2f9110be096
  F src/btree.c ef9c126d6dc5dff8ff76abc807dfef5b8aac42144e3be11cbcd9cb6eaecef580
  F src/btree.h 74d64b8f28cfa4a894d14d4ed64fa432cd697b98b61708d4351482ae15913e22
  F src/btreeInt.h 8ce1332edd89dfd2461d561ac10a0ab5601c8e06200cb5230596c3caaf54482e
- F src/build.c d98a676b23b87362a2f9f4c91443d48638143a913f39ebe54bd50ac896af9d2b
 -F src/build.c 6e3ee380a4f0ff95de4b53bf510f66600cff08e4e04b92e95fae789072563f8f
++F src/build.c 50cf41a7710c5ebfd22e4a233d359598a10e62f55b984fa91c85b883b2e27d37
  F src/callback.c 4cd7225b26a97f7de5fee5ae10464bed5a78f2adefe19534cc2095b3a8ca484a
  F src/complete.c a3634ab1e687055cd002e11b8f43eb75c17da23e
  F src/ctime.c 93e4b5f4faf6d3f688988a116773259a4fbfb4ddac0e9bf9d0ae0429390c2543
@@@ -583,17 -583,17 +583,17 @@@ F src/pcache.h 4f87acd914cef5016fae3030
  F src/pcache1.c dee95e3cd2b61e6512dc814c5ab76d5eb36f0bfc9441dbb4260fccc0d12bbddc
  F src/pragma.c 9bf7d8a2a9ad3bc36df3ec0d61817a44c38a1da527d59c26c203047f906e334a
  F src/pragma.h e690a356c18e98414d2e870ea791c1be1545a714ba623719deb63f7f226d8bb7
- F src/prepare.c 854d8be4d1d1dbd0eb4566e8c8d2df6a458910a078cdef32052759da03412dcf
 -F src/prepare.c 0e61df99f063f12896a89c893fd3f8868e9fb13252c05e3e4e8cea7422094d0a
++F src/prepare.c fbcfdd127ec6e0e011da7f31b9b30dfd70d520ce3f6b2e6c27d3e7904d0faea1
  F src/printf.c e99ee9741e79ae3873458146f59644276657340385ade4e76a5f5d1c25793764
  F src/random.c 546d6feb15ec69c1aafe9bb351a277cbb498fd5410e646add673acb805714960
  F src/resolve.c efea4e5fbecfd6d0a9071b0be0d952620991673391b6ffaaf4c277b0bb674633
  F src/rowset.c ba9515a922af32abe1f7d39406b9d35730ed65efab9443dc5702693b60854c92
  F src/select.c bb18acf4eded647fef88d4d543c673874dbebff516fbeba90a85e6c13f2a58cd
 -F src/shell.c.in e7e7c2c69ae86c5ee9e8ad66227203d46ff6dce8700a1b1dababff01c71d33df
 -F src/sqlite.h.in b9b7fd73239d94db20332bb6e504688001e5564b655e1318a4427a1caef4b99e
 +F src/shell.c.in a1152c45017c9ce634b1616d16ccf530397df1260302fccc7aafee7afe57173a
 +F src/sqlite.h.in 24e7d46e187456b778ca8f6e28b194667b80f8a61e4c1a861239a91fd6d3e686
  F src/sqlite3.rc 5121c9e10c3964d5755191c80dd1180c122fc3a8
  F src/sqlite3ext.h a988810c9b21c0dc36dc7a62735012339dc76fc7ab448fb0792721d30eacb69d
- F src/sqliteInt.h e36fd302825814dcf8cab7ecdd4fd98bf20a00a5e3fdff2cedb7bbed22ac0cf2
 -F src/sqliteInt.h 7571703e6d11cd0e0283be68e9b6baceefedf10e3bbac5869d12183e031c5254
++F src/sqliteInt.h 89f957680385f5725ec701ec94b41274d6d77ef25feb96fcda67a0aa545badb4
  F src/sqliteLimit.h d7323ffea5208c6af2734574bae933ca8ed2ab728083caa117c9738581a31657
  F src/status.c 160c445d7d28c984a0eae38c144f6419311ed3eace59b44ac6dafc20db4af749
  F src/table.c 0f141b58a16de7e2fbe81c308379e7279f4c6b50eb08efeec5892794a0ba30d1
@@@ -654,7 -654,7 +654,7 @@@ F src/test_wsd.c 41cadfd9d97fe8e3e4e44f
  F src/threads.c 4ae07fa022a3dc7c5beb373cf744a85d3c5c6c3c
  F src/tokenize.c 1305797eab3542a0896b552c6e7669c972c1468e11e92b370533c1f37a37082b
  F src/treeview.c 07787f67cd297a6d09d04b8d70c06769c60c9c1d9080378f93929c16f8fd3298
- F src/trigger.c 0febd48275c0880c7667d3b5e9b29190bbb6c67d0684c9d6ac20b3ddd2cb9087
 -F src/trigger.c 4163ada044af89d51caba1cb713a73165347b2ec05fe84a283737c134d61fcd5
++F src/trigger.c 78dd02836a0559e41321318668f6f0c266b27cc172d1676879431765b27720c5
  F src/update.c c52a7991bece0453d22c77c08469512ee2f1391c12503fd347d1c939220c5877
  F src/upsert.c 8789047a8f0a601ea42fa0256d1ba3190c13746b6ba940fe2d25643a7e991937
  F src/utf.c ee39565f0843775cc2c81135751ddd93eceb91a673ea2c57f61c76f288b041a0
@@@ -2000,8 -2000,8 +2000,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 7763b98b36bec186c5cc4a06382ee424fe9c7f401c70858fdfa490baa4bf437c bd8ae5febbb8d3122f1e2e09b9fcdd6ac20c075ae1cf60bcdbd36080f3736417
- R 2e0f74f4322eb619c54e2beae0797d28
 -P bd8ae5febbb8d3122f1e2e09b9fcdd6ac20c075ae1cf60bcdbd36080f3736417
 -R b431f195d6909dd213769258d329fb1f
++P 7812aea6ea2a922599970cd56933dadaa340bcf40781701844f62456772501c2 b7da0bcdf70e53ab1ec00a0694e17c7429e23bc6eb3f39b622d06a930aa2f6a3
++R 4fea9345ef5af6b4a81a531a14cab26b
  U drh
- Z 8818f780176759b6e09c9a060a24ea3c
 -Z 5ff8e8c9111016b6f28cef573224105e
++Z a63cbed431bd786ee17d13092323f381
  # Remove this line to create a well-formed Fossil manifest.
diff --cc manifest.uuid
index d5abc6225aaaacb4471ae5521efa0b8a23816bc5,ceab8edde45c101f5d71b05f58005e3957096686..73a0bb8c63debd79757b1a19d712c6ed64a94868
@@@ -1,1 -1,1 +1,1 @@@
- 7812aea6ea2a922599970cd56933dadaa340bcf40781701844f62456772501c2
 -b7da0bcdf70e53ab1ec00a0694e17c7429e23bc6eb3f39b622d06a930aa2f6a3
++c8d77f398099f357bed0aab10f066c6b26ba4ad8ffd68bb7b4465c0c4999599b
diff --cc src/build.c
Simple merge
diff --cc src/prepare.c
index 5fd39e83cca5d488305afd610be224f20d1415ed,cd90bc4badbf56f348021fa2a3adcbdddb3e37ea..46cc54ac44b5a386e4654646089a0d3dcb592aaf
@@@ -699,33 -698,14 +699,27 @@@ static int sqlite3Prepare
    if( db->mallocFailed ) sqlite3ErrorMsg(&sParse, "out of memory");
    assert( sqlite3_mutex_held(db->mutex) );
  
-   if( prepFlags!=0 ){
-     /* For a long-term use prepared statement should avoid the use of
-     ** lookaside memory.
-     */
-     if( prepFlags & (SQLITE_PREPARE_PERSISTENT|SQLITE_PREPARE_CACHE) ){
-       testcase( prepFlags & SQLITE_PREPARE_PERSISTENT );
-       testcase( prepFlags & SQLITE_PREPARE_CACHE );
-       sParse.disableLookaside++;
-       DisableLookaside;
-     }
-     if( prepFlags & SQLITE_PREPARE_NO_VTAB ){
-       sParse.disableVtab = 1;
-     }
 +  if( db->nCache>0 ){
 +    Vdbe *pCache;
 +    if( nBytes<0 ) nBytes = sqlite3Strlen30(zSql);
 +    pCache = sqlite3VdbeFindInStmtCache(db, zSql, nBytes, &hSql);
 +    if( pCache ){
 +      *ppStmt = (sqlite3_stmt*)pCache;
 +      if( pzTail ){
 +        *pzTail = &zSql[nBytes];
 +      }
 +      goto end_prepare;
 +    }
 +  }
 +
 -  if( prepFlags & SQLITE_PREPARE_PERSISTENT ){
+   /* For a long-term use prepared statement avoid the use of
+   ** lookaside memory.
+   */
++  if( prepFlags & (SQLITE_PREPARE_PERSISTENT|SQLITE_PREPARE_CACHE) ){
+     sParse.disableLookaside++;
+     DisableLookaside;
    }
+   sParse.prepFlags = prepFlags & 0xff;
  
    /* Check to verify that it is possible to get a read lock on all
    ** database schemas.  The inability to get a read lock indicates that
diff --cc src/sqliteInt.h
Simple merge
diff --cc src/trigger.c
Simple merge