mirror of
https://github.com/sqlite/sqlite.git
synced 2025-12-24 14:17:58 +03:00
In the one-argument version of the ieee754() extension function, if the
argument is an 8-byte blob, interpret that blob as a binary64 floating point and decode it. FossilOrigin-Name: 4199c1e8aa47d77df3ef598cb6f5418f67970dd00f34823463c85eabfc8d2b77
This commit is contained in:
@@ -51,8 +51,19 @@ static void ieee754func(
|
||||
int isNeg;
|
||||
char zResult[100];
|
||||
assert( sizeof(m)==sizeof(r) );
|
||||
if( sqlite3_value_type(argv[0])!=SQLITE_FLOAT ) return;
|
||||
r = sqlite3_value_double(argv[0]);
|
||||
if( sqlite3_value_type(argv[0])==SQLITE_BLOB
|
||||
&& sqlite3_value_bytes(argv[0])==sizeof(r)
|
||||
){
|
||||
const unsigned char *x = sqlite3_value_blob(argv[0]);
|
||||
int i;
|
||||
sqlite3_uint64 v = 0;
|
||||
for(i=0; i<sizeof(r); i++){
|
||||
v = (v<<8) | x[i];
|
||||
}
|
||||
memcpy(&r, &v, sizeof(r));
|
||||
}else{
|
||||
r = sqlite3_value_double(argv[0]);
|
||||
}
|
||||
if( r<0.0 ){
|
||||
isNeg = 1;
|
||||
r = -r;
|
||||
|
||||
12
manifest
12
manifest
@@ -1,11 +1,12 @@
|
||||
B 7a876209a678a34c198b54ceef9e3c041f128a14dc73357f6a57cadadaa6cf7b
|
||||
C Add\sthe\sdecimal\sextension.\s\sIt\sis\sbuilt\sinto\sthe\sshell,\sbut\sis\san\soptional\nadd-on\sfor\sthe\slibrary.\s\sIt\sis\snot\sincluded\sin\sthe\samalgamation.
|
||||
D 2020-06-24T12:29:19.193
|
||||
C In\sthe\sone-argument\sversion\sof\sthe\sieee754()\sextension\sfunction,\sif\sthe\nargument\sis\san\s8-byte\sblob,\sinterpret\sthat\sblob\sas\sa\sbinary64\sfloating\spoint\nand\sdecode\sit.
|
||||
D 2020-06-24T13:14:00.385
|
||||
F Makefile.in 014ad669b4a5809752939c2dea83722992711b464aa56adebca80c5cc98cfdc2
|
||||
F Makefile.msc 08c8bbedfa51e21b57153370edbfee86d35bbefb53e3773a3e086fe654facccb
|
||||
F autoconf/Makefile.am a8d1d24affe52ebf8d7ddcf91aa973fa0316618ab95bb68c87cabf8faf527dc8
|
||||
F ext/lsm1/lsm_unix.c 11e0a5c19d754a4e1d93dfad06de8cc201f10f886b8e61a4c599ed34e334fc24
|
||||
F ext/misc/decimal.c c1897f624893d1c12e3c879d97ca7d1c4a36cae10d32afe632779de78c4aaa4f
|
||||
F ext/misc/ieee754.c 527917ceea0e5e822857004dd155bf4d76610360e46c875f0c8c619761528758
|
||||
F main.mk c99e452dd4edd0bea28547259421bd6cf24d41d928d24720737efc548958ca39
|
||||
F src/build.c ba1bbe563a3dc02d5fed20537603181e5289c13ea30ae5e775f552e7557adbfa
|
||||
F src/shell.c.in a46df1496dea229614a14ca1c517f9e4bfecf6e3867cc6a4a129b311f3ad8c9c
|
||||
@@ -15,8 +16,7 @@ F test/speedtest1.c ea201573f9b27542ea1e74a68e74f121e0eb04c89e67039f40ed68f1b833
|
||||
F tool/mkautoconfamal.sh f62353eb6c06ab264da027fd4507d09914433dbdcab9cb011cdc18016f1ab3b8
|
||||
F tool/mksqlite3c.tcl f4ef476510eca4124c874a72029f1e01bc54a896b1724e8f9eef0d8bfae0e84c
|
||||
F tool/mksqlite3h.tcl 1f5e4a1dbbbc43c83cc6e74fe32c6c620502240b66c7c0f33a51378e78fc4edf
|
||||
P d45c27a3e5edaa2bd9ff0473e18c6536aa5d15f9a4d22dfee894a5ee4347f8d7 e1416c8b0628afa062d8cff40d0cd3576dc85460e55b21a271f88fcb608b9f59
|
||||
R 1dc74743de9bc456bb43ec5af60d4adc
|
||||
T +closed e1416c8b0628afa062d8cff40d0cd3576dc85460e55b21a271f88fcb608b9f59
|
||||
P 5391687bf8563b3fdd157b436b2cbb6a0ee5f676727d41bbddfaa8eacc39729b
|
||||
R 9df1873b31c9843b7d8070e95e535ae7
|
||||
U drh
|
||||
Z 36be594520b9cc692897ded1e5b06833
|
||||
Z e294649fafe56ea83e41b8415698390e
|
||||
|
||||
@@ -1 +1 @@
|
||||
5391687bf8563b3fdd157b436b2cbb6a0ee5f676727d41bbddfaa8eacc39729b
|
||||
4199c1e8aa47d77df3ef598cb6f5418f67970dd00f34823463c85eabfc8d2b77
|
||||
Reference in New Issue
Block a user