summaryrefslogtreecommitdiff
path: root/src/test/regress/sql/json.sql
diff options
context:
space:
mode:
Diffstat (limited to 'src/test/regress/sql/json.sql')
-rw-r--r--src/test/regress/sql/json.sql8
1 files changed, 7 insertions, 1 deletions
diff --git a/src/test/regress/sql/json.sql b/src/test/regress/sql/json.sql
index 5b6bc36517..4c4c6958bb 100644
--- a/src/test/regress/sql/json.sql
+++ b/src/test/regress/sql/json.sql
@@ -299,8 +299,14 @@ select * from json_populate_recordset(row('def',99,null)::jpop,'[{"c":[100,200,3
-- handling of unicode surrogate pairs
-select json '{ "a": "\ud83d\ude04\ud83d\udc36" }' -> 'a' as correct;
+select json '{ "a": "\ud83d\ude04\ud83d\udc36" }' -> 'a' as correct_in_utf8;
select json '{ "a": "\ud83d\ud83d" }' -> 'a'; -- 2 high surrogates in a row
select json '{ "a": "\ude04\ud83d" }' -> 'a'; -- surrogates in wrong order
select json '{ "a": "\ud83dX" }' -> 'a'; -- orphan high surrogate
select json '{ "a": "\ude04X" }' -> 'a'; -- orphan low surrogate
+
+--handling of simple unicode escapes
+
+select json '{ "a": "the Copyright \u00a9 sign" }' ->> 'a' as correct_in_utf8;
+select json '{ "a": "dollar \u0024 character" }' ->> 'a' as correct_everywhere;
+select json '{ "a": "null \u0000 escape" }' ->> 'a' as not_unescaped;