From: dan Date: Tue, 19 May 2015 19:44:25 +0000 (+0000) Subject: Ensure that when the VM applies TEXT affinity to a value it discards any existing... X-Git-Tag: version-3.8.11~250 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=dde548cb168b9a947149c3214464562be9542c55;p=thirdparty%2Fsqlite.git Ensure that when the VM applies TEXT affinity to a value it discards any existing REAL or INTEGER value. FossilOrigin-Name: f5d0ce80792d58ef424300f973f8876d835ed4ad --- diff --git a/manifest b/manifest index d6ba39cec2..5e3998a2e2 100644 --- a/manifest +++ b/manifest @@ -1,5 +1,5 @@ -C Remove\sthe\ssqlite3ota_open_v2()\sAPI.\sAdd\sa\snew\sparameter\sto\ssqlite3ota_open()\sinstead. -D 2015-05-19T17:48:11.466 +C Ensure\sthat\swhen\sthe\sVM\sapplies\sTEXT\saffinity\sto\sa\svalue\sit\sdiscards\sany\sexisting\sREAL\sor\sINTEGER\svalue. +D 2015-05-19T19:44:25.924 F Makefile.arm-wince-mingw32ce-gcc d6df77f1f48d690bd73162294bbba7f59507c72f F Makefile.in 0a6ae26396ec696221021780dffbb894ff3cead7 F Makefile.linux-gcc 91d710bdc4998cb015f39edf3cb314ec4f4d7e23 @@ -312,7 +312,7 @@ F src/update.c 3c4ecc282accf12d39edb8d524cf089645e55a13 F src/utf.c fc6b889ba0779b7722634cdeaa25f1930d93820c F src/util.c a6431c92803b975b7322724a7b433e538d243539 F src/vacuum.c 2ddd5cad2a7b9cef7f9e431b8c7771634c6b1701 -F src/vdbe.c 8775967d8ae262f4134a34f539b8747b23421000 +F src/vdbe.c 6aee8a041742413ab3113e6682bc7ad1628a2bbe F src/vdbe.h 7e538ecf47dccb307ea2d087c3ddc2dd8d70e79d F src/vdbeInt.h de3291a6688dfef9f61d47705c1bd57008b1185d F src/vdbeapi.c 583d56b129dd27f12bed518270de9ebe521e6a75 @@ -1103,7 +1103,7 @@ F test/trans.test 6e1b4c6a42dba31bd65f8fa5e61a2708e08ddde6 F test/trans2.test 62bd045bfc7a1c14c5ba83ba64d21ade31583f76 F test/trans3.test 91a100e5412b488e22a655fe423a14c26403ab94 F test/transitive1.test 293300f46916569f08875cdb2fe2134be2c27677 -F test/trigger1.test dc47573ac79ffe0ee3eecaa517d70d8dacbccd03 +F test/trigger1.test ea9624cc1dae05645469df6119fa815f9e6f1e8c F test/trigger2.test 5cd7d69a7ba1143ee045e4ae2963ff32ae4c87a6 F test/trigger3.test aa640bb2bbb03edd5ff69c055117ea088f121945 F test/trigger4.test 74700b76ebf3947b2f7a92405141eb2cf2a5d359 @@ -1278,7 +1278,7 @@ F tool/vdbe_profile.tcl 67746953071a9f8f2f668b73fe899074e2c6d8c1 F tool/warnings-clang.sh f6aa929dc20ef1f856af04a730772f59283631d4 F tool/warnings.sh 0abfd78ceb09b7f7c27c688c8e3fe93268a13b32 F tool/win/sqlite.vsix deb315d026cc8400325c5863eef847784a219a2f -P 08e2864ed7c2d36410a248459061dcbd5576e145 -R d09494068161087db80612c39a639a87 +P c74e0bc481ce995f83ca8384e05dfbe068a0ae85 +R 156f7f5ee2915cdb09e3f94c0c3af5e0 U dan -Z 59d2caf8980d2c8a59e31483a39f217a +Z 98adea0e9355f8ba8d3dfa8723cc9e42 diff --git a/manifest.uuid b/manifest.uuid index 822761ba14..327183aa6e 100644 --- a/manifest.uuid +++ b/manifest.uuid @@ -1 +1 @@ -c74e0bc481ce995f83ca8384e05dfbe068a0ae85 \ No newline at end of file +f5d0ce80792d58ef424300f973f8876d835ed4ad \ No newline at end of file diff --git a/src/vdbe.c b/src/vdbe.c index b23e264837..c076a41edd 100644 --- a/src/vdbe.c +++ b/src/vdbe.c @@ -296,6 +296,7 @@ static void applyAffinity( if( 0==(pRec->flags&MEM_Str) && (pRec->flags&(MEM_Real|MEM_Int)) ){ sqlite3VdbeMemStringify(pRec, enc, 1); } + pRec->flags &= ~(MEM_Real|MEM_Int); } } diff --git a/test/trigger1.test b/test/trigger1.test index 1ebe12c89b..a190efd464 100644 --- a/test/trigger1.test +++ b/test/trigger1.test @@ -712,4 +712,20 @@ do_test trigger1-16.7 { } } {1 {the INDEXED BY clause is not allowed on UPDATE or DELETE statements within triggers}} +#------------------------------------------------------------------------- +# Test that bug [34cd55d68e0e6e7c] has been fixed. +# +do_execsql_test trigger1-17.0 { + CREATE TABLE t17a(ii INT); + CREATE TABLE t17b(tt TEXT PRIMARY KEY, ss); + CREATE TRIGGER t17a_ai AFTER INSERT ON t17a BEGIN + INSERT INTO t17b(tt) VALUES(new.ii); + END; + CREATE TRIGGER t17b_ai AFTER INSERT ON t17b BEGIN + UPDATE t17b SET ss = 4; + END; + INSERT INTO t17a(ii) VALUES('1'); + PRAGMA integrity_check; +} {ok} + finish_test