diff options
Diffstat (limited to 'src/test/regress/sql')
| -rw-r--r-- | src/test/regress/sql/json.sql | 5 | ||||
| -rw-r--r-- | src/test/regress/sql/json_encoding.sql | 4 | ||||
| -rw-r--r-- | src/test/regress/sql/jsonb.sql | 6 |
3 files changed, 15 insertions, 0 deletions
diff --git a/src/test/regress/sql/json.sql b/src/test/regress/sql/json.sql index 589e0cea36..21534ed959 100644 --- a/src/test/regress/sql/json.sql +++ b/src/test/regress/sql/json.sql @@ -81,6 +81,11 @@ SELECT '{ "averyveryveryveryveryveryveryveryveryverylongfieldname":}'::json; -- ERROR missing value for last field +-- test non-error-throwing input +select pg_input_is_valid('{"a":true}', 'json'); +select pg_input_is_valid('{"a":true', 'json'); +select pg_input_error_message('{"a":true', 'json'); + --constructors -- array_to_json diff --git a/src/test/regress/sql/json_encoding.sql b/src/test/regress/sql/json_encoding.sql index d7fac69733..f87b3bd4f3 100644 --- a/src/test/regress/sql/json_encoding.sql +++ b/src/test/regress/sql/json_encoding.sql @@ -76,3 +76,7 @@ SELECT jsonb '{ "a": "dollar \u0024 character" }' ->> 'a' as correct_everywhere SELECT jsonb '{ "a": "dollar \\u0024 character" }' ->> 'a' as not_an_escape; SELECT jsonb '{ "a": "null \u0000 escape" }' ->> 'a' as fails; SELECT jsonb '{ "a": "null \\u0000 escape" }' ->> 'a' as not_an_escape; + +-- soft error for input-time failure + +select pg_input_error_message('{ "a": "\ud83d\ude04\ud83d\udc36" }', 'jsonb'); diff --git a/src/test/regress/sql/jsonb.sql b/src/test/regress/sql/jsonb.sql index 8d25966267..bc44ad1518 100644 --- a/src/test/regress/sql/jsonb.sql +++ b/src/test/regress/sql/jsonb.sql @@ -86,6 +86,12 @@ SELECT '{ "averyveryveryveryveryveryveryveryveryverylongfieldname":}'::jsonb; -- ERROR missing value for last field +-- test non-error-throwing input +select pg_input_is_valid('{"a":true}', 'jsonb'); +select pg_input_is_valid('{"a":true', 'jsonb'); +select pg_input_error_message('{"a":true', 'jsonb'); +select pg_input_error_message('{"a":1e1000000}', 'jsonb'); + -- make sure jsonb is passed through json generators without being escaped SELECT array_to_json(ARRAY [jsonb '{"a":1}', jsonb '{"b":[2,3]}']); |
