jsonpath.sql 5.6 KB

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