72 lines
1.3 KiB
SQL
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
|