diff options
Diffstat (limited to 'src/test')
-rw-r--r-- | src/test/regress/expected/jsonpath.out | 18 | ||||
-rw-r--r-- | src/test/regress/expected/jsonpath_encoding.out | 78 | ||||
-rw-r--r-- | src/test/regress/expected/jsonpath_encoding_1.out | 72 | ||||
-rw-r--r-- | src/test/regress/sql/jsonpath.sql | 3 | ||||
-rw-r--r-- | src/test/regress/sql/jsonpath_encoding.sql | 23 |
5 files changed, 7 insertions, 187 deletions
diff --git a/src/test/regress/expected/jsonpath.out b/src/test/regress/expected/jsonpath.out index ea42ae367a3..fc971dc408e 100644 --- a/src/test/regress/expected/jsonpath.out +++ b/src/test/regress/expected/jsonpath.out @@ -171,30 +171,24 @@ select '"\b\f\r\n\t\v\"\''\\"'::jsonpath; "\b\f\r\n\t\u000b\"'\\" (1 row) -select '''\b\f\r\n\t\v\"\''\\'''::jsonpath; - jsonpath -------------------------- - "\b\f\r\n\t\u000b\"'\\" -(1 row) - select '"\x50\u0067\u{53}\u{051}\u{00004C}"'::jsonpath; jsonpath ---------- "PgSQL" (1 row) -select '''\x50\u0067\u{53}\u{051}\u{00004C}'''::jsonpath; - jsonpath ----------- - "PgSQL" -(1 row) - select '$.foo\x50\u0067\u{53}\u{051}\u{00004C}\t\"bar'::jsonpath; jsonpath --------------------- $."fooPgSQL\t\"bar" (1 row) +select '"\z"'::jsonpath; -- unrecognized escape is just the literal char + jsonpath +---------- + "z" +(1 row) + select '$.g ? ($.a == 1)'::jsonpath; jsonpath -------------------- diff --git a/src/test/regress/expected/jsonpath_encoding.out b/src/test/regress/expected/jsonpath_encoding.out index 8db6e47dbbc..ecffe095b59 100644 --- a/src/test/regress/expected/jsonpath_encoding.out +++ b/src/test/regress/expected/jsonpath_encoding.out @@ -81,84 +81,6 @@ select '"null \\u0000 escape"'::jsonpath as 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 diff --git a/src/test/regress/expected/jsonpath_encoding_1.out b/src/test/regress/expected/jsonpath_encoding_1.out index e6dff25d45b..c8cc2173a8c 100644 --- a/src/test/regress/expected/jsonpath_encoding_1.out +++ b/src/test/regress/expected/jsonpath_encoding_1.out @@ -78,78 +78,6 @@ select '"null \\u0000 escape"'::jsonpath as 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 -ERROR: Unicode escape values cannot be used for code point values above 007F when the server encoding is not UTF8 at or near "E'\'\uaBcD" -LINE 1: SELECT E'\'\uaBcD\''::jsonpath; - ^ --- handling of unicode surrogate pairs -select E'\'\ud83d\ude04\ud83d\udc36\''::jsonpath as correct_in_utf8; -ERROR: Unicode escape values cannot be used for code point values above 007F when the server encoding is not UTF8 at or near "E'\'\ud83d\ude04" -LINE 1: select E'\'\ud83d\ude04\ud83d\udc36\''::jsonpath as correct_... - ^ -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; -ERROR: Unicode escape values cannot be used for code point values above 007F when the server encoding is not UTF8 at or near "E'\'the Copyright \u00a9" -LINE 1: select E'\'the Copyright \u00a9 sign\''::jsonpath as correct... - ^ -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 diff --git a/src/test/regress/sql/jsonpath.sql b/src/test/regress/sql/jsonpath.sql index 29ea77a4858..7afe2528c3b 100644 --- a/src/test/regress/sql/jsonpath.sql +++ b/src/test/regress/sql/jsonpath.sql @@ -30,10 +30,9 @@ select '$.a/+-1'::jsonpath; select '1 * 2 + 4 % -3 != false'::jsonpath; select '"\b\f\r\n\t\v\"\''\\"'::jsonpath; -select '''\b\f\r\n\t\v\"\''\\'''::jsonpath; select '"\x50\u0067\u{53}\u{051}\u{00004C}"'::jsonpath; -select '''\x50\u0067\u{53}\u{051}\u{00004C}'''::jsonpath; select '$.foo\x50\u0067\u{53}\u{051}\u{00004C}\t\"bar'::jsonpath; +select '"\z"'::jsonpath; -- unrecognized escape is just the literal char select '$.g ? ($.a == 1)'::jsonpath; select '$.g ? (@ == 1)'::jsonpath; diff --git a/src/test/regress/sql/jsonpath_encoding.sql b/src/test/regress/sql/jsonpath_encoding.sql index a3b5bc39a1c..3a23b728182 100644 --- a/src/test/regress/sql/jsonpath_encoding.sql +++ b/src/test/regress/sql/jsonpath_encoding.sql @@ -24,29 +24,6 @@ select '"dollar \\u0024 character"'::jsonpath as not_an_escape; select '"null \u0000 escape"'::jsonpath as not_unescaped; select '"null \\u0000 escape"'::jsonpath as not_an_escape; --- checks for single-quoted values - --- basic unicode input -SELECT E'\'\u\''::jsonpath; -- ERROR, incomplete escape -SELECT E'\'\u00\''::jsonpath; -- ERROR, incomplete escape -SELECT E'\'\u000g\''::jsonpath; -- ERROR, g is not a hex digit -SELECT E'\'\u0000\''::jsonpath; -- OK, legal escape -SELECT E'\'\uaBcD\''::jsonpath; -- OK, uppercase and lower case both OK - --- handling of unicode surrogate pairs -select E'\'\ud83d\ude04\ud83d\udc36\''::jsonpath as correct_in_utf8; -select E'\'\ud83d\ud83d\''::jsonpath; -- 2 high surrogates in a row -select E'\'\ude04\ud83d\''::jsonpath; -- surrogates in wrong order -select E'\'\ud83dX\''::jsonpath; -- orphan high surrogate -select E'\'\ude04X\''::jsonpath; -- orphan low surrogate - ---handling of simple unicode escapes -select E'\'the Copyright \u00a9 sign\''::jsonpath as correct_in_utf8; -select E'\'dollar \u0024 character\''::jsonpath as correct_everywhere; -select E'\'dollar \\u0024 character\''::jsonpath as not_an_escape; -select E'\'null \u0000 escape\''::jsonpath as not_unescaped; -select E'\'null \\u0000 escape\''::jsonpath as not_an_escape; - -- checks for quoted key names -- basic unicode input |