]> git.ipfire.org Git - thirdparty/sqlite.git/commitdiff
When converting a NATURAL JOIN into a JOIN USING, make sure to insert the
authordrh <>
Mon, 18 Apr 2022 00:04:15 +0000 (00:04 +0000)
committerdrh <>
Mon, 18 Apr 2022 00:04:15 +0000 (00:04 +0000)
name correctly into the IdList even if it is a wierd quoted name.

FossilOrigin-Name: e62156b696f2496e2697cb3b46f136551b58644e2a5824aa3d759596694b2f4b

manifest
manifest.uuid
src/select.c

index f0c9f00d2b95474db8cc9a1d363e1ea1590218f6..e68f297a3ce9885c3d0f8eeae233a1245591f750 100644 (file)
--- a/manifest
+++ b/manifest
@@ -1,5 +1,5 @@
-C Fix\sto\sthe\slogic\sthat\scomputes\scoalesc()\sfunctions\sto\sresolve\sUSING\sterms.
-D 2022-04-17T23:46:18.306
+C When\sconverting\sa\sNATURAL\sJOIN\sinto\sa\sJOIN\sUSING,\smake\ssure\sto\sinsert\sthe\nname\scorrectly\sinto\sthe\sIdList\seven\sif\sit\sis\sa\swierd\squoted\sname.
+D 2022-04-18T00:04:15.097
 F .fossil-settings/empty-dirs dbb81e8fc0401ac46a1491ab34a7f2c7c0452f2f06b54ebb845d024ca8283ef1
 F .fossil-settings/ignore-glob 35175cdfcf539b2318cb04a9901442804be81cd677d8b889fcc9149c21f239ea
 F LICENSE.md df5091916dbb40e6e9686186587125e1b2ff51f022cc334e886c19a0e9982724
@@ -552,7 +552,7 @@ F src/printf.c 05d8dfd2018bc4fc3ddb8b37eb97ccef7abf985643fa1caebdcf2916ca90fa32
 F src/random.c 097dc8b31b8fba5a9aca1697aeb9fd82078ec91be734c16bffda620ced7ab83c
 F src/resolve.c c6591eb339fb21e907485020cb2b7967a6ebd61533bec8841fb12d154e99a7fa
 F src/rowset.c ba9515a922af32abe1f7d39406b9d35730ed65efab9443dc5702693b60854c92
-F src/select.c 1d0c3aece7221fb1e5b10f636eed074ee1318d7bb93e1029004d84447f825562
+F src/select.c fcfa9e78068a9b7e7e8ae5e99dd9ad67b494f8af494c83d608e22bf3a24dc1a2
 F src/shell.c.in eb7f10d5e2c47bd014d92ec5db1def21fcc1ed56ffaaa4ee715b6c37c370b47f
 F src/sqlite.h.in 2a35f62185eb5e7ecc64a2f68442b538ce9be74f80f28a00abc24837edcf1c17
 F src/sqlite3.rc 5121c9e10c3964d5755191c80dd1180c122fc3a8
@@ -1948,8 +1948,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 71abe5641f599f27d1f0c800f6182e1168909f8aa99389b835b07d4b5f5483eb
-R 8fb229091ea6e9ef20c8b036edcf4ea5
+P 20388548d868511f8c8437718985d75fe9801835811fec716f1700727b9aa367
+R 47315d601cc104e0c12b223bfb8b1dba
 U drh
-Z aeae6fd254922cd510b69a69105d63ce
+Z 7934b697ad8bfcf0f014801a6142f07d
 # Remove this line to create a well-formed Fossil manifest.
index c53f6ff17d26bf23a7459c59079cd7fab0a52edb..77981c4449d7bdd2f9df4a1e73aafbaac1e24543 100644 (file)
@@ -1 +1 @@
-20388548d868511f8c8437718985d75fe9801835811fec716f1700727b9aa367
\ No newline at end of file
+e62156b696f2496e2697cb3b46f136551b58644e2a5824aa3d759596694b2f4b
\ No newline at end of file
index db41172098d43af163a263ce5a8f5826e3220fa5..b41a44cff15c813a9ce0f8bad58a839ebb5cd2c4 100644 (file)
@@ -483,10 +483,12 @@ static int sqlite3ProcessJoin(Parse *pParse, Select *p){
         if( IsHiddenColumn(&pRightTab->aCol[j]) ) continue;
         zName = pRightTab->aCol[j].zCnName;
         if( tableAndColumnIndex(pSrc, 0, i, zName, 0, 0, 1) ){
-          Token x;
-          x.z = zName;
-          x.n = sqlite3Strlen30(zName);
-          pUsing = sqlite3IdListAppend(pParse, pUsing, &x);
+          pUsing = sqlite3IdListAppend(pParse, pUsing, 0);
+          if( pUsing ){
+            assert( pUsing->nId>0 );
+            assert( pUsing->a[pUsing->nId-1].zName==0 );
+            pUsing->a[pUsing->nId-1].zName = sqlite3DbStrDup(pParse->db, zName);
+          }
         }
       }
       if( pUsing ){