1--jsonpath io 2 3select ''::jsonpath; 4select '$'::jsonpath; 5select 'strict $'::jsonpath; 6select 'lax $'::jsonpath; 7select '$.a'::jsonpath; 8select '$.a.v'::jsonpath; 9select '$.a.*'::jsonpath; 10select '$.*[*]'::jsonpath; 11select '$.a[*]'::jsonpath; 12select '$.a[*][*]'::jsonpath; 13select '$[*]'::jsonpath; 14select '$[0]'::jsonpath; 15select '$[*][0]'::jsonpath; 16select '$[*].a'::jsonpath; 17select '$[*][0].a.b'::jsonpath; 18select '$.a.**.b'::jsonpath; 19select '$.a.**{2}.b'::jsonpath; 20select '$.a.**{2 to 2}.b'::jsonpath; 21select '$.a.**{2 to 5}.b'::jsonpath; 22select '$.a.**{0 to 5}.b'::jsonpath; 23select '$.a.**{5 to last}.b'::jsonpath; 24select '$.a.**{last}.b'::jsonpath; 25select '$.a.**{last to 5}.b'::jsonpath; 26select '$+1'::jsonpath; 27select '$-1'::jsonpath; 28select '$--+1'::jsonpath; 29select '$.a/+-1'::jsonpath; 30select '1 * 2 + 4 % -3 != false'::jsonpath; 31 32select '"\b\f\r\n\t\v\"\''\\"'::jsonpath; 33select '"\x50\u0067\u{53}\u{051}\u{00004C}"'::jsonpath; 34select '$.foo\x50\u0067\u{53}\u{051}\u{00004C}\t\"bar'::jsonpath; 35select '"\z"'::jsonpath; -- unrecognized escape is just the literal char 36 37select '$.g ? ($.a == 1)'::jsonpath; 38select '$.g ? (@ == 1)'::jsonpath; 39select '$.g ? (@.a == 1)'::jsonpath; 40select '$.g ? (@.a == 1 || @.a == 4)'::jsonpath; 41select '$.g ? (@.a == 1 && @.a == 4)'::jsonpath; 42select '$.g ? (@.a == 1 || @.a == 4 && @.b == 7)'::jsonpath; 43select '$.g ? (@.a == 1 || !(@.a == 4) && @.b == 7)'::jsonpath; 44select '$.g ? (@.a == 1 || !(@.x >= 123 || @.a == 4) && @.b == 7)'::jsonpath; 45select '$.g ? (@.x >= @[*]?(@.a > "abc"))'::jsonpath; 46select '$.g ? ((@.x >= 123 || @.a == 4) is unknown)'::jsonpath; 47select '$.g ? (exists (@.x))'::jsonpath; 48select '$.g ? (exists (@.x ? (@ == 14)))'::jsonpath; 49select '$.g ? ((@.x >= 123 || @.a == 4) && exists (@.x ? (@ == 14)))'::jsonpath; 50select '$.g ? (+@.x >= +-(+@.a + 2))'::jsonpath; 51 52select '$a'::jsonpath; 53select '$a.b'::jsonpath; 54select '$a[*]'::jsonpath; 55select '$.g ? (@.zip == $zip)'::jsonpath; 56select '$.a[1,2, 3 to 16]'::jsonpath; 57select '$.a[$a + 1, ($b[*]) to -($[0] * 2)]'::jsonpath; 58select '$.a[$.a.size() - 3]'::jsonpath; 59select 'last'::jsonpath; 60select '"last"'::jsonpath; 61select '$.last'::jsonpath; 62select '$ ? (last > 0)'::jsonpath; 63select '$[last]'::jsonpath; 64select '$[$[0] ? (last > 0)]'::jsonpath; 65 66select 'null.type()'::jsonpath; 67select '1.type()'::jsonpath; 68select '(1).type()'::jsonpath; 69select '1.2.type()'::jsonpath; 70select '"aaa".type()'::jsonpath; 71select 'true.type()'::jsonpath; 72select '$.double().floor().ceiling().abs()'::jsonpath; 73select '$.keyvalue().key'::jsonpath; 74select '$.datetime()'::jsonpath; 75select '$.datetime("datetime template")'::jsonpath; 76 77select '$ ? (@ starts with "abc")'::jsonpath; 78select '$ ? (@ starts with $var)'::jsonpath; 79 80select '$ ? (@ like_regex "(invalid pattern")'::jsonpath; 81select '$ ? (@ like_regex "pattern")'::jsonpath; 82select '$ ? (@ like_regex "pattern" flag "")'::jsonpath; 83select '$ ? (@ like_regex "pattern" flag "i")'::jsonpath; 84select '$ ? (@ like_regex "pattern" flag "is")'::jsonpath; 85select '$ ? (@ like_regex "pattern" flag "isim")'::jsonpath; 86select '$ ? (@ like_regex "pattern" flag "xsms")'::jsonpath; 87select '$ ? (@ like_regex "pattern" flag "q")'::jsonpath; 88select '$ ? (@ like_regex "pattern" flag "iq")'::jsonpath; 89select '$ ? (@ like_regex "pattern" flag "smixq")'::jsonpath; 90select '$ ? (@ like_regex "pattern" flag "a")'::jsonpath; 91 92select '$ < 1'::jsonpath; 93select '($ < 1) || $.a.b <= $x'::jsonpath; 94select '@ + 1'::jsonpath; 95 96select '($).a.b'::jsonpath; 97select '($.a.b).c.d'::jsonpath; 98select '($.a.b + -$.x.y).c.d'::jsonpath; 99select '(-+$.a.b).c.d'::jsonpath; 100select '1 + ($.a.b + 2).c.d'::jsonpath; 101select '1 + ($.a.b > 2).c.d'::jsonpath; 102select '($)'::jsonpath; 103select '(($))'::jsonpath; 104select '((($ + 1)).a + ((2)).b ? ((((@ > 1)) || (exists(@.c)))))'::jsonpath; 105 106select '$ ? (@.a < 1)'::jsonpath; 107select '$ ? (@.a < -1)'::jsonpath; 108select '$ ? (@.a < +1)'::jsonpath; 109select '$ ? (@.a < .1)'::jsonpath; 110select '$ ? (@.a < -.1)'::jsonpath; 111select '$ ? (@.a < +.1)'::jsonpath; 112select '$ ? (@.a < 0.1)'::jsonpath; 113select '$ ? (@.a < -0.1)'::jsonpath; 114select '$ ? (@.a < +0.1)'::jsonpath; 115select '$ ? (@.a < 10.1)'::jsonpath; 116select '$ ? (@.a < -10.1)'::jsonpath; 117select '$ ? (@.a < +10.1)'::jsonpath; 118select '$ ? (@.a < 1e1)'::jsonpath; 119select '$ ? (@.a < -1e1)'::jsonpath; 120select '$ ? (@.a < +1e1)'::jsonpath; 121select '$ ? (@.a < .1e1)'::jsonpath; 122select '$ ? (@.a < -.1e1)'::jsonpath; 123select '$ ? (@.a < +.1e1)'::jsonpath; 124select '$ ? (@.a < 0.1e1)'::jsonpath; 125select '$ ? (@.a < -0.1e1)'::jsonpath; 126select '$ ? (@.a < +0.1e1)'::jsonpath; 127select '$ ? (@.a < 10.1e1)'::jsonpath; 128select '$ ? (@.a < -10.1e1)'::jsonpath; 129select '$ ? (@.a < +10.1e1)'::jsonpath; 130select '$ ? (@.a < 1e-1)'::jsonpath; 131select '$ ? (@.a < -1e-1)'::jsonpath; 132select '$ ? (@.a < +1e-1)'::jsonpath; 133select '$ ? (@.a < .1e-1)'::jsonpath; 134select '$ ? (@.a < -.1e-1)'::jsonpath; 135select '$ ? (@.a < +.1e-1)'::jsonpath; 136select '$ ? (@.a < 0.1e-1)'::jsonpath; 137select '$ ? (@.a < -0.1e-1)'::jsonpath; 138select '$ ? (@.a < +0.1e-1)'::jsonpath; 139select '$ ? (@.a < 10.1e-1)'::jsonpath; 140select '$ ? (@.a < -10.1e-1)'::jsonpath; 141select '$ ? (@.a < +10.1e-1)'::jsonpath; 142select '$ ? (@.a < 1e+1)'::jsonpath; 143select '$ ? (@.a < -1e+1)'::jsonpath; 144select '$ ? (@.a < +1e+1)'::jsonpath; 145select '$ ? (@.a < .1e+1)'::jsonpath; 146select '$ ? (@.a < -.1e+1)'::jsonpath; 147select '$ ? (@.a < +.1e+1)'::jsonpath; 148select '$ ? (@.a < 0.1e+1)'::jsonpath; 149select '$ ? (@.a < -0.1e+1)'::jsonpath; 150select '$ ? (@.a < +0.1e+1)'::jsonpath; 151select '$ ? (@.a < 10.1e+1)'::jsonpath; 152select '$ ? (@.a < -10.1e+1)'::jsonpath; 153select '$ ? (@.a < +10.1e+1)'::jsonpath; 154 155select '0'::jsonpath; 156select '00'::jsonpath; 157select '0.0'::jsonpath; 158select '0.000'::jsonpath; 159select '0.000e1'::jsonpath; 160select '0.000e2'::jsonpath; 161select '0.000e3'::jsonpath; 162select '0.0010'::jsonpath; 163select '0.0010e-1'::jsonpath; 164select '0.0010e+1'::jsonpath; 165select '0.0010e+2'::jsonpath; 166select '1e'::jsonpath; 167select '1.e'::jsonpath; 168select '1.2e'::jsonpath; 169select '1.2.e'::jsonpath; 170select '(1.2).e'::jsonpath; 171select '1e3'::jsonpath; 172select '1.e3'::jsonpath; 173select '1.e3.e'::jsonpath; 174select '1.e3.e4'::jsonpath; 175select '1.2e3'::jsonpath; 176select '1.2.e3'::jsonpath; 177select '(1.2).e3'::jsonpath; 178select '1..e'::jsonpath; 179select '1..e3'::jsonpath; 180select '(1.).e'::jsonpath; 181select '(1.).e3'::jsonpath; 182