From: drh <> Date: Thu, 25 Aug 2022 15:09:31 +0000 (+0000) Subject: Improved documentation of new features. Minor speed enhancements. X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=aae210884c246ef13c60aee399b7c6bcf049670b;p=thirdparty%2Fsqlite.git Improved documentation of new features. Minor speed enhancements. FossilOrigin-Name: da9aa5476c342ed02a982e81eb8272cb33adb2ed3d0b5df44b2c88b27d80a94c --- diff --git a/manifest b/manifest index c42083e0b3..8757120b3d 100644 --- a/manifest +++ b/manifest @@ -1,5 +1,5 @@ -C Merge\schanges\sfrom\strunk\sinto\sthe\sstmt-cache\sbranch. -D 2022-08-25T14:31:08.104 +C Improved\sdocumentation\sof\snew\sfeatures.\s\sMinor\sspeed\senhancements. +D 2022-08-25T15:09:31.478 F .fossil-settings/empty-dirs dbb81e8fc0401ac46a1491ab34a7f2c7c0452f2f06b54ebb845d024ca8283ef1 F .fossil-settings/ignore-glob 35175cdfcf539b2318cb04a9901442804be81cd677d8b889fcc9149c21f239ea F LICENSE.md df5091916dbb40e6e9686186587125e1b2ff51f022cc334e886c19a0e9982724 @@ -583,14 +583,14 @@ F src/pcache.h 4f87acd914cef5016fae3030343540d75f5b85a1877eed1a2a19b9f284248586 F src/pcache1.c 0b4245cd4964e635f2630908c2533cd8e9da7af3ca592e23ae8730aa25ae5eb9 F src/pragma.c b57a859a366472131194a9ad35cd76d5920577226b04c884b1b9085605faa280 F src/pragma.h e690a356c18e98414d2e870ea791c1be1545a714ba623719deb63f7f226d8bb7 -F src/prepare.c b0fb76a2c82587013410f0e27fcdb2ef5624f036d00179f7fd4f28a52acc0155 +F src/prepare.c 854d8be4d1d1dbd0eb4566e8c8d2df6a458910a078cdef32052759da03412dcf F src/printf.c e99ee9741e79ae3873458146f59644276657340385ade4e76a5f5d1c25793764 F src/random.c 546d6feb15ec69c1aafe9bb351a277cbb498fd5410e646add673acb805714960 F src/resolve.c efea4e5fbecfd6d0a9071b0be0d952620991673391b6ffaaf4c277b0bb674633 F src/rowset.c ba9515a922af32abe1f7d39406b9d35730ed65efab9443dc5702693b60854c92 F src/select.c ccce37e7fbe71089cf6aec91e7134c9c0c1d4840cff9f02587bbc71240d914a5 F src/shell.c.in a1152c45017c9ce634b1616d16ccf530397df1260302fccc7aafee7afe57173a -F src/sqlite.h.in f34d1ca4091c969e1b4b4744839f415c7963618bb10b34bbe1ef6a356ace0840 +F src/sqlite.h.in 24e7d46e187456b778ca8f6e28b194667b80f8a61e4c1a861239a91fd6d3e686 F src/sqlite3.rc 5121c9e10c3964d5755191c80dd1180c122fc3a8 F src/sqlite3ext.h a988810c9b21c0dc36dc7a62735012339dc76fc7ab448fb0792721d30eacb69d F src/sqliteInt.h 71316870f7ef94fd8326d435c2b2fb6a5e374133f128fd8c0132502ad6d18b6f @@ -663,7 +663,7 @@ F src/vacuum.c bb346170b0b54c6683bba4a5983aea40485597fdf605c87ec8bc2e199fe88cd8 F src/vdbe.c 710b82c1380f63ec902ebd147426f3c307031f8ecabc8d15019d9461f5e608d9 F src/vdbe.h c4c9defdf2ad9465f9c9c7f79c3b03555f47aa930ea2744f358d9b27269763c7 F src/vdbeInt.h e332f7d165b2cb984772c425c45f67f1d57e3c032d8dbf74a9ef8f1cebfa4bb2 -F src/vdbeapi.c 8087dba84836f59d0d5340a6c554948cf4fef03ace62a8d7dd3c8f310107e3f4 +F src/vdbeapi.c ba51a59b3c0ecbf76f337de087089986464da83d1bf42b4fdebef8d74de173b2 F src/vdbeaux.c 7e682b9cae69e3801d2c04fefe2c80b40e5fcca470a4e11aa53342e2218aa1ab F src/vdbeblob.c 5e61ce31aca17db8fb60395407457a8c1c7fb471dde405e0cd675974611dcfcd F src/vdbemem.c c3ce80af15e2ff5c2824a8db881681cbf511376f13613da020bac6d320c535b1 @@ -1480,7 +1480,7 @@ F test/speed3.test 694affeb9100526007436334cf7d08f3d74b85ef F test/speed4.test abc0ad3399dcf9703abed2fff8705e4f8e416715 F test/speed4p.explain 6b5f104ebeb34a038b2f714150f51d01143e59aa F test/speed4p.test 377a0c48e5a92e0b11c1c5ebb1bc9d83a7312c922bc0cb05970ef5d6a96d1f0c -F test/speedtest1.c ace4f2f7053d01237d41ab3a9baaf785eab1f22457bdc0113a41d573a506d2c5 +F test/speedtest1.c 03ccd2f44375e8bba87307a2dd8363666863bc790e8065eb0f248734f9d1c3b5 F test/spellfix.test 951a6405d49d1a23d6b78027d3877b4a33eeb8221dcab5704b499755bb4f552e F test/spellfix2.test dfc8f519a3fc204cb2dfa8b4f29821ae90f6f8c3 F test/spellfix3.test 0f9efaaa502a0e0a09848028518a6fb096c8ad33 @@ -1999,8 +1999,8 @@ F vsixtest/vsixtest.tcl 6a9a6ab600c25a91a7acc6293828957a386a8a93 F vsixtest/vsixtest.vcxproj.data 2ed517e100c66dc455b492e1a33350c1b20fbcdc F vsixtest/vsixtest.vcxproj.filters 37e51ffedcdb064aad6ff33b6148725226cd608e F vsixtest/vsixtest_TemporaryKey.pfx e5b1b036facdb453873e7084e1cae9102ccc67a0 -P f27d919f3535f2be6642a02cf03cee82c66ff9d1e727f0c59c137f2a7f1d00c9 b573e2cffa5fedc893ed30e76e47022b3617ac5583e1eb486afa810b2514c419 -R 9ddf7c40e99be489cef09c513ec54859 +P bc988ce727bee0c7ac6406b5c9af486e353f1adf1e13b11ba0ac963fbea1f14e +R 106785cda7dd4d7af6095b8bee2a42e4 U drh -Z 211dd9491c987a5bb9a73f943c47afcb +Z 4294eb959363fd31723c3a3dd06c12cb # Remove this line to create a well-formed Fossil manifest. diff --git a/manifest.uuid b/manifest.uuid index df79737df2..5c480713a0 100644 --- a/manifest.uuid +++ b/manifest.uuid @@ -1 +1 @@ -bc988ce727bee0c7ac6406b5c9af486e353f1adf1e13b11ba0ac963fbea1f14e \ No newline at end of file +da9aa5476c342ed02a982e81eb8272cb33adb2ed3d0b5df44b2c88b27d80a94c \ No newline at end of file diff --git a/src/prepare.c b/src/prepare.c index 355703e2af..5fd39e83cc 100644 --- a/src/prepare.c +++ b/src/prepare.c @@ -712,16 +712,20 @@ static int sqlite3Prepare( } } - /* 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!=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; + } } - sParse.disableVtab = (prepFlags & SQLITE_PREPARE_NO_VTAB)!=0; /* 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 --git a/src/sqlite.h.in b/src/sqlite.h.in index 8ebf904cb9..b52cad8082 100644 --- a/src/sqlite.h.in +++ b/src/sqlite.h.in @@ -8614,6 +8614,15 @@ int sqlite3_stmt_status(sqlite3_stmt*, int op,int resetFlg); ** times that the Bloom filter returned a find, and thus the join step ** had to be processed as normal. ** +** [[SQLITE_STMTSTATUS_STATE]]
SQLITE_STMTSTATUS_STATE
+**
During its lifetime, a prepare statement transitions through +** various "states". This interface returns the current state of the +** prepared statement, as an integer. This information is intended +** for use by SQLite core developers only. The internal state numbers +** for prepared statements can and do change from one release of +** SQLite to the next. Hence the value returned for this property +** code can change from one release of SQLite to the next. +** ** [[SQLITE_STMTSTATUS_MEMUSED]]
SQLITE_STMTSTATUS_MEMUSED
**
^This is the approximate number of bytes of heap memory ** used to store the prepared statement. ^This value is not actually diff --git a/src/vdbeapi.c b/src/vdbeapi.c index f42d8ca6f3..613d118610 100644 --- a/src/vdbeapi.c +++ b/src/vdbeapi.c @@ -110,8 +110,7 @@ int sqlite3_finalize(sqlite3_stmt *pStmt){ checkProfileCallback(db, v); assert( v->eVdbeState>=VDBE_READY_STATE ); rc = sqlite3VdbeReset(v); - if( rc==SQLITE_OK - && v->hSql>0 + if( v->hSql>0 && db->mxCache>0 && v->expired==0 ){ diff --git a/test/speedtest1.c b/test/speedtest1.c index 2f87809f22..b565da57b6 100644 --- a/test/speedtest1.c +++ b/test/speedtest1.c @@ -67,6 +67,10 @@ static const char zHelp[] = # define sqlite3_int64 sqlite_int64 #endif +#ifndef SQLITE_PREPARE_CACHE +# define SQLITE_PREPARE_CACHE 0x40000000 +#endif + typedef sqlite3_uint64 u64; /*