aboutsummaryrefslogtreecommitdiff
path: root/src/test/regress/expected/jsonpath_encoding.out
diff options
context:
space:
mode:
Diffstat (limited to 'src/test/regress/expected/jsonpath_encoding.out')
-rw-r--r--src/test/regress/expected/jsonpath_encoding.out249
1 files changed, 249 insertions, 0 deletions
diff --git a/src/test/regress/expected/jsonpath_encoding.out b/src/test/regress/expected/jsonpath_encoding.out
new file mode 100644
index 00000000000..6d828d17248
--- /dev/null
+++ b/src/test/regress/expected/jsonpath_encoding.out
@@ -0,0 +1,249 @@
+-- encoding-sensitive tests for jsonpath
+-- checks for double-quoted values
+-- basic unicode input
+SELECT '"\u"'::jsonpath; -- ERROR, incomplete escape
+ERROR: bad jsonpath representation
+LINE 1: SELECT '"\u"'::jsonpath;
+ ^
+DETAIL: Unicode sequence is invalid at or near "\u"
+SELECT '"\u00"'::jsonpath; -- ERROR, incomplete escape
+ERROR: bad jsonpath representation
+LINE 1: SELECT '"\u00"'::jsonpath;
+ ^
+DETAIL: Unicode sequence is invalid at or near "\u00"
+SELECT '"\u000g"'::jsonpath; -- ERROR, g is not a hex digit
+ERROR: bad jsonpath representation
+LINE 1: SELECT '"\u000g"'::jsonpath;
+ ^
+DETAIL: Unicode sequence is invalid at or near "\u000"
+SELECT '"\u0000"'::jsonpath; -- OK, legal escape
+ERROR: unsupported Unicode escape sequence
+LINE 1: SELECT '"\u0000"'::jsonpath;
+ ^
+DETAIL: \u0000 cannot be converted to text.
+SELECT '"\uaBcD"'::jsonpath; -- OK, uppercase and lower case both OK
+ jsonpath
+----------
+ "ꯍ"
+(1 row)
+
+-- handling of unicode surrogate pairs
+select '"\ud83d\ude04\ud83d\udc36"'::jsonpath as correct_in_utf8;
+ correct_in_utf8
+-----------------
+ "😄🐶"
+(1 row)
+
+select '"\ud83d\ud83d"'::jsonpath; -- 2 high surrogates in a row
+ERROR: invalid input syntax for type jsonpath
+LINE 1: select '"\ud83d\ud83d"'::jsonpath;
+ ^
+DETAIL: Unicode high surrogate must not follow a high surrogate.
+select '"\ude04\ud83d"'::jsonpath; -- surrogates in wrong order
+ERROR: invalid input syntax for type jsonpath
+LINE 1: select '"\ude04\ud83d"'::jsonpath;
+ ^
+DETAIL: Unicode low surrogate must follow a high surrogate.
+select '"\ud83dX"'::jsonpath; -- orphan high surrogate
+ERROR: invalid input syntax for type jsonpath
+LINE 1: select '"\ud83dX"'::jsonpath;
+ ^
+DETAIL: Unicode low surrogate must follow a high surrogate.
+select '"\ude04X"'::jsonpath; -- orphan low surrogate
+ERROR: invalid input syntax for type jsonpath
+LINE 1: select '"\ude04X"'::jsonpath;
+ ^
+DETAIL: Unicode low surrogate must follow a high surrogate.
+--handling of simple unicode escapes
+select '"the Copyright \u00a9 sign"'::jsonpath as correct_in_utf8;
+ correct_in_utf8
+------------------------
+ "the Copyright © sign"
+(1 row)
+
+select '"dollar \u0024 character"'::jsonpath as correct_everywhere;
+ correct_everywhere
+----------------------
+ "dollar $ character"
+(1 row)
+
+select '"dollar \\u0024 character"'::jsonpath as not_an_escape;
+ not_an_escape
+----------------------------
+ "dollar \\u0024 character"
+(1 row)
+
+select '"null \u0000 escape"'::jsonpath as not_unescaped;
+ERROR: unsupported Unicode escape sequence
+LINE 1: select '"null \u0000 escape"'::jsonpath as not_unescaped;
+ ^
+DETAIL: \u0000 cannot be converted to text.
+select '"null \\u0000 escape"'::jsonpath as not_an_escape;
+ not_an_escape
+-----------------------
+ "null \\u0000 escape"
+(1 row)
+
+-- checks for single-quoted values
+-- basic unicode input
+SELECT E'\'\u\''::jsonpath; -- ERROR, incomplete escape
+ERROR: invalid Unicode escape
+LINE 1: SELECT E'\'\u\''::jsonpath;
+ ^
+HINT: Unicode escapes must be \uXXXX or \UXXXXXXXX.
+SELECT E'\'\u00\''::jsonpath; -- ERROR, incomplete escape
+ERROR: invalid Unicode escape
+LINE 1: SELECT E'\'\u00\''::jsonpath;
+ ^
+HINT: Unicode escapes must be \uXXXX or \UXXXXXXXX.
+SELECT E'\'\u000g\''::jsonpath; -- ERROR, g is not a hex digit
+ERROR: invalid Unicode escape
+LINE 1: SELECT E'\'\u000g\''::jsonpath;
+ ^
+HINT: Unicode escapes must be \uXXXX or \UXXXXXXXX.
+SELECT E'\'\u0000\''::jsonpath; -- OK, legal escape
+ERROR: invalid Unicode escape value at or near "E'\'\u0000"
+LINE 1: SELECT E'\'\u0000\''::jsonpath;
+ ^
+SELECT E'\'\uaBcD\''::jsonpath; -- OK, uppercase and lower case both OK
+ jsonpath
+----------
+ "ꯍ"
+(1 row)
+
+-- handling of unicode surrogate pairs
+select E'\'\ud83d\ude04\ud83d\udc36\''::jsonpath as correct_in_utf8;
+ correct_in_utf8
+-----------------
+ "😄🐶"
+(1 row)
+
+select E'\'\ud83d\ud83d\''::jsonpath; -- 2 high surrogates in a row
+ERROR: invalid Unicode surrogate pair at or near "E'\'\ud83d\ud83d"
+LINE 1: select E'\'\ud83d\ud83d\''::jsonpath;
+ ^
+select E'\'\ude04\ud83d\''::jsonpath; -- surrogates in wrong order
+ERROR: invalid Unicode surrogate pair at or near "E'\'\ude04"
+LINE 1: select E'\'\ude04\ud83d\''::jsonpath;
+ ^
+select E'\'\ud83dX\''::jsonpath; -- orphan high surrogate
+ERROR: invalid Unicode surrogate pair at or near "E'\'\ud83dX"
+LINE 1: select E'\'\ud83dX\''::jsonpath;
+ ^
+select E'\'\ude04X\''::jsonpath; -- orphan low surrogate
+ERROR: invalid Unicode surrogate pair at or near "E'\'\ude04"
+LINE 1: select E'\'\ude04X\''::jsonpath;
+ ^
+--handling of simple unicode escapes
+select E'\'the Copyright \u00a9 sign\''::jsonpath as correct_in_utf8;
+ correct_in_utf8
+------------------------
+ "the Copyright © sign"
+(1 row)
+
+select E'\'dollar \u0024 character\''::jsonpath as correct_everywhere;
+ correct_everywhere
+----------------------
+ "dollar $ character"
+(1 row)
+
+select E'\'dollar \\u0024 character\''::jsonpath as not_an_escape;
+ not_an_escape
+----------------------
+ "dollar $ character"
+(1 row)
+
+select E'\'null \u0000 escape\''::jsonpath as not_unescaped;
+ERROR: invalid Unicode escape value at or near "E'\'null \u0000"
+LINE 1: select E'\'null \u0000 escape\''::jsonpath as not_unescaped;
+ ^
+select E'\'null \\u0000 escape\''::jsonpath as not_an_escape;
+ERROR: unsupported Unicode escape sequence
+LINE 1: select E'\'null \\u0000 escape\''::jsonpath as not_an_escape...
+ ^
+DETAIL: \u0000 cannot be converted to text.
+-- checks for quoted key names
+-- basic unicode input
+SELECT '$."\u"'::jsonpath; -- ERROR, incomplete escape
+ERROR: bad jsonpath representation
+LINE 1: SELECT '$."\u"'::jsonpath;
+ ^
+DETAIL: Unicode sequence is invalid at or near "\u"
+SELECT '$."\u00"'::jsonpath; -- ERROR, incomplete escape
+ERROR: bad jsonpath representation
+LINE 1: SELECT '$."\u00"'::jsonpath;
+ ^
+DETAIL: Unicode sequence is invalid at or near "\u00"
+SELECT '$."\u000g"'::jsonpath; -- ERROR, g is not a hex digit
+ERROR: bad jsonpath representation
+LINE 1: SELECT '$."\u000g"'::jsonpath;
+ ^
+DETAIL: Unicode sequence is invalid at or near "\u000"
+SELECT '$."\u0000"'::jsonpath; -- OK, legal escape
+ERROR: unsupported Unicode escape sequence
+LINE 1: SELECT '$."\u0000"'::jsonpath;
+ ^
+DETAIL: \u0000 cannot be converted to text.
+SELECT '$."\uaBcD"'::jsonpath; -- OK, uppercase and lower case both OK
+ jsonpath
+----------
+ $."ꯍ"
+(1 row)
+
+-- handling of unicode surrogate pairs
+select '$."\ud83d\ude04\ud83d\udc36"'::jsonpath as correct_in_utf8;
+ correct_in_utf8
+-----------------
+ $."😄🐶"
+(1 row)
+
+select '$."\ud83d\ud83d"'::jsonpath; -- 2 high surrogates in a row
+ERROR: invalid input syntax for type jsonpath
+LINE 1: select '$."\ud83d\ud83d"'::jsonpath;
+ ^
+DETAIL: Unicode high surrogate must not follow a high surrogate.
+select '$."\ude04\ud83d"'::jsonpath; -- surrogates in wrong order
+ERROR: invalid input syntax for type jsonpath
+LINE 1: select '$."\ude04\ud83d"'::jsonpath;
+ ^
+DETAIL: Unicode low surrogate must follow a high surrogate.
+select '$."\ud83dX"'::jsonpath; -- orphan high surrogate
+ERROR: invalid input syntax for type jsonpath
+LINE 1: select '$."\ud83dX"'::jsonpath;
+ ^
+DETAIL: Unicode low surrogate must follow a high surrogate.
+select '$."\ude04X"'::jsonpath; -- orphan low surrogate
+ERROR: invalid input syntax for type jsonpath
+LINE 1: select '$."\ude04X"'::jsonpath;
+ ^
+DETAIL: Unicode low surrogate must follow a high surrogate.
+--handling of simple unicode escapes
+select '$."the Copyright \u00a9 sign"'::jsonpath as correct_in_utf8;
+ correct_in_utf8
+--------------------------
+ $."the Copyright © sign"
+(1 row)
+
+select '$."dollar \u0024 character"'::jsonpath as correct_everywhere;
+ correct_everywhere
+------------------------
+ $."dollar $ character"
+(1 row)
+
+select '$."dollar \\u0024 character"'::jsonpath as not_an_escape;
+ not_an_escape
+------------------------------
+ $."dollar \\u0024 character"
+(1 row)
+
+select '$."null \u0000 escape"'::jsonpath as not_unescaped;
+ERROR: unsupported Unicode escape sequence
+LINE 1: select '$."null \u0000 escape"'::jsonpath as not_unescaped;
+ ^
+DETAIL: \u0000 cannot be converted to text.
+select '$."null \\u0000 escape"'::jsonpath as not_an_escape;
+ not_an_escape
+-------------------------
+ $."null \\u0000 escape"
+(1 row)
+