1
0
mirror of https://github.com/sqlite/sqlite.git synced 2025-08-10 01:02:56 +03:00

When SQLITE_OMIT_FLOATING_POINT is defined, make sure the result of a

mathematical operation is always tagged as an integer.

FossilOrigin-Name: e12da0d316fcc34a75554d59fe6d11d9f0e059e2
This commit is contained in:
drh
2010-01-13 16:25:42 +00:00
parent 52d14521fa
commit c5a7b51c69
3 changed files with 15 additions and 10 deletions

View File

@@ -1,8 +1,8 @@
-----BEGIN PGP SIGNED MESSAGE----- -----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1 Hash: SHA1
C Make\sthe\sdoubleToInt64()\sroutine\sa\spass-through\swhen\susing\sOMIT_FLOATING_POINT. 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-13T15:15:40 D 2010-01-13T16:25:43
F Makefile.arm-wince-mingw32ce-gcc fcd5e9cd67fe88836360bb4f9ef4cb7f8e2fb5a0 F Makefile.arm-wince-mingw32ce-gcc fcd5e9cd67fe88836360bb4f9ef4cb7f8e2fb5a0
F Makefile.in c5827ead754ab32b9585487177c93bb00b9497b3 F Makefile.in c5827ead754ab32b9585487177c93bb00b9497b3
F Makefile.linux-gcc d53183f4aa6a9192d249731c90dbdffbd2c68654 F Makefile.linux-gcc d53183f4aa6a9192d249731c90dbdffbd2c68654
@@ -212,7 +212,7 @@ F src/update.c c0dc6b75ad28b76b619042d934f337b02acee208
F src/utf.c dad16adcc0c35ef2437dca125a4b07419d361052 F src/utf.c dad16adcc0c35ef2437dca125a4b07419d361052
F src/util.c 4f0fb8561b7576a450fc86212ac7f7800e169077 F src/util.c 4f0fb8561b7576a450fc86212ac7f7800e169077
F src/vacuum.c 28ee5a4963d16cf2477075d85966c0f461cd79de F src/vacuum.c 28ee5a4963d16cf2477075d85966c0f461cd79de
F src/vdbe.c 1e2c66f2612275a26e156889ec123e8e13c4821d F src/vdbe.c b0c18b5c5ab4745a09b8f164e5db36413d98872e
F src/vdbe.h bea1f0cd530775bdb58a340265f3cf3ee920e9b2 F src/vdbe.h bea1f0cd530775bdb58a340265f3cf3ee920e9b2
F src/vdbeInt.h e276691b6835da5c0008cc5beaaecedcd7bdba8e F src/vdbeInt.h e276691b6835da5c0008cc5beaaecedcd7bdba8e
F src/vdbeapi.c fc3787eb2f5487d4cc3444de42d56f2e39d311f5 F src/vdbeapi.c fc3787eb2f5487d4cc3444de42d56f2e39d311f5
@@ -788,14 +788,14 @@ F tool/speedtest2.tcl ee2149167303ba8e95af97873c575c3e0fab58ff
F tool/speedtest8.c 2902c46588c40b55661e471d7a86e4dd71a18224 F tool/speedtest8.c 2902c46588c40b55661e471d7a86e4dd71a18224
F tool/speedtest8inst1.c 293327bc76823f473684d589a8160bde1f52c14e F tool/speedtest8inst1.c 293327bc76823f473684d589a8160bde1f52c14e
F tool/vdbe-compress.tcl d70ea6d8a19e3571d7ab8c9b75cba86d1173ff0f F tool/vdbe-compress.tcl d70ea6d8a19e3571d7ab8c9b75cba86d1173ff0f
P 985d3bec07430536485056bcd2ae0471791601ed P 417167182efaa1da74008952137de3e00c23494e
R 9f8cf667b0afbdd9545d404fbec2bd6d R 89c89c924af8f7e6db6160c5a29903bd
U drh U drh
Z d1d141aad07484d109238464ff4bf4c5 Z 5f39bd0fb79ec5cb4191d06b8944929f
-----BEGIN PGP SIGNATURE----- -----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.6 (GNU/Linux) Version: GnuPG v1.4.6 (GNU/Linux)
iD8DBQFLTeOfoxKgR168RlERAlU4AJ4w8Z8Bt+r/4+9pC7Gb2JRnglriKQCeODzf iD8DBQFLTfQKoxKgR168RlERAk5yAJ4yqYP9RAXAemmavFjE3kclxjaO+QCfRZjo
Bnr1B7NVjy4Q6Uvl11ICxqI= 9QCR6Br/2vxhKD2xDVbkDcI=
=xtZb =hlG7
-----END PGP SIGNATURE----- -----END PGP SIGNATURE-----

View File

@@ -1 +1 @@
417167182efaa1da74008952137de3e00c23494e e12da0d316fcc34a75554d59fe6d11d9f0e059e2

View File

@@ -1297,6 +1297,10 @@ case OP_Remainder: { /* same as TK_REM, in1, in2, out3 */
break; break;
} }
} }
#ifdef SQLITE_OMIT_FLOATING_POINT
pOut->u.i = rB;
MemSetTypeFlag(pOut, MEM_Int);
#else
if( sqlite3IsNaN(rB) ){ if( sqlite3IsNaN(rB) ){
goto arithmetic_result_is_null; goto arithmetic_result_is_null;
} }
@@ -1305,6 +1309,7 @@ case OP_Remainder: { /* same as TK_REM, in1, in2, out3 */
if( (flags & MEM_Real)==0 ){ if( (flags & MEM_Real)==0 ){
sqlite3VdbeIntegerAffinity(pOut); sqlite3VdbeIntegerAffinity(pOut);
} }
#endif
} }
break; break;