From: drh <> Date: Tue, 7 Jun 2022 10:14:22 +0000 (+0000) Subject: Preserve the database encoding on the CAST operator in the X-Git-Tag: version-3.39.0~53 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=d580bea7d4ce34387abc8b152e53b09906eeee37;p=thirdparty%2Fsqlite.git Preserve the database encoding on the CAST operator in the sqlite3ValueFromExpr() routine. [forum:/forumpost/800eecf5e6cdc3f4|Forum thread 800eecf5e6cdc3f4]. Test case in TH3. FossilOrigin-Name: 3f6a442099b8264cc788e8aa2b12cc583439a5263c4fe433fd22b7af1be2458e --- diff --git a/manifest b/manifest index 279205352b..ad0cac8eb6 100644 --- a/manifest +++ b/manifest @@ -1,5 +1,5 @@ -C More\sprecise\sdetermination\sof\swhen\sa\sWHERE\sclause\scan\sbe\sused\sto\sdrive\san\nindex\son\san\souter\sjoin. -D 2022-06-06T23:22:06.986 +C Preserve\sthe\sdatabase\sencoding\son\sthe\sCAST\soperator\sin\sthe\nsqlite3ValueFromExpr()\sroutine.\n[forum:/forumpost/800eecf5e6cdc3f4|Forum\sthread\s800eecf5e6cdc3f4].\nTest\scase\sin\sTH3. +D 2022-06-07T10:14:22.284 F .fossil-settings/empty-dirs dbb81e8fc0401ac46a1491ab34a7f2c7c0452f2f06b54ebb845d024ca8283ef1 F .fossil-settings/ignore-glob 35175cdfcf539b2318cb04a9901442804be81cd677d8b889fcc9149c21f239ea F LICENSE.md df5091916dbb40e6e9686186587125e1b2ff51f022cc334e886c19a0e9982724 @@ -648,7 +648,7 @@ F src/vdbeInt.h ef43f7fdc5fde29fc3fd29c506c12830f366178fdb4edbbf0cbc3dfbd1278b5f F src/vdbeapi.c 354c893f1500cf524cc45c32879b9c68893a28b77e3442c24668d6afe4236217 F src/vdbeaux.c 75c4f75ed7e1d12eb3d80093a160ec998c839f3008a1c3c967fc5acf522d0e3c F src/vdbeblob.c 5e61ce31aca17db8fb60395407457a8c1c7fb471dde405e0cd675974611dcfcd -F src/vdbemem.c 7189090b72baa025f945a1ac8c61ee420c645254476e8a191d555db76dfea5d4 +F src/vdbemem.c 3db315458f8dc158aff58719795441437dd6c0fd302e9d9379a8f2a61e185ad6 F src/vdbesort.c 43756031ca7430f7aec3ef904824a7883c4ede783e51f280d99b9b65c0796e35 F src/vdbetrace.c fe0bc29ebd4e02c8bc5c1945f1d2e6be5927ec12c06d89b03ef2a4def34bf823 F src/vdbevtab.c f99b275366c5fc5e2d99f734729880994ab9500bdafde7fae3b02d562b9d323c @@ -1975,9 +1975,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 4a31b7942a15c9c4363477365784d6d4ac5b1bbe8ff8aeaf2dd3d6532bf8bc96 f419e98c515e704efa11728192b2594e962cb0e6d2d1837f99a8caf65f4d93cb -R c2e526412189cf6f0523d76532d3dca9 -T +closed f419e98c515e704efa11728192b2594e962cb0e6d2d1837f99a8caf65f4d93cb +P 318543a91108c6fd0764d7ee7beee49838f54d44c54dae3dc9d4cb8336d52fe1 +R acb5f32cbaf8d041de34246be6f47c4a U drh -Z 41e91a911a608e23fdf49a547cce512b +Z 3e6c6b95ac4675928a3e0f84e70a5c65 # Remove this line to create a well-formed Fossil manifest. diff --git a/manifest.uuid b/manifest.uuid index 0e10419e6b..710790ec55 100644 --- a/manifest.uuid +++ b/manifest.uuid @@ -1 +1 @@ -318543a91108c6fd0764d7ee7beee49838f54d44c54dae3dc9d4cb8336d52fe1 \ No newline at end of file +3f6a442099b8264cc788e8aa2b12cc583439a5263c4fe433fd22b7af1be2458e \ No newline at end of file diff --git a/src/vdbemem.c b/src/vdbemem.c index faa35f0ac9..aaae2f49ff 100644 --- a/src/vdbemem.c +++ b/src/vdbemem.c @@ -1571,8 +1571,8 @@ static int valueFromExpr( rc = valueFromExpr(db, pExpr->pLeft, enc, aff, ppVal, pCtx); testcase( rc!=SQLITE_OK ); if( *ppVal ){ - sqlite3VdbeMemCast(*ppVal, aff, SQLITE_UTF8); - sqlite3ValueApplyAffinity(*ppVal, affinity, SQLITE_UTF8); + sqlite3VdbeMemCast(*ppVal, aff, enc); + sqlite3ValueApplyAffinity(*ppVal, affinity, enc); } return rc; }