aboutsummaryrefslogtreecommitdiff
path: root/src/json.c
diff options
context:
space:
mode:
authordrh <>2023-03-22 16:24:17 +0000
committerdrh <>2023-03-22 16:24:17 +0000
commitc408c155d7d65f9d00e93d61449fce018d0f242b (patch)
tree7e8c49b9879eda4ef6e8f77fb8d5960c34abbabb /src/json.c
parent8854f30295cb35cb5d6185aed84d2fe6336dcf8a (diff)
parent667b5cc985d68f0f63e67a2888d0ec36c83a1688 (diff)
downloadsqlite-c408c155d7d65f9d00e93d61449fce018d0f242b.tar.gz
sqlite-c408c155d7d65f9d00e93d61449fce018d0f242b.zip
The double-to-text conversion renders infinity as 9e999, so that JSON
output is compliant and so that values can be round-tripped. FossilOrigin-Name: b52081d0acd07dc5bdb4951a3e8419866131965260c1e3a4c9b6e673bfe3dfea
Diffstat (limited to 'src/json.c')
-rw-r--r--src/json.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/src/json.c b/src/json.c
index 67448421b..9783a3898 100644
--- a/src/json.c
+++ b/src/json.c
@@ -307,8 +307,11 @@ static void jsonAppendValue(
jsonAppendRaw(p, "null", 4);
break;
}
- case SQLITE_INTEGER:
case SQLITE_FLOAT: {
+ jsonPrintf(100, p, "%!0.15g", sqlite3_value_double(pValue));
+ break;
+ }
+ case SQLITE_INTEGER: {
const char *z = (const char*)sqlite3_value_text(pValue);
u32 n = (u32)sqlite3_value_bytes(pValue);
jsonAppendRaw(p, z, n);