1
0
mirror of https://github.com/sqlite/sqlite.git synced 2025-07-30 19:03:16 +03:00

Fix session module problems with real (floating point) values.

FossilOrigin-Name: a192d04f4e3a9e4960a4d96d1d3ee8635bc1034d
This commit is contained in:
dan
2011-03-21 11:03:24 +00:00
parent 77e6500473
commit 4e895da185
4 changed files with 26 additions and 12 deletions

View File

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