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
This commit is contained in:
drh 2022-06-07 10:14:22 +00:00
parent 6fdac75127
commit d580bea7d4
3 changed files with 9 additions and 10 deletions

View File

@ -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.

View File

@ -1 +1 @@
318543a91108c6fd0764d7ee7beee49838f54d44c54dae3dc9d4cb8336d52fe1
3f6a442099b8264cc788e8aa2b12cc583439a5263c4fe433fd22b7af1be2458e

View File

@ -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;
}