From: drh <> Date: Fri, 14 Apr 2023 10:40:50 +0000 (+0000) Subject: When setting the column types on a subquery, ensure that the COLFLAG_HASCOLL X-Git-Tag: version-3.42.0~145 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=deabd6969b3e5127cfa73e1ebc4d601518a4f736;p=thirdparty%2Fsqlite.git When setting the column types on a subquery, ensure that the COLFLAG_HASCOLL flag is cleared from column names from when the collating sequence name has been removed. [forum:/forumpost/6916dacf83|Forum post 6916dacf83]. FossilOrigin-Name: 8d9dcd7cfdd53034e21cdb2cb997b6f5fe3207ca5d0d7a0b841b8a68e6ce8624 --- diff --git a/manifest b/manifest index 00882f03cf..ada9f0b5f4 100644 --- a/manifest +++ b/manifest @@ -1,5 +1,5 @@ -C Fix\sa\scosmetic\sindentation\sissue. -D 2023-04-14T10:35:29.876 +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.\n[forum:/forumpost/6916dacf83|Forum\spost\s6916dacf83]. +D 2023-04-14T10:40:50.957 F .fossil-settings/empty-dirs dbb81e8fc0401ac46a1491ab34a7f2c7c0452f2f06b54ebb845d024ca8283ef1 F .fossil-settings/ignore-glob 35175cdfcf539b2318cb04a9901442804be81cd677d8b889fcc9149c21f239ea F LICENSE.md df5091916dbb40e6e9686186587125e1b2ff51f022cc334e886c19a0e9982724 @@ -625,7 +625,7 @@ F src/printf.c 7eac1a9896a80697e03e08963e210830532ae2ff610e16c193e95af007ca5623 F src/random.c 606b00941a1d7dd09c381d3279a058d771f406c5213c9932bbd93d5587be4b9c F src/resolve.c 3e53e02ce87c9582bd7e7d22f13f4094a271678d9dc72820fa257a2abb5e4032 F src/rowset.c ba9515a922af32abe1f7d39406b9d35730ed65efab9443dc5702693b60854c92 -F src/select.c f803ac95411fec545e96a2667734e300428aaeb75a27d96b5b3ac62a7461b25a +F src/select.c ad6f48e0953fb0d9dd434a7fcd8bc6bde05beb82500a59fea7a7b02dc0ecfb3b F src/shell.c.in 80f7c4c1bdabc9dab416b59287458044c01df97035d626ea57ffeabbb289bdc6 F src/sqlite.h.in 4fff9c6cc5d4cbba9532a668112efb6dc469c425e1a2196664d7c07d508363ef F src/sqlite3.rc 5121c9e10c3964d5755191c80dd1180c122fc3a8 @@ -2052,8 +2052,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 bb2b5ab172f0751c00343facf36fb12db10c88220caece31849f2711f12293d9 -R 98fb747f8b76030eab4ec959dcc2d1ae +P 90deb84486494b903bab065fbf0174b56483c190353992b907359661393f2c54 +R 74f079a7a3e0405a510d653a98c3a5fe U drh -Z 4db1767c2c2b21dfcda57aec5fef47c6 +Z 0bf573c21b8ca5b8de34fe3cc5060e37 # Remove this line to create a well-formed Fossil manifest. diff --git a/manifest.uuid b/manifest.uuid index 528d4b3db8..fab28ff1d3 100644 --- a/manifest.uuid +++ b/manifest.uuid @@ -1 +1 @@ -90deb84486494b903bab065fbf0174b56483c190353992b907359661393f2c54 \ No newline at end of file +8d9dcd7cfdd53034e21cdb2cb997b6f5fe3207ca5d0d7a0b841b8a68e6ce8624 \ No newline at end of file diff --git a/src/select.c b/src/select.c index b0c2b90e91..80a51d61d1 100644 --- a/src/select.c +++ b/src/select.c @@ -2369,12 +2369,12 @@ void sqlite3SubqueryColumnTypes( 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 ); - pCol->colFlags &= ~(COLFLAG_HASTYPE|COLFLAG_HASCOLL); } } pColl = sqlite3ExprCollSeq(pParse, p);