Fix session module problems with real (floating point) values.
FossilOrigin-Name: a192d04f4e3a9e4960a4d96d1d3ee8635bc1034d
This commit is contained in:
parent
77e6500473
commit
4e895da185
@ -105,6 +105,11 @@ do_iterator_test 1.1 t1 {
|
||||
{DELETE t1 {t i t one} {}}
|
||||
{INSERT t1 {} {t ii t two}}
|
||||
}
|
||||
do_iterator_test 1.1 t1 {
|
||||
INSERT INTO t1 VALUES(1.5, 99.9)
|
||||
} {
|
||||
{INSERT t1 {} {f 1.5 f 99.9}}
|
||||
}
|
||||
|
||||
test_reset
|
||||
do_common_sql {
|
||||
@ -202,7 +207,10 @@ do_test 2.0 {
|
||||
} db2
|
||||
} {}
|
||||
|
||||
proc xTrace {args} { puts $args }
|
||||
|
||||
foreach {tn sql} {
|
||||
|
||||
1 { INSERT INTO aux.t1 VALUES(1, 2) }
|
||||
|
||||
2 {
|
||||
@ -255,6 +263,12 @@ foreach {tn sql} {
|
||||
DELETE FROM aux.t1 WHERE 1;
|
||||
ROLLBACK;
|
||||
}
|
||||
11 {
|
||||
INSERT INTO aux.t1 VALUES(randomblob(21000), randomblob(0));
|
||||
INSERT INTO aux.t1 VALUES(1.5, 1.5);
|
||||
INSERT INTO aux.t1 VALUES(4.56, -99.999999999999999999999);
|
||||
}
|
||||
|
||||
} {
|
||||
do_then_apply_sql $sql aux
|
||||
do_test 2.$tn { compare_db db3 db2 } {}
|
||||
|
@ -245,10 +245,10 @@ static int sessionSerializeValue(
|
||||
nByte = 9;
|
||||
break;
|
||||
|
||||
case SQLITE_TEXT:
|
||||
case SQLITE_BLOB: {
|
||||
default: {
|
||||
int n = sqlite3_value_bytes(pValue);
|
||||
int nVarint = sessionVarintLen(n);
|
||||
assert( eType==SQLITE_TEXT || eType==SQLITE_BLOB );
|
||||
if( aBuf ){
|
||||
sessionVarintPut(&aBuf[1], n);
|
||||
memcpy(&aBuf[nVarint + 1], eType==SQLITE_TEXT ?
|
||||
@ -1257,7 +1257,7 @@ static int sessionSelectBind(
|
||||
double rVal;
|
||||
i64 iVal = sessionGetI64(a);
|
||||
memcpy(&rVal, &iVal, 8);
|
||||
rc = sqlite3_bind_int64(pSelect, i+1, rVal);
|
||||
rc = sqlite3_bind_double(pSelect, i+1, rVal);
|
||||
}
|
||||
a += 8;
|
||||
break;
|
||||
@ -1481,7 +1481,7 @@ static int sessionReadRecord(
|
||||
sqlite3VdbeMemSetInt64(apOut[i], v);
|
||||
}else{
|
||||
double d;
|
||||
memcpy(&d, &i, 8);
|
||||
memcpy(&d, &v, 8);
|
||||
sqlite3VdbeMemSetDouble(apOut[i], d);
|
||||
}
|
||||
}
|
||||
|
14
manifest
14
manifest
@ -1,5 +1,5 @@
|
||||
C Fix\ssome\stypos\sin\ssqlite3session.h.
|
||||
D 2011-03-21T07:23:09
|
||||
C Fix\ssession\smodule\sproblems\swith\sreal\s(floating\spoint)\svalues.
|
||||
D 2011-03-21T11:03:25
|
||||
F Makefile.arm-wince-mingw32ce-gcc d6df77f1f48d690bd73162294bbba7f59507c72f
|
||||
F Makefile.in 27701a1653595a1f2187dc61c8117e00a6c1d50f
|
||||
F Makefile.linux-gcc 91d710bdc4998cb015f39edf3cb314ec4f4d7e23
|
||||
@ -100,8 +100,8 @@ F ext/rtree/sqlite3rtree.h 1af0899c63a688e272d69d8e746f24e76f10a3f0
|
||||
F ext/rtree/tkt3363.test 142ab96eded44a3615ec79fba98c7bde7d0f96de
|
||||
F ext/rtree/viewrtree.tcl eea6224b3553599ae665b239bd827e182b466024
|
||||
F ext/session/session1.test 3f982c74ee4ba97069917cc35aae25b4ed858e6a
|
||||
F ext/session/session2.test 96ff08995ab9935d1992ac554a240052883a0ebc
|
||||
F ext/session/sqlite3session.c d211ce2e95483dfc144494f6c67879d85dddabfa
|
||||
F ext/session/session2.test 45c9ff2052bf132d25d272b1d4b53f95c1c31463
|
||||
F ext/session/sqlite3session.c 3ed836ee8c6faff866bc59da800b6f20b0285071
|
||||
F ext/session/sqlite3session.h b77b014793162a77ac16507d720fe085cc15d06c
|
||||
F ext/session/test_session.c 2559ef68e421c7fb83e2c19ef08a17343b70d535
|
||||
F install-sh 9d4de14ab9fb0facae2f48780b874848cbf2f895
|
||||
@ -921,7 +921,7 @@ F tool/speedtest2.tcl ee2149167303ba8e95af97873c575c3e0fab58ff
|
||||
F tool/speedtest8.c 2902c46588c40b55661e471d7a86e4dd71a18224
|
||||
F tool/speedtest8inst1.c 293327bc76823f473684d589a8160bde1f52c14e
|
||||
F tool/vdbe-compress.tcl d70ea6d8a19e3571d7ab8c9b75cba86d1173ff0f
|
||||
P f227f60210fba3930f3050aebb1facee8bac9c0b
|
||||
R 1d7fc8f92183ec1b52bc0fb00c30936f
|
||||
P 0853e530cc8d96f025f5160540e8ab3243dea11b
|
||||
R 482fc377ccc3f262af8beae8e4f384bf
|
||||
U dan
|
||||
Z c7cce5161a77eeb6aa8085cb909dead1
|
||||
Z 767fabeb255e365fd4d794b5ace5ff7b
|
||||
|
@ -1 +1 @@
|
||||
0853e530cc8d96f025f5160540e8ab3243dea11b
|
||||
a192d04f4e3a9e4960a4d96d1d3ee8635bc1034d
|
Loading…
x
Reference in New Issue
Block a user