]> git.ipfire.org Git - thirdparty/sqlite.git/commitdiff
When setting the column types on a subquery, ensure that the COLFLAG_HASCOLL
authordrh <>
Fri, 14 Apr 2023 10:46:26 +0000 (10:46 +0000)
committerdrh <>
Fri, 14 Apr 2023 10:46:26 +0000 (10:46 +0000)
flag is cleared from column names from when the collating sequence name has
been removed.

FossilOrigin-Name: de61bdc9b96d958c9651f5e8935ebbb0132fcae72de43fbf33d6c5c8e97906e3

manifest
manifest.uuid
src/select.c

index 7956e93ebe3424a978b067a14e3c201b5157c8c7..900db942134402341bb5345222fb2409d909fac2 100644 (file)
--- a/manifest
+++ b/manifest
@@ -1,5 +1,5 @@
-C Avoid\sdouble\sde-quoting\sof\stable\snames\swhen\sprocessing\sRESTRICT\sactions\nin\sforeign\skey\sconstraints.
-D 2023-04-14T00:23:13.764
+C When\ssetting\sthe\scolumn\stypes\son\sa\ssubquery,\sensure\sthat\sthe\sCOLFLAG_HASCOLL\nflag\sis\scleared\sfrom\scolumn\snames\sfrom\swhen\sthe\scollating\ssequence\sname\shas\nbeen\sremoved.
+D 2023-04-14T10:46:26.552
 F .fossil-settings/empty-dirs dbb81e8fc0401ac46a1491ab34a7f2c7c0452f2f06b54ebb845d024ca8283ef1
 F .fossil-settings/ignore-glob 35175cdfcf539b2318cb04a9901442804be81cd677d8b889fcc9149c21f239ea
 F LICENSE.md df5091916dbb40e6e9686186587125e1b2ff51f022cc334e886c19a0e9982724
@@ -621,7 +621,7 @@ F src/printf.c ff4b05e38bf928ff1b80d3dda4f977b10fe39ecbfe69c018224c7e5594fb2455
 F src/random.c 606b00941a1d7dd09c381d3279a058d771f406c5213c9932bbd93d5587be4b9c
 F src/resolve.c 6a0253379cc15b3f80321362a61f487a8ef7cd2487fe62e1eb2317b3f871c61f
 F src/rowset.c ba9515a922af32abe1f7d39406b9d35730ed65efab9443dc5702693b60854c92
-F src/select.c fa96f217be53f18e1668b83a8ca9bb45835fc6e1774827b791982d7235b1a8b2
+F src/select.c 01ef181eb63d1cd50f47eca9e6aa89ae4a790c773391ded8f8f9b39d8b985288
 F src/shell.c.in 4090679073d615514dfb2f50072818eb48dc9c540ec533b31fbeb922b15938f9
 F src/sqlite.h.in 662a2fa083d093896b92560c871dea6d86792b49dc4bf7b4e8dbeca8e7171488
 F src/sqlite3.rc 5121c9e10c3964d5755191c80dd1180c122fc3a8
@@ -2046,9 +2046,9 @@ F vsixtest/vsixtest.tcl 6a9a6ab600c25a91a7acc6293828957a386a8a93
 F vsixtest/vsixtest.vcxproj.data 2ed517e100c66dc455b492e1a33350c1b20fbcdc
 F vsixtest/vsixtest.vcxproj.filters 37e51ffedcdb064aad6ff33b6148725226cd608e
 F vsixtest/vsixtest_TemporaryKey.pfx e5b1b036facdb453873e7084e1cae9102ccc67a0
-P cf651dee1279455dee5005701a2e8b76c9d2545b192919b84370d2e31a4a3baa
-Q +bb2b5ab172f0751c00343facf36fb12db10c88220caece31849f2711f12293d9
-R 319100232c0f2d99e3c3ca2880dae46d
+P 5af7abffe7865375d9f5d1bede4d98bc5b26bd8c958398bda89a31f6a3f68524
+Q +8d9dcd7cfdd53034e21cdb2cb997b6f5fe3207ca5d0d7a0b841b8a68e6ce8624
+R b3e4b6b7858f83aff136ecb171d1add3
 U drh
-Z 6e3f8d30a09e92eeecadeb8cb76ca110
+Z 3b2261162197edc72f05f8fc84f68eed
 # Remove this line to create a well-formed Fossil manifest.
index 83658205764ad88ce4ea932fd3a6303b852becc4..7dbfda02cf4f3d0e4dbf3f4881de0ed6c84127ca 100644 (file)
@@ -1 +1 @@
-5af7abffe7865375d9f5d1bede4d98bc5b26bd8c958398bda89a31f6a3f68524
\ No newline at end of file
+de61bdc9b96d958c9651f5e8935ebbb0132fcae72de43fbf33d6c5c8e97906e3
\ No newline at end of file
index 33bc4c32876f4f79a8a262c53eba2e664e6ca063..780b9c0094d90caf7d26ae418fdad6d12dc691ae 100644 (file)
@@ -2363,18 +2363,18 @@ void sqlite3SubqueryColumnTypes(
             break;
           }
         }
-       }
-     }
-     if( zType ){
-       i64 m = sqlite3Strlen30(zType);
-       n = sqlite3Strlen30(pCol->zCnName);
-       pCol->zCnName = sqlite3DbReallocOrFree(db, pCol->zCnName, n+m+2);
-       if( pCol->zCnName ){
-         memcpy(&pCol->zCnName[n+1], zType, m+1);
-         pCol->colFlags |= COLFLAG_HASTYPE;
-       }else{
-         testcase( pCol->colFlags & COLFLAG_HASTYPE );
-        pCol->colFlags &= ~(COLFLAG_HASTYPE|COLFLAG_HASCOLL);
+      }
+    }
+    if( zType ){
+      i64 m = sqlite3Strlen30(zType);
+      n = sqlite3Strlen30(pCol->zCnName);
+      pCol->zCnName = sqlite3DbReallocOrFree(db, pCol->zCnName, n+m+2);
+      pCol->colFlags &= ~(COLFLAG_HASTYPE|COLFLAG_HASCOLL);
+      if( pCol->zCnName ){
+        memcpy(&pCol->zCnName[n+1], zType, m+1);
+        pCol->colFlags |= COLFLAG_HASTYPE;
+      }else{
+        testcase( pCol->colFlags & COLFLAG_HASTYPE );
       }
     }
     pColl = sqlite3ExprCollSeq(pParse, p);