From: drh <> Date: Sat, 1 Oct 2022 20:27:29 +0000 (+0000) Subject: Performance optimization in sqlite3_prepare() (discovered while working X-Git-Tag: version-3.40.0~185 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=7d34b8d6281c942382765f94e860a1e4f7d3a043;p=thirdparty%2Fsqlite.git Performance optimization in sqlite3_prepare() (discovered while working on the stmt-cache branch). FossilOrigin-Name: cd494240cc6184bb028d1f1049086f57c0a71a43d7ed1405fd4205240e1b9e61 --- diff --git a/manifest b/manifest index 1bac28833e..3c60d28601 100644 --- a/manifest +++ b/manifest @@ -1,5 +1,5 @@ -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 Performance\soptimization\sin\ssqlite3_prepare()\s(discovered\swhile\sworking\non\sthe\sstmt-cache\sbranch). +D 2022-10-01T20:27:29.944 F .fossil-settings/empty-dirs dbb81e8fc0401ac46a1491ab34a7f2c7c0452f2f06b54ebb845d024ca8283ef1 F .fossil-settings/ignore-glob 35175cdfcf539b2318cb04a9901442804be81cd677d8b889fcc9149c21f239ea F LICENSE.md df5091916dbb40e6e9686186587125e1b2ff51f022cc334e886c19a0e9982724 @@ -583,7 +583,7 @@ F src/pcache.h 4f87acd914cef5016fae3030343540d75f5b85a1877eed1a2a19b9f284248586 F src/pcache1.c dee95e3cd2b61e6512dc814c5ab76d5eb36f0bfc9441dbb4260fccc0d12bbddc F src/pragma.c 9bf7d8a2a9ad3bc36df3ec0d61817a44c38a1da527d59c26c203047f906e334a F src/pragma.h e690a356c18e98414d2e870ea791c1be1545a714ba623719deb63f7f226d8bb7 -F src/prepare.c 0e61df99f063f12896a89c893fd3f8868e9fb13252c05e3e4e8cea7422094d0a +F src/prepare.c 1b02be0441eda4579471fea097f678effcbb77ef0c39ab3f703c837822bcd674 F src/printf.c e99ee9741e79ae3873458146f59644276657340385ade4e76a5f5d1c25793764 F src/random.c 546d6feb15ec69c1aafe9bb351a277cbb498fd5410e646add673acb805714960 F src/resolve.c efea4e5fbecfd6d0a9071b0be0d952620991673391b6ffaaf4c277b0bb674633 @@ -2000,8 +2000,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 bd8ae5febbb8d3122f1e2e09b9fcdd6ac20c075ae1cf60bcdbd36080f3736417 -R b431f195d6909dd213769258d329fb1f +P b7da0bcdf70e53ab1ec00a0694e17c7429e23bc6eb3f39b622d06a930aa2f6a3 +R 68c35546ee03b20dc6a84c9cc1198497 U drh -Z 5ff8e8c9111016b6f28cef573224105e +Z a1645f59fc204ccbfb7697554bfc7188 # Remove this line to create a well-formed Fossil manifest. diff --git a/manifest.uuid b/manifest.uuid index ceab8edde4..5c99b340dd 100644 --- a/manifest.uuid +++ b/manifest.uuid @@ -1 +1 @@ -b7da0bcdf70e53ab1ec00a0694e17c7429e23bc6eb3f39b622d06a930aa2f6a3 \ No newline at end of file +cd494240cc6184bb028d1f1049086f57c0a71a43d7ed1405fd4205240e1b9e61 \ No newline at end of file diff --git a/src/prepare.c b/src/prepare.c index cd90bc4bad..1e7a1222ba 100644 --- a/src/prepare.c +++ b/src/prepare.c @@ -746,7 +746,9 @@ static int sqlite3Prepare( } } - sqlite3VtabUnlockList(db); +#ifndef SQLITE_OMIT_VIRTUALTABLE + if( db->pDisconnect ) sqlite3VtabUnlockList(db); +#endif if( nBytes>=0 && (nBytes==0 || zSql[nBytes-1]!=0) ){ char *zSqlCopy;