]> git.ipfire.org Git - thirdparty/sqlite.git/commitdiff
Fix a name resolution issue with CTEs. srcitem-opt
authordrh <>
Tue, 20 Aug 2024 22:44:40 +0000 (22:44 +0000)
committerdrh <>
Tue, 20 Aug 2024 22:44:40 +0000 (22:44 +0000)
FossilOrigin-Name: 4fa8235dd59cd683d6c6c97bfe181a9637be7c054d435323c903b9dbd74aff02

manifest
manifest.uuid
src/select.c
test/with2.test

index 72fecdb486cfe720cf39637b18bc85b150ef5a6b..7ee60fbf49e82bb447ec552bc56f2ede89d2c85d 100644 (file)
--- a/manifest
+++ b/manifest
@@ -1,5 +1,5 @@
-C Fix\sminor\scomment\sissues.
-D 2024-08-20T22:05:01.213
+C Fix\sa\sname\sresolution\sissue\swith\sCTEs.
+D 2024-08-20T22:44:40.653
 F .fossil-settings/empty-dirs dbb81e8fc0401ac46a1491ab34a7f2c7c0452f2f06b54ebb845d024ca8283ef1
 F .fossil-settings/ignore-glob 35175cdfcf539b2318cb04a9901442804be81cd677d8b889fcc9149c21f239ea
 F LICENSE.md df5091916dbb40e6e9686186587125e1b2ff51f022cc334e886c19a0e9982724
@@ -760,7 +760,7 @@ F src/printf.c 6a87534ebfb9e5346011191b1f3a7ebc457f5938c7e4feeea478ecf53f6a41b2
 F src/random.c 606b00941a1d7dd09c381d3279a058d771f406c5213c9932bbd93d5587be4b9c
 F src/resolve.c 9afed5fd7b9111633bdb74a73cdc47324e28e4dc6c27113e3e9aee38fb9422ab
 F src/rowset.c 8432130e6c344b3401a8874c3cb49fefe6873fec593294de077afea2dce5ec97
-F src/select.c 6f1651ca254a6856c2ec5b8a0188bc226e7a454d6741d3f71ebcd631ce147807
+F src/select.c c1c28650d3ea5dc0670dd658600b963c29a5c31b685941a5df583b02631d04ff
 F src/shell.c.in 94571558b0fb28c37a5cf6dbd6ea27285341023a28a8cb5795cd2768fab67704
 F src/sqlite.h.in 1ad9110150773c38ebababbad11b5cb361bcd3997676dec1c91ac5e0416a7b86
 F src/sqlite3.rc 5121c9e10c3964d5755191c80dd1180c122fc3a8
@@ -2070,7 +2070,7 @@ F test/windowerr.test a8b752402109c15aa1c5efe1b93ccb0ce1ef84fa964ae1cd6684dd0b3c
 F test/windowfault.test 15094c1529424e62f798bc679e3fe9dfab6e8ba2f7dfe8c923b6248c31660a7c
 F test/windowpushd.test c420e2265f0e09a0e798d0513a660d71b51602088d81b3dbd038918ee1339dcc
 F test/with1.test b93833890e5d2a368e78747f124503a0159aa029b98e9ed4795ebf630b2efd3d
-F test/with2.test 5885f0ef250504096ea4c0c6350ef2f2ab09b9e2dc2bc691e182f773db3aabb2
+F test/with2.test 181674a6cc86a601ca2ac052741cdfad5b529e07e870435d2f6cdb92d589ff17
 F test/with3.test e30369ea27aa27eb1bda4c5e510c8a9f782c8afd2ab99d1a02b8a7f25a5d3e65
 F test/with4.test 257be66c0c67fee1defbbac0f685c3465e2cad037f21ce65f23f86084f198205
 F test/with5.test 6248213c41fab36290b5b73aa3f937309dfba337004d9d8434c3fabc8c7d4be8
@@ -2205,8 +2205,8 @@ F vsixtest/vsixtest.tcl 6195aba1f12a5e10efc2b8c0009532167be5e301abe5b31385638080
 F vsixtest/vsixtest.vcxproj.data 2ed517e100c66dc455b492e1a33350c1b20fbcdc
 F vsixtest/vsixtest.vcxproj.filters 37e51ffedcdb064aad6ff33b6148725226cd608e
 F vsixtest/vsixtest_TemporaryKey.pfx e5b1b036facdb453873e7084e1cae9102ccc67a0
-P 17699329aa8e234c6793a38db5ca05def9395b287bcc8bc05493b824327edb59
-R 0e51c42305c6bc1152097a45ebccdb0d
+P c1bbed19f4348ec31c3cb4723eaa8f1554bb58ef4de7feb3a0f39612785f13d5
+R 1c80ace1a0877505f5ca5ebb5b98295b
 U drh
-Z a6fa404293297d6b35cfa7a7af20f07b
+Z ef82496d97c0311a270f63ff1146b092
 # Remove this line to create a well-formed Fossil manifest.
index b77c8e18bf43476363eb8ab7742ffe7b288b5b55..53632b34799f05ae31c70a24152457302c652ad6 100644 (file)
@@ -1 +1 @@
-c1bbed19f4348ec31c3cb4723eaa8f1554bb58ef4de7feb3a0f39612785f13d5
+4fa8235dd59cd683d6c6c97bfe181a9637be7c054d435323c903b9dbd74aff02
index 655221b067309b378e8d8eb37329737aae65ed12..b76e42b74c96c51d2732f335420d3f0cc673ea27 100644 (file)
@@ -5823,9 +5823,10 @@ static int resolveFromTermToCte(
       assert( pRecTerm->pPrior!=0 );
       for(i=0; i<pSrc->nSrc; i++){
         SrcItem *pItem = &pSrc->a[i];
-        if( ((pItem->fg.fixedSchema==0 && pItem->u4.zDatabase==0)
-             || pItem->fg.hadSchema==0)
-         && pItem->zName!=0
+        if( pItem->zName!=0
+         && !pItem->fg.hadSchema
+         && ALWAYS( !pItem->fg.isSubquery )
+         && (pItem->fg.fixedSchema || pItem->u4.zDatabase==0)
          && 0==sqlite3StrICmp(pItem->zName, pCte->zName)
         ){
           pItem->pSTab = pTab;
index ad1753d659a5311f1912dcdad2dcbd6ed25f20b1..68790fe860fe9720c6879b05b1c7e116f8a36523 100644 (file)
@@ -146,7 +146,6 @@ do_execsql_test 1.14 {
   SELECT * FROM t4;
 } {4 5 6 7 8 9 10}
 
-exit
 do_execsql_test 1.15 {
   WITH 
   t4(x) AS ( 
@@ -157,6 +156,16 @@ do_execsql_test 1.15 {
   SELECT * FROM t4;
 } {4 5}
 
+do_execsql_test 1.15.2 {
+  WITH 
+  t4(x) AS ( 
+    VALUES(4)
+    UNION ALL 
+    SELECT x+1 FROM (SELECT * FROM main.t4) WHERE x<10
+  )
+  SELECT * FROM t4;
+} {4 5}
+
 do_catchsql_test 1.16 {
   WITH 
   t4(x) AS (