-- -- encoding-sensitive tests for jsonpath -- SELECT getdatabaseencoding(); -- just to label the results files -- checks for double-quoted values -- basic unicode input SELECT '"\u"'::jsonpath; -- ERROR, incomplete escape -stdin-:
: Fatal: Execution -stdin-:
:1:1: Fatal: Execution of node: Result -- checks for double-quoted values ^ -stdin-:
:1:1: Fatal: ERROR: invalid unicode sequence at or near "\u" of jsonpath input -- checks for double-quoted values ^ SELECT '"\u00"'::jsonpath; -- ERROR, incomplete escape -stdin-:
: Fatal: Execution -stdin-:
:1:1: Fatal: Execution of node: Result SELECT '"\u00"'::jsonpath; -- ERROR, incomplete escape ^ -stdin-:
:1:1: Fatal: ERROR: invalid unicode sequence at or near "\u00" of jsonpath input SELECT '"\u00"'::jsonpath; -- ERROR, incomplete escape ^ SELECT '"\u000g"'::jsonpath; -- ERROR, g is not a hex digit -stdin-:
: Fatal: Execution -stdin-:
:1:1: Fatal: Execution of node: Result SELECT '"\u000g"'::jsonpath; -- ERROR, g is not a hex digit ^ -stdin-:
:1:1: Fatal: ERROR: invalid unicode sequence at or near "\u000" of jsonpath input SELECT '"\u000g"'::jsonpath; -- ERROR, g is not a hex digit ^ SELECT '"\u0000"'::jsonpath; -- OK, legal escape -stdin-:
: Fatal: Execution -stdin-:
:1:1: Fatal: Execution of node: Result SELECT '"\u0000"'::jsonpath; -- OK, legal escape ^ -stdin-:
:1:1: Fatal: ERROR: unsupported Unicode escape sequence DETAIL: \u0000 cannot be converted to text. SELECT '"\u0000"'::jsonpath; -- OK, legal escape ^ SELECT '"\uaBcD"'::jsonpath; -- OK, uppercase and lower case both OK -- handling of unicode surrogate pairs select '"\ud83d\ude04\ud83d\udc36"'::jsonpath as correct_in_utf8; select '"\ud83d\ud83d"'::jsonpath; -- 2 high surrogates in a row -stdin-:
: Fatal: Execution -stdin-:
:1:1: Fatal: Execution of node: Result select '"\ud83d\ud83d"'::jsonpath; -- 2 high surrogates in a row ^ -stdin-:
:1:1: Fatal: ERROR: invalid input syntax for type jsonpath DETAIL: Unicode high surrogate must not follow a high surrogate. select '"\ud83d\ud83d"'::jsonpath; -- 2 high surrogates in a row ^ select '"\ude04\ud83d"'::jsonpath; -- surrogates in wrong order -stdin-:
: Fatal: Execution -stdin-:
:1:1: Fatal: Execution of node: Result select '"\ude04\ud83d"'::jsonpath; -- surrogates in wrong order ^ -stdin-:
:1:1: Fatal: ERROR: invalid input syntax for type jsonpath DETAIL: Unicode low surrogate must follow a high surrogate. select '"\ude04\ud83d"'::jsonpath; -- surrogates in wrong order ^ select '"\ud83dX"'::jsonpath; -- orphan high surrogate -stdin-:
: Fatal: Execution -stdin-:
:1:1: Fatal: Execution of node: Result select '"\ud83dX"'::jsonpath; -- orphan high surrogate ^ -stdin-:
:1:1: Fatal: ERROR: invalid input syntax for type jsonpath DETAIL: Unicode low surrogate must follow a high surrogate. select '"\ud83dX"'::jsonpath; -- orphan high surrogate ^ select '"\ude04X"'::jsonpath; -- orphan low surrogate -stdin-:
: Fatal: Execution -stdin-:
:1:1: Fatal: Execution of node: Result select '"\ude04X"'::jsonpath; -- orphan low surrogate ^ -stdin-:
:1:1: Fatal: ERROR: invalid input syntax for type jsonpath DETAIL: Unicode low surrogate must follow a high surrogate. select '"\ude04X"'::jsonpath; -- orphan low surrogate ^ --handling of simple unicode escapes select '"the Copyright \u00a9 sign"'::jsonpath as correct_in_utf8; select '"dollar \u0024 character"'::jsonpath as correct_everywhere; select '"dollar \\u0024 character"'::jsonpath as not_an_escape; select '"null \u0000 escape"'::jsonpath as not_unescaped; -stdin-:
: Fatal: Execution -stdin-:
:1:1: Fatal: Execution of node: Result select '"null \u0000 escape"'::jsonpath as not_unescaped; ^ -stdin-:
:1:1: Fatal: ERROR: unsupported Unicode escape sequence DETAIL: \u0000 cannot be converted to text. select '"null \u0000 escape"'::jsonpath as not_unescaped; ^ select '"null \\u0000 escape"'::jsonpath as not_an_escape; -- checks for quoted key names -- basic unicode input SELECT '$."\u"'::jsonpath; -- ERROR, incomplete escape -stdin-:
: Fatal: Execution -stdin-:
:1:1: Fatal: Execution of node: Result -- checks for quoted key names ^ -stdin-:
:1:1: Fatal: ERROR: invalid unicode sequence at or near "\u" of jsonpath input -- checks for quoted key names ^ SELECT '$."\u00"'::jsonpath; -- ERROR, incomplete escape -stdin-:
: Fatal: Execution -stdin-:
:1:1: Fatal: Execution of node: Result SELECT '$."\u00"'::jsonpath; -- ERROR, incomplete escape ^ -stdin-:
:1:1: Fatal: ERROR: invalid unicode sequence at or near "\u00" of jsonpath input SELECT '$."\u00"'::jsonpath; -- ERROR, incomplete escape ^ SELECT '$."\u000g"'::jsonpath; -- ERROR, g is not a hex digit -stdin-:
: Fatal: Execution -stdin-:
:1:1: Fatal: Execution of node: Result SELECT '$."\u000g"'::jsonpath; -- ERROR, g is not a hex digit ^ -stdin-:
:1:1: Fatal: ERROR: invalid unicode sequence at or near "\u000" of jsonpath input SELECT '$."\u000g"'::jsonpath; -- ERROR, g is not a hex digit ^ SELECT '$."\u0000"'::jsonpath; -- OK, legal escape -stdin-:
: Fatal: Execution -stdin-:
:1:1: Fatal: Execution of node: Result SELECT '$."\u0000"'::jsonpath; -- OK, legal escape ^ -stdin-:
:1:1: Fatal: ERROR: unsupported Unicode escape sequence DETAIL: \u0000 cannot be converted to text. SELECT '$."\u0000"'::jsonpath; -- OK, legal escape ^ SELECT '$."\uaBcD"'::jsonpath; -- OK, uppercase and lower case both OK -- handling of unicode surrogate pairs select '$."\ud83d\ude04\ud83d\udc36"'::jsonpath as correct_in_utf8; select '$."\ud83d\ud83d"'::jsonpath; -- 2 high surrogates in a row -stdin-:
: Fatal: Execution -stdin-:
:1:1: Fatal: Execution of node: Result select '$."\ud83d\ud83d"'::jsonpath; -- 2 high surrogates in a row ^ -stdin-:
:1:1: Fatal: ERROR: invalid input syntax for type jsonpath DETAIL: Unicode high surrogate must not follow a high surrogate. select '$."\ud83d\ud83d"'::jsonpath; -- 2 high surrogates in a row ^ select '$."\ude04\ud83d"'::jsonpath; -- surrogates in wrong order -stdin-:
: Fatal: Execution -stdin-:
:1:1: Fatal: Execution of node: Result select '$."\ude04\ud83d"'::jsonpath; -- surrogates in wrong order ^ -stdin-:
:1:1: Fatal: ERROR: invalid input syntax for type jsonpath DETAIL: Unicode low surrogate must follow a high surrogate. select '$."\ude04\ud83d"'::jsonpath; -- surrogates in wrong order ^ select '$."\ud83dX"'::jsonpath; -- orphan high surrogate -stdin-:
: Fatal: Execution -stdin-:
:1:1: Fatal: Execution of node: Result select '$."\ud83dX"'::jsonpath; -- orphan high surrogate ^ -stdin-:
:1:1: Fatal: ERROR: invalid input syntax for type jsonpath DETAIL: Unicode low surrogate must follow a high surrogate. select '$."\ud83dX"'::jsonpath; -- orphan high surrogate ^ select '$."\ude04X"'::jsonpath; -- orphan low surrogate -stdin-:
: Fatal: Execution -stdin-:
:1:1: Fatal: Execution of node: Result select '$."\ude04X"'::jsonpath; -- orphan low surrogate ^ -stdin-:
:1:1: Fatal: ERROR: invalid input syntax for type jsonpath DETAIL: Unicode low surrogate must follow a high surrogate. select '$."\ude04X"'::jsonpath; -- orphan low surrogate ^ --handling of simple unicode escapes select '$."the Copyright \u00a9 sign"'::jsonpath as correct_in_utf8; select '$."dollar \u0024 character"'::jsonpath as correct_everywhere; select '$."dollar \\u0024 character"'::jsonpath as not_an_escape; select '$."null \u0000 escape"'::jsonpath as not_unescaped; -stdin-:
: Fatal: Execution -stdin-:
:1:1: Fatal: Execution of node: Result select '$."null \u0000 escape"'::jsonpath as not_unescaped; ^ -stdin-:
:1:1: Fatal: ERROR: unsupported Unicode escape sequence DETAIL: \u0000 cannot be converted to text. select '$."null \u0000 escape"'::jsonpath as not_unescaped; ^ select '$."null \\u0000 escape"'::jsonpath as not_an_escape;