From: drh <> Date: Mon, 18 Mar 2024 18:00:17 +0000 (+0000) Subject: Add the "VALUES-as-coroutine" optimization. Large VALUES clauses on an X-Git-Tag: version-3.46.0~123 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=43a511927d1656ae73fdb808abdbc61d836b9668;p=thirdparty%2Fsqlite.git Add the "VALUES-as-coroutine" optimization. Large VALUES clauses on an INSERT, for example, prepare and run in about half the time and with half the memory. This check-in also includes enhancements to the internal sqlite3ExprIsConstant() routine to recognize pure SQL functions as constant if they have constant arguments. FossilOrigin-Name: a120c9235f125e05be494038c16a9dd326fd79837698bef17e7879cd0cd75831 --- 43a511927d1656ae73fdb808abdbc61d836b9668 diff --cc manifest index 345be73124,1e94c6c964..55bb6354bf --- a/manifest +++ b/manifest @@@ -1,5 -1,5 +1,5 @@@ - C New\soptions\sfor\stestrunner.tcl:\s\s--stop-on-error\sand\s--stop-on-coredump. - D 2024-03-15T17:57:58.502 -C Fix\sharmless\scompiler\s(scan-build)\swarnings. -D 2024-03-18T17:13:52.924 ++C Add\sthe\s"VALUES-as-coroutine"\soptimization.\s\sLarge\sVALUES\sclauses\son\san\nINSERT,\sfor\sexample,\sprepare\sand\srun\sin\sabout\shalf\sthe\stime\sand\swith\shalf\nthe\smemory.\s\sThis\scheck-in\salso\sincludes\senhancements\sto\sthe\sinternal\nsqlite3ExprIsConstant()\sroutine\sto\srecognize\spure\sSQL\sfunctions\sas\sconstant\nif\sthey\shave\sconstant\sarguments. ++D 2024-03-18T18:00:17.106 F .fossil-settings/empty-dirs dbb81e8fc0401ac46a1491ab34a7f2c7c0452f2f06b54ebb845d024ca8283ef1 F .fossil-settings/ignore-glob 35175cdfcf539b2318cb04a9901442804be81cd677d8b889fcc9149c21f239ea F LICENSE.md df5091916dbb40e6e9686186587125e1b2ff51f022cc334e886c19a0e9982724 @@@ -2177,8 -2179,8 +2179,9 @@@ F vsixtest/vsixtest.tcl 6a9a6ab600c25a9 F vsixtest/vsixtest.vcxproj.data 2ed517e100c66dc455b492e1a33350c1b20fbcdc F vsixtest/vsixtest.vcxproj.filters 37e51ffedcdb064aad6ff33b6148725226cd608e F vsixtest/vsixtest_TemporaryKey.pfx e5b1b036facdb453873e7084e1cae9102ccc67a0 - P ce009205a8edc02b7d45ac01bd0e692c3d2c3ffeadb68e4f1bad20c39075e692 - R 6f65d3d8f9136f71ba32b06be27a8871 -P 9a47ea7f0f675f7bf4710901487ce34c7689e618cd1d8b9f94f0ff7ebc3f2841 -R 99b0c172599c8a90caf2454e462eb6ef ++P 82035b9cfd28ef6b0ecc6f469f03d2b001189aa4925147cdb784b6b1964eb3b2 c86f9f2a15ffc726b7f0d9bba5a8c4dfdaeea6a297e0b591c554fff3d1fe6e1c ++R d086636689a6bb7c4b198edffb3a7c63 ++T +closed c86f9f2a15ffc726b7f0d9bba5a8c4dfdaeea6a297e0b591c554fff3d1fe6e1c U drh - Z 3ec0c84d38eb2a8a3a9b0c26445e8068 -Z e6f67e954fdd4f797f1644f6604d7595 ++Z 48e8dd6fe42c5583ed5ba3f909ede536 # Remove this line to create a well-formed Fossil manifest. diff --cc manifest.uuid index 39c5e3d4e3,7f56713a39..82d6efaeee --- a/manifest.uuid +++ b/manifest.uuid @@@ -1,1 -1,1 +1,1 @@@ - 82035b9cfd28ef6b0ecc6f469f03d2b001189aa4925147cdb784b6b1964eb3b2 -c86f9f2a15ffc726b7f0d9bba5a8c4dfdaeea6a297e0b591c554fff3d1fe6e1c ++a120c9235f125e05be494038c16a9dd326fd79837698bef17e7879cd0cd75831