]> git.ipfire.org Git - thirdparty/sqlite.git/commitdiff
When applying the omit-ORDER-BY optimization, defer deleting the AST of
authordrh <>
Thu, 14 Jul 2022 01:48:27 +0000 (01:48 +0000)
committerdrh <>
Thu, 14 Jul 2022 01:48:27 +0000 (01:48 +0000)
the deleted ORDER BY clause until after code generation ends.

FossilOrigin-Name: f22f95b838873f1d2a320afe3d0f4e4847948fcd343097b93a9f684a6f66d6ba

manifest
manifest.uuid
src/select.c

index 4f0f66658418cf7e6b5590ae1c88ed2cebc2bd1f..a3df518eea6161d3197a07bc7f35b99dfe014d11 100644 (file)
--- a/manifest
+++ b/manifest
@@ -1,5 +1,5 @@
-C Fix\stestrunner.tcl\sso\sthat\sit\scan\sdetect\sthe\snumber\sof\slogical\scores\son\sosx.
-D 2022-07-13T21:28:19.394
+C When\sapplying\sthe\somit-ORDER-BY\soptimization,\sdefer\sdeleting\sthe\sAST\sof\nthe\sdeleted\sORDER\sBY\sclause\suntil\safter\scode\sgeneration\sends.
+D 2022-07-14T01:48:27.069
 F .fossil-settings/empty-dirs dbb81e8fc0401ac46a1491ab34a7f2c7c0452f2f06b54ebb845d024ca8283ef1
 F .fossil-settings/ignore-glob 35175cdfcf539b2318cb04a9901442804be81cd677d8b889fcc9149c21f239ea
 F LICENSE.md df5091916dbb40e6e9686186587125e1b2ff51f022cc334e886c19a0e9982724
@@ -570,7 +570,7 @@ F src/printf.c 6166a30417b05c5b2f82e1f183f75faa2926ad60531c0b688a57dbc951441a20
 F src/random.c 097dc8b31b8fba5a9aca1697aeb9fd82078ec91be734c16bffda620ced7ab83c
 F src/resolve.c 84a8443e3723e908730d754f54df4e1dacc1eb7073c0bd79c9d5efe977a9f5b9
 F src/rowset.c ba9515a922af32abe1f7d39406b9d35730ed65efab9443dc5702693b60854c92
-F src/select.c 01e5099d4fc15f84a38e3b439b27cdb2d62e4bb138cbcaf835dd46386f8fd82c
+F src/select.c 45b93eee3c349f46240ddc14344365bbf34579ec332bd4c7bc061945e38172e2
 F src/shell.c.in 29749b34bbd19d0004fdb6f61f62659096e1c0b4dfb1ad2314e7fafbe9dd8d37
 F src/sqlite.h.in 01573eae96721f2a8ee2a9e3b7140ceeba2e9c44350911890b89b8ff0dcf6781
 F src/sqlite3.rc 5121c9e10c3964d5755191c80dd1180c122fc3a8
@@ -1981,8 +1981,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 e4f9cb01d790c27394cc021e7d4a16f4d5feda2d2493abd82e9660d7e6e9fec0
-R 9a0d40a26ff73e3e7c23af9cf6fe1abf
-U dan
-Z 0c6e6152833b38a594a27d8bd483ee08
+P 14918f28221a3124b78a490fbb483279551ccc5a0032ea854ff0ac365684cc60
+R d2c6af8b43cf81f08214974216426964
+U drh
+Z 663440ae7ea06bca4d8f20ca5b3783d1
 # Remove this line to create a well-formed Fossil manifest.
index b38d313dcb6c3fab5be4195e96400395ad6e529c..492441186520805c21dd5436158dc8d97f433be6 100644 (file)
@@ -1 +1 @@
-14918f28221a3124b78a490fbb483279551ccc5a0032ea854ff0ac365684cc60
\ No newline at end of file
+f22f95b838873f1d2a320afe3d0f4e4847948fcd343097b93a9f684a6f66d6ba
\ No newline at end of file
index d712cc3ee65cdfab2887c5623f43213166669189..90ba47fa8ae408f4b89a9fc948a3bec453d58069 100644 (file)
@@ -6834,7 +6834,9 @@ int sqlite3Select(
     ){
       SELECTTRACE(0x100,pParse,p,
                 ("omit superfluous ORDER BY on %r FROM-clause subquery\n",i+1));
-      sqlite3ExprListDelete(db, pSub->pOrderBy);
+      sqlite3ParserAddCleanup(pParse, 
+         (void(*)(sqlite3*,void*))sqlite3ExprListDelete,
+         pSub->pOrderBy);
       pSub->pOrderBy = 0;
     }