From 6ed02164f1122bfde4eee600c4f4f40c10b6ab4d Mon Sep 17 00:00:00 2001 From: Shihao Date: Fri, 18 Sep 2026 23:15:03 -0400 Subject: [PATCH 2/2] Add tests for JSON_SERIALIZE() with a jsonb argument Cover the default RETURNING type and bytea. Also cover a varchar that is too short and a NULL input. --- src/test/regress/expected/sqljson.out | 21 +++++++++++++++++++++ src/test/regress/sql/sqljson.sql | 6 ++++++ 2 files changed, 27 insertions(+) diff --git a/src/test/regress/expected/sqljson.out b/src/test/regress/expected/sqljson.out index 1085475541b..d2c58010235 100644 --- a/src/test/regress/expected/sqljson.out +++ b/src/test/regress/expected/sqljson.out @@ -270,6 +270,27 @@ SELECT pg_typeof(JSON_SERIALIZE(NULL)); text (1 row) +-- jsonb input +SELECT JSON_SERIALIZE('{"b": [1, 2], "a": "x"}'::jsonb); + json_serialize +------------------------- + {"a": "x", "b": [1, 2]} +(1 row) + +SELECT JSON_SERIALIZE('[1, 2, 4]'::jsonb RETURNING bytea); + json_serialize +---------------------- + \x5b312c20322c20345d +(1 row) + +SELECT JSON_SERIALIZE('[1, 2, 4]'::jsonb RETURNING varchar(3)); +ERROR: value too long for type character varying(3) +SELECT JSON_SERIALIZE(NULL::jsonb); + json_serialize +---------------- + +(1 row) + -- only string types or bytea allowed SELECT JSON_SERIALIZE('{ "a" : 1 } ' RETURNING jsonb); ERROR: cannot use type jsonb in RETURNING clause of JSON_SERIALIZE() diff --git a/src/test/regress/sql/sqljson.sql b/src/test/regress/sql/sqljson.sql index 43106fdda96..3eeedbdc7ae 100644 --- a/src/test/regress/sql/sqljson.sql +++ b/src/test/regress/sql/sqljson.sql @@ -55,6 +55,12 @@ SELECT JSON_SERIALIZE('{ "a" : 1 } ' RETURNING bytea); SELECT JSON_SERIALIZE('{ "a" : 1 } ' RETURNING varchar); SELECT pg_typeof(JSON_SERIALIZE(NULL)); +-- jsonb input +SELECT JSON_SERIALIZE('{"b": [1, 2], "a": "x"}'::jsonb); +SELECT JSON_SERIALIZE('[1, 2, 4]'::jsonb RETURNING bytea); +SELECT JSON_SERIALIZE('[1, 2, 4]'::jsonb RETURNING varchar(3)); +SELECT JSON_SERIALIZE(NULL::jsonb); + -- only string types or bytea allowed SELECT JSON_SERIALIZE('{ "a" : 1 } ' RETURNING jsonb); -- 2.37.1 (Apple Git-137.1)