From: drh Date: Wed, 13 Jan 2010 16:25:42 +0000 (+0000) Subject: When SQLITE_OMIT_FLOATING_POINT is defined, make sure the result of a X-Git-Tag: version-3.7.2~640 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=c5a7b51c695ba6698a70ad86f6c0481fbd9c0564;p=thirdparty%2Fsqlite.git When SQLITE_OMIT_FLOATING_POINT is defined, make sure the result of a mathematical operation is always tagged as an integer. FossilOrigin-Name: e12da0d316fcc34a75554d59fe6d11d9f0e059e2 --- diff --git a/manifest b/manifest index 4ad93f2a0c..0d6fa15ff4 100644 --- a/manifest +++ b/manifest @@ -1,8 +1,8 @@ -----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 -C Make\sthe\sdoubleToInt64()\sroutine\sa\spass-through\swhen\susing\sOMIT_FLOATING_POINT. -D 2010-01-13T15:15:40 +C When\sSQLITE_OMIT_FLOATING_POINT\sis\sdefined,\smake\ssure\sthe\sresult\sof\sa\nmathematical\soperation\sis\salways\stagged\sas\san\sinteger. +D 2010-01-13T16:25:43 F Makefile.arm-wince-mingw32ce-gcc fcd5e9cd67fe88836360bb4f9ef4cb7f8e2fb5a0 F Makefile.in c5827ead754ab32b9585487177c93bb00b9497b3 F Makefile.linux-gcc d53183f4aa6a9192d249731c90dbdffbd2c68654 @@ -212,7 +212,7 @@ F src/update.c c0dc6b75ad28b76b619042d934f337b02acee208 F src/utf.c dad16adcc0c35ef2437dca125a4b07419d361052 F src/util.c 4f0fb8561b7576a450fc86212ac7f7800e169077 F src/vacuum.c 28ee5a4963d16cf2477075d85966c0f461cd79de -F src/vdbe.c 1e2c66f2612275a26e156889ec123e8e13c4821d +F src/vdbe.c b0c18b5c5ab4745a09b8f164e5db36413d98872e F src/vdbe.h bea1f0cd530775bdb58a340265f3cf3ee920e9b2 F src/vdbeInt.h e276691b6835da5c0008cc5beaaecedcd7bdba8e F src/vdbeapi.c fc3787eb2f5487d4cc3444de42d56f2e39d311f5 @@ -788,14 +788,14 @@ F tool/speedtest2.tcl ee2149167303ba8e95af97873c575c3e0fab58ff F tool/speedtest8.c 2902c46588c40b55661e471d7a86e4dd71a18224 F tool/speedtest8inst1.c 293327bc76823f473684d589a8160bde1f52c14e F tool/vdbe-compress.tcl d70ea6d8a19e3571d7ab8c9b75cba86d1173ff0f -P 985d3bec07430536485056bcd2ae0471791601ed -R 9f8cf667b0afbdd9545d404fbec2bd6d +P 417167182efaa1da74008952137de3e00c23494e +R 89c89c924af8f7e6db6160c5a29903bd U drh -Z d1d141aad07484d109238464ff4bf4c5 +Z 5f39bd0fb79ec5cb4191d06b8944929f -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.6 (GNU/Linux) -iD8DBQFLTeOfoxKgR168RlERAlU4AJ4w8Z8Bt+r/4+9pC7Gb2JRnglriKQCeODzf -Bnr1B7NVjy4Q6Uvl11ICxqI= -=xtZb +iD8DBQFLTfQKoxKgR168RlERAk5yAJ4yqYP9RAXAemmavFjE3kclxjaO+QCfRZjo +9QCR6Br/2vxhKD2xDVbkDcI= +=hlG7 -----END PGP SIGNATURE----- diff --git a/manifest.uuid b/manifest.uuid index bc0433dc2a..07f50d9acf 100644 --- a/manifest.uuid +++ b/manifest.uuid @@ -1 +1 @@ -417167182efaa1da74008952137de3e00c23494e \ No newline at end of file +e12da0d316fcc34a75554d59fe6d11d9f0e059e2 \ No newline at end of file diff --git a/src/vdbe.c b/src/vdbe.c index a7d693d53a..af7e7ce9e1 100644 --- a/src/vdbe.c +++ b/src/vdbe.c @@ -1297,6 +1297,10 @@ case OP_Remainder: { /* same as TK_REM, in1, in2, out3 */ break; } } +#ifdef SQLITE_OMIT_FLOATING_POINT + pOut->u.i = rB; + MemSetTypeFlag(pOut, MEM_Int); +#else if( sqlite3IsNaN(rB) ){ goto arithmetic_result_is_null; } @@ -1305,6 +1309,7 @@ case OP_Remainder: { /* same as TK_REM, in1, in2, out3 */ if( (flags & MEM_Real)==0 ){ sqlite3VdbeIntegerAffinity(pOut); } +#endif } break;