Files
email-tracker/external/duckdb/test/sql/json/issues/issue15038.test
2025-10-24 19:21:19 -05:00

72 lines
1.3 KiB
SQL

# name: test/sql/json/issues/issue15038.test
# description: Test issue 15038 - TO_JSON results in weird number translation
# group: [issues]
require json
# we support full precision in JSON - yyjson supports RAW values
query I
SELECT to_json(1::HUGEINT << 100)
----
1267650600228229401496703205376
query I
SELECT (1::HUGEINT << 100)::JSON
----
1267650600228229401496703205376
query I
SELECT to_json(1::UHUGEINT << 100)
----
1267650600228229401496703205376
query I
SELECT (1::UHUGEINT << 100)::JSON
----
1267650600228229401496703205376
query I
SELECT to_json((1::UHUGEINT << 100)::DECIMAL(38,0))
----
1267650600228229401496703205376
query I
SELECT (1::UHUGEINT << 100)::DECIMAL(38,0)::JSON
----
1267650600228229401496703205376
query I
SELECT to_json((1::HUGEINT << 100)::BIGNUM)
----
1267650600228229401496703205376
query I
SELECT (1::HUGEINT << 100)::BIGNUM::JSON
----
1267650600228229401496703205376
# original issue (#15038)
query I rowsort
WITH t1 AS (
SELECT 9007199254740993 AS id
UNION ALL
SELECT 1.2 AS id
)
SELECT to_json(id) AS json_objects
FROM t1 AS t;
----
1.2
9007199254740993.0
query I rowsort
WITH t1 AS (
SELECT 9007199254740993 AS id
UNION ALL
SELECT 1.2 AS id
)
SELECT id::JSON AS json_objects
FROM t1 AS t;
----
1.2
9007199254740993.0