jsonpath.out 19 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964
  1. --jsonpath io
  2. select ''::jsonpath;
  3. ERROR: invalid input syntax for type jsonpath: ""
  4. LINE 1: select ''::jsonpath;
  5. ^
  6. select '$'::jsonpath;
  7. jsonpath
  8. ----------
  9. $
  10. (1 row)
  11. select 'strict $'::jsonpath;
  12. jsonpath
  13. ----------
  14. strict $
  15. (1 row)
  16. select 'lax $'::jsonpath;
  17. jsonpath
  18. ----------
  19. $
  20. (1 row)
  21. select '$.a'::jsonpath;
  22. jsonpath
  23. ----------
  24. $."a"
  25. (1 row)
  26. select '$.a.v'::jsonpath;
  27. jsonpath
  28. -----------
  29. $."a"."v"
  30. (1 row)
  31. select '$.a.*'::jsonpath;
  32. jsonpath
  33. ----------
  34. $."a".*
  35. (1 row)
  36. select '$.*[*]'::jsonpath;
  37. jsonpath
  38. ----------
  39. $.*[*]
  40. (1 row)
  41. select '$.a[*]'::jsonpath;
  42. jsonpath
  43. ----------
  44. $."a"[*]
  45. (1 row)
  46. select '$.a[*][*]'::jsonpath;
  47. jsonpath
  48. -------------
  49. $."a"[*][*]
  50. (1 row)
  51. select '$[*]'::jsonpath;
  52. jsonpath
  53. ----------
  54. $[*]
  55. (1 row)
  56. select '$[0]'::jsonpath;
  57. jsonpath
  58. ----------
  59. $[0]
  60. (1 row)
  61. select '$[*][0]'::jsonpath;
  62. jsonpath
  63. ----------
  64. $[*][0]
  65. (1 row)
  66. select '$[*].a'::jsonpath;
  67. jsonpath
  68. ----------
  69. $[*]."a"
  70. (1 row)
  71. select '$[*][0].a.b'::jsonpath;
  72. jsonpath
  73. -----------------
  74. $[*][0]."a"."b"
  75. (1 row)
  76. select '$.a.**.b'::jsonpath;
  77. jsonpath
  78. --------------
  79. $."a".**."b"
  80. (1 row)
  81. select '$.a.**{2}.b'::jsonpath;
  82. jsonpath
  83. -----------------
  84. $."a".**{2}."b"
  85. (1 row)
  86. select '$.a.**{2 to 2}.b'::jsonpath;
  87. jsonpath
  88. -----------------
  89. $."a".**{2}."b"
  90. (1 row)
  91. select '$.a.**{2 to 5}.b'::jsonpath;
  92. jsonpath
  93. ----------------------
  94. $."a".**{2 to 5}."b"
  95. (1 row)
  96. select '$.a.**{0 to 5}.b'::jsonpath;
  97. jsonpath
  98. ----------------------
  99. $."a".**{0 to 5}."b"
  100. (1 row)
  101. select '$.a.**{5 to last}.b'::jsonpath;
  102. jsonpath
  103. -------------------------
  104. $."a".**{5 to last}."b"
  105. (1 row)
  106. select '$.a.**{last}.b'::jsonpath;
  107. jsonpath
  108. --------------------
  109. $."a".**{last}."b"
  110. (1 row)
  111. select '$.a.**{last to 5}.b'::jsonpath;
  112. jsonpath
  113. -------------------------
  114. $."a".**{last to 5}."b"
  115. (1 row)
  116. select '$+1'::jsonpath;
  117. jsonpath
  118. ----------
  119. ($ + 1)
  120. (1 row)
  121. select '$-1'::jsonpath;
  122. jsonpath
  123. ----------
  124. ($ - 1)
  125. (1 row)
  126. select '$--+1'::jsonpath;
  127. jsonpath
  128. ----------
  129. ($ - -1)
  130. (1 row)
  131. select '$.a/+-1'::jsonpath;
  132. jsonpath
  133. --------------
  134. ($."a" / -1)
  135. (1 row)
  136. select '1 * 2 + 4 % -3 != false'::jsonpath;
  137. jsonpath
  138. ---------------------------
  139. (1 * 2 + 4 % -3 != false)
  140. (1 row)
  141. select '"\b\f\r\n\t\v\"\''\\"'::jsonpath;
  142. jsonpath
  143. -------------------------
  144. "\b\f\r\n\t\u000b\"'\\"
  145. (1 row)
  146. select '"\x50\u0067\u{53}\u{051}\u{00004C}"'::jsonpath;
  147. jsonpath
  148. ----------
  149. "PgSQL"
  150. (1 row)
  151. select '$.foo\x50\u0067\u{53}\u{051}\u{00004C}\t\"bar'::jsonpath;
  152. jsonpath
  153. ---------------------
  154. $."fooPgSQL\t\"bar"
  155. (1 row)
  156. select '"\z"'::jsonpath; -- unrecognized escape is just the literal char
  157. jsonpath
  158. ----------
  159. "z"
  160. (1 row)
  161. select '$.g ? ($.a == 1)'::jsonpath;
  162. jsonpath
  163. --------------------
  164. $."g"?($."a" == 1)
  165. (1 row)
  166. select '$.g ? (@ == 1)'::jsonpath;
  167. jsonpath
  168. ----------------
  169. $."g"?(@ == 1)
  170. (1 row)
  171. select '$.g ? (@.a == 1)'::jsonpath;
  172. jsonpath
  173. --------------------
  174. $."g"?(@."a" == 1)
  175. (1 row)
  176. select '$.g ? (@.a == 1 || @.a == 4)'::jsonpath;
  177. jsonpath
  178. ----------------------------------
  179. $."g"?(@."a" == 1 || @."a" == 4)
  180. (1 row)
  181. select '$.g ? (@.a == 1 && @.a == 4)'::jsonpath;
  182. jsonpath
  183. ----------------------------------
  184. $."g"?(@."a" == 1 && @."a" == 4)
  185. (1 row)
  186. select '$.g ? (@.a == 1 || @.a == 4 && @.b == 7)'::jsonpath;
  187. jsonpath
  188. ------------------------------------------------
  189. $."g"?(@."a" == 1 || @."a" == 4 && @."b" == 7)
  190. (1 row)
  191. select '$.g ? (@.a == 1 || !(@.a == 4) && @.b == 7)'::jsonpath;
  192. jsonpath
  193. ---------------------------------------------------
  194. $."g"?(@."a" == 1 || !(@."a" == 4) && @."b" == 7)
  195. (1 row)
  196. select '$.g ? (@.a == 1 || !(@.x >= 123 || @.a == 4) && @.b == 7)'::jsonpath;
  197. jsonpath
  198. -------------------------------------------------------------------
  199. $."g"?(@."a" == 1 || !(@."x" >= 123 || @."a" == 4) && @."b" == 7)
  200. (1 row)
  201. select '$.g ? (@.x >= @[*]?(@.a > "abc"))'::jsonpath;
  202. jsonpath
  203. ---------------------------------------
  204. $."g"?(@."x" >= @[*]?(@."a" > "abc"))
  205. (1 row)
  206. select '$.g ? ((@.x >= 123 || @.a == 4) is unknown)'::jsonpath;
  207. jsonpath
  208. -------------------------------------------------
  209. $."g"?((@."x" >= 123 || @."a" == 4) is unknown)
  210. (1 row)
  211. select '$.g ? (exists (@.x))'::jsonpath;
  212. jsonpath
  213. ------------------------
  214. $."g"?(exists (@."x"))
  215. (1 row)
  216. select '$.g ? (exists (@.x ? (@ == 14)))'::jsonpath;
  217. jsonpath
  218. ----------------------------------
  219. $."g"?(exists (@."x"?(@ == 14)))
  220. (1 row)
  221. select '$.g ? ((@.x >= 123 || @.a == 4) && exists (@.x ? (@ == 14)))'::jsonpath;
  222. jsonpath
  223. ------------------------------------------------------------------
  224. $."g"?((@."x" >= 123 || @."a" == 4) && exists (@."x"?(@ == 14)))
  225. (1 row)
  226. select '$.g ? (+@.x >= +-(+@.a + 2))'::jsonpath;
  227. jsonpath
  228. ------------------------------------
  229. $."g"?(+@."x" >= +(-(+@."a" + 2)))
  230. (1 row)
  231. select '$a'::jsonpath;
  232. jsonpath
  233. ----------
  234. $"a"
  235. (1 row)
  236. select '$a.b'::jsonpath;
  237. jsonpath
  238. ----------
  239. $"a"."b"
  240. (1 row)
  241. select '$a[*]'::jsonpath;
  242. jsonpath
  243. ----------
  244. $"a"[*]
  245. (1 row)
  246. select '$.g ? (@.zip == $zip)'::jsonpath;
  247. jsonpath
  248. ---------------------------
  249. $."g"?(@."zip" == $"zip")
  250. (1 row)
  251. select '$.a[1,2, 3 to 16]'::jsonpath;
  252. jsonpath
  253. --------------------
  254. $."a"[1,2,3 to 16]
  255. (1 row)
  256. select '$.a[$a + 1, ($b[*]) to -($[0] * 2)]'::jsonpath;
  257. jsonpath
  258. ----------------------------------------
  259. $."a"[$"a" + 1,$"b"[*] to -($[0] * 2)]
  260. (1 row)
  261. select '$.a[$.a.size() - 3]'::jsonpath;
  262. jsonpath
  263. -------------------------
  264. $."a"[$."a".size() - 3]
  265. (1 row)
  266. select 'last'::jsonpath;
  267. ERROR: LAST is allowed only in array subscripts
  268. LINE 1: select 'last'::jsonpath;
  269. ^
  270. select '"last"'::jsonpath;
  271. jsonpath
  272. ----------
  273. "last"
  274. (1 row)
  275. select '$.last'::jsonpath;
  276. jsonpath
  277. ----------
  278. $."last"
  279. (1 row)
  280. select '$ ? (last > 0)'::jsonpath;
  281. ERROR: LAST is allowed only in array subscripts
  282. LINE 1: select '$ ? (last > 0)'::jsonpath;
  283. ^
  284. select '$[last]'::jsonpath;
  285. jsonpath
  286. ----------
  287. $[last]
  288. (1 row)
  289. select '$[$[0] ? (last > 0)]'::jsonpath;
  290. jsonpath
  291. --------------------
  292. $[$[0]?(last > 0)]
  293. (1 row)
  294. select 'null.type()'::jsonpath;
  295. jsonpath
  296. -------------
  297. null.type()
  298. (1 row)
  299. select '1.type()'::jsonpath;
  300. jsonpath
  301. ----------
  302. 1.type()
  303. (1 row)
  304. select '(1).type()'::jsonpath;
  305. jsonpath
  306. ----------
  307. 1.type()
  308. (1 row)
  309. select '1.2.type()'::jsonpath;
  310. jsonpath
  311. ------------
  312. 1.2.type()
  313. (1 row)
  314. select '"aaa".type()'::jsonpath;
  315. jsonpath
  316. --------------
  317. "aaa".type()
  318. (1 row)
  319. select 'true.type()'::jsonpath;
  320. jsonpath
  321. -------------
  322. true.type()
  323. (1 row)
  324. select '$.double().floor().ceiling().abs()'::jsonpath;
  325. jsonpath
  326. ------------------------------------
  327. $.double().floor().ceiling().abs()
  328. (1 row)
  329. select '$.keyvalue().key'::jsonpath;
  330. jsonpath
  331. --------------------
  332. $.keyvalue()."key"
  333. (1 row)
  334. select '$.datetime()'::jsonpath;
  335. jsonpath
  336. --------------
  337. $.datetime()
  338. (1 row)
  339. select '$.datetime("datetime template")'::jsonpath;
  340. jsonpath
  341. ---------------------------------
  342. $.datetime("datetime template")
  343. (1 row)
  344. select '$ ? (@ starts with "abc")'::jsonpath;
  345. jsonpath
  346. -------------------------
  347. $?(@ starts with "abc")
  348. (1 row)
  349. select '$ ? (@ starts with $var)'::jsonpath;
  350. jsonpath
  351. --------------------------
  352. $?(@ starts with $"var")
  353. (1 row)
  354. select '$ ? (@ like_regex "(invalid pattern")'::jsonpath;
  355. ERROR: invalid regular expression: parentheses () not balanced
  356. LINE 1: select '$ ? (@ like_regex "(invalid pattern")'::jsonpath;
  357. ^
  358. select '$ ? (@ like_regex "pattern")'::jsonpath;
  359. jsonpath
  360. ----------------------------
  361. $?(@ like_regex "pattern")
  362. (1 row)
  363. select '$ ? (@ like_regex "pattern" flag "")'::jsonpath;
  364. jsonpath
  365. ----------------------------
  366. $?(@ like_regex "pattern")
  367. (1 row)
  368. select '$ ? (@ like_regex "pattern" flag "i")'::jsonpath;
  369. jsonpath
  370. -------------------------------------
  371. $?(@ like_regex "pattern" flag "i")
  372. (1 row)
  373. select '$ ? (@ like_regex "pattern" flag "is")'::jsonpath;
  374. jsonpath
  375. --------------------------------------
  376. $?(@ like_regex "pattern" flag "is")
  377. (1 row)
  378. select '$ ? (@ like_regex "pattern" flag "isim")'::jsonpath;
  379. jsonpath
  380. ---------------------------------------
  381. $?(@ like_regex "pattern" flag "ism")
  382. (1 row)
  383. select '$ ? (@ like_regex "pattern" flag "xsms")'::jsonpath;
  384. ERROR: XQuery "x" flag (expanded regular expressions) is not implemented
  385. LINE 1: select '$ ? (@ like_regex "pattern" flag "xsms")'::jsonpath;
  386. ^
  387. select '$ ? (@ like_regex "pattern" flag "q")'::jsonpath;
  388. jsonpath
  389. -------------------------------------
  390. $?(@ like_regex "pattern" flag "q")
  391. (1 row)
  392. select '$ ? (@ like_regex "pattern" flag "iq")'::jsonpath;
  393. jsonpath
  394. --------------------------------------
  395. $?(@ like_regex "pattern" flag "iq")
  396. (1 row)
  397. select '$ ? (@ like_regex "pattern" flag "smixq")'::jsonpath;
  398. jsonpath
  399. -----------------------------------------
  400. $?(@ like_regex "pattern" flag "ismxq")
  401. (1 row)
  402. select '$ ? (@ like_regex "pattern" flag "a")'::jsonpath;
  403. ERROR: invalid input syntax for type jsonpath
  404. LINE 1: select '$ ? (@ like_regex "pattern" flag "a")'::jsonpath;
  405. ^
  406. DETAIL: unrecognized flag character "a" in LIKE_REGEX predicate
  407. select '$ < 1'::jsonpath;
  408. jsonpath
  409. ----------
  410. ($ < 1)
  411. (1 row)
  412. select '($ < 1) || $.a.b <= $x'::jsonpath;
  413. jsonpath
  414. ------------------------------
  415. ($ < 1 || $."a"."b" <= $"x")
  416. (1 row)
  417. select '@ + 1'::jsonpath;
  418. ERROR: @ is not allowed in root expressions
  419. LINE 1: select '@ + 1'::jsonpath;
  420. ^
  421. select '($).a.b'::jsonpath;
  422. jsonpath
  423. -----------
  424. $."a"."b"
  425. (1 row)
  426. select '($.a.b).c.d'::jsonpath;
  427. jsonpath
  428. -------------------
  429. $."a"."b"."c"."d"
  430. (1 row)
  431. select '($.a.b + -$.x.y).c.d'::jsonpath;
  432. jsonpath
  433. ----------------------------------
  434. ($."a"."b" + -$."x"."y")."c"."d"
  435. (1 row)
  436. select '(-+$.a.b).c.d'::jsonpath;
  437. jsonpath
  438. -------------------------
  439. (-(+$."a"."b"))."c"."d"
  440. (1 row)
  441. select '1 + ($.a.b + 2).c.d'::jsonpath;
  442. jsonpath
  443. -------------------------------
  444. (1 + ($."a"."b" + 2)."c"."d")
  445. (1 row)
  446. select '1 + ($.a.b > 2).c.d'::jsonpath;
  447. jsonpath
  448. -------------------------------
  449. (1 + ($."a"."b" > 2)."c"."d")
  450. (1 row)
  451. select '($)'::jsonpath;
  452. jsonpath
  453. ----------
  454. $
  455. (1 row)
  456. select '(($))'::jsonpath;
  457. jsonpath
  458. ----------
  459. $
  460. (1 row)
  461. select '((($ + 1)).a + ((2)).b ? ((((@ > 1)) || (exists(@.c)))))'::jsonpath;
  462. jsonpath
  463. -------------------------------------------------
  464. (($ + 1)."a" + 2."b"?(@ > 1 || exists (@."c")))
  465. (1 row)
  466. select '$ ? (@.a < 1)'::jsonpath;
  467. jsonpath
  468. ---------------
  469. $?(@."a" < 1)
  470. (1 row)
  471. select '$ ? (@.a < -1)'::jsonpath;
  472. jsonpath
  473. ----------------
  474. $?(@."a" < -1)
  475. (1 row)
  476. select '$ ? (@.a < +1)'::jsonpath;
  477. jsonpath
  478. ---------------
  479. $?(@."a" < 1)
  480. (1 row)
  481. select '$ ? (@.a < .1)'::jsonpath;
  482. ERROR: syntax error at or near "." of jsonpath input
  483. LINE 1: select '$ ? (@.a < .1)'::jsonpath;
  484. ^
  485. select '$ ? (@.a < -.1)'::jsonpath;
  486. ERROR: syntax error at or near "." of jsonpath input
  487. LINE 1: select '$ ? (@.a < -.1)'::jsonpath;
  488. ^
  489. select '$ ? (@.a < +.1)'::jsonpath;
  490. ERROR: syntax error at or near "." of jsonpath input
  491. LINE 1: select '$ ? (@.a < +.1)'::jsonpath;
  492. ^
  493. select '$ ? (@.a < 0.1)'::jsonpath;
  494. jsonpath
  495. -----------------
  496. $?(@."a" < 0.1)
  497. (1 row)
  498. select '$ ? (@.a < -0.1)'::jsonpath;
  499. jsonpath
  500. ------------------
  501. $?(@."a" < -0.1)
  502. (1 row)
  503. select '$ ? (@.a < +0.1)'::jsonpath;
  504. jsonpath
  505. -----------------
  506. $?(@."a" < 0.1)
  507. (1 row)
  508. select '$ ? (@.a < 10.1)'::jsonpath;
  509. jsonpath
  510. ------------------
  511. $?(@."a" < 10.1)
  512. (1 row)
  513. select '$ ? (@.a < -10.1)'::jsonpath;
  514. jsonpath
  515. -------------------
  516. $?(@."a" < -10.1)
  517. (1 row)
  518. select '$ ? (@.a < +10.1)'::jsonpath;
  519. jsonpath
  520. ------------------
  521. $?(@."a" < 10.1)
  522. (1 row)
  523. select '$ ? (@.a < 1e1)'::jsonpath;
  524. jsonpath
  525. ----------------
  526. $?(@."a" < 10)
  527. (1 row)
  528. select '$ ? (@.a < -1e1)'::jsonpath;
  529. jsonpath
  530. -----------------
  531. $?(@."a" < -10)
  532. (1 row)
  533. select '$ ? (@.a < +1e1)'::jsonpath;
  534. jsonpath
  535. ----------------
  536. $?(@."a" < 10)
  537. (1 row)
  538. select '$ ? (@.a < .1e1)'::jsonpath;
  539. ERROR: syntax error at or near "." of jsonpath input
  540. LINE 1: select '$ ? (@.a < .1e1)'::jsonpath;
  541. ^
  542. select '$ ? (@.a < -.1e1)'::jsonpath;
  543. ERROR: syntax error at or near "." of jsonpath input
  544. LINE 1: select '$ ? (@.a < -.1e1)'::jsonpath;
  545. ^
  546. select '$ ? (@.a < +.1e1)'::jsonpath;
  547. ERROR: syntax error at or near "." of jsonpath input
  548. LINE 1: select '$ ? (@.a < +.1e1)'::jsonpath;
  549. ^
  550. select '$ ? (@.a < 0.1e1)'::jsonpath;
  551. jsonpath
  552. ---------------
  553. $?(@."a" < 1)
  554. (1 row)
  555. select '$ ? (@.a < -0.1e1)'::jsonpath;
  556. jsonpath
  557. ----------------
  558. $?(@."a" < -1)
  559. (1 row)
  560. select '$ ? (@.a < +0.1e1)'::jsonpath;
  561. jsonpath
  562. ---------------
  563. $?(@."a" < 1)
  564. (1 row)
  565. select '$ ? (@.a < 10.1e1)'::jsonpath;
  566. jsonpath
  567. -----------------
  568. $?(@."a" < 101)
  569. (1 row)
  570. select '$ ? (@.a < -10.1e1)'::jsonpath;
  571. jsonpath
  572. ------------------
  573. $?(@."a" < -101)
  574. (1 row)
  575. select '$ ? (@.a < +10.1e1)'::jsonpath;
  576. jsonpath
  577. -----------------
  578. $?(@."a" < 101)
  579. (1 row)
  580. select '$ ? (@.a < 1e-1)'::jsonpath;
  581. jsonpath
  582. -----------------
  583. $?(@."a" < 0.1)
  584. (1 row)
  585. select '$ ? (@.a < -1e-1)'::jsonpath;
  586. jsonpath
  587. ------------------
  588. $?(@."a" < -0.1)
  589. (1 row)
  590. select '$ ? (@.a < +1e-1)'::jsonpath;
  591. jsonpath
  592. -----------------
  593. $?(@."a" < 0.1)
  594. (1 row)
  595. select '$ ? (@.a < .1e-1)'::jsonpath;
  596. ERROR: syntax error at or near "." of jsonpath input
  597. LINE 1: select '$ ? (@.a < .1e-1)'::jsonpath;
  598. ^
  599. select '$ ? (@.a < -.1e-1)'::jsonpath;
  600. ERROR: syntax error at or near "." of jsonpath input
  601. LINE 1: select '$ ? (@.a < -.1e-1)'::jsonpath;
  602. ^
  603. select '$ ? (@.a < +.1e-1)'::jsonpath;
  604. ERROR: syntax error at or near "." of jsonpath input
  605. LINE 1: select '$ ? (@.a < +.1e-1)'::jsonpath;
  606. ^
  607. select '$ ? (@.a < 0.1e-1)'::jsonpath;
  608. jsonpath
  609. ------------------
  610. $?(@."a" < 0.01)
  611. (1 row)
  612. select '$ ? (@.a < -0.1e-1)'::jsonpath;
  613. jsonpath
  614. -------------------
  615. $?(@."a" < -0.01)
  616. (1 row)
  617. select '$ ? (@.a < +0.1e-1)'::jsonpath;
  618. jsonpath
  619. ------------------
  620. $?(@."a" < 0.01)
  621. (1 row)
  622. select '$ ? (@.a < 10.1e-1)'::jsonpath;
  623. jsonpath
  624. ------------------
  625. $?(@."a" < 1.01)
  626. (1 row)
  627. select '$ ? (@.a < -10.1e-1)'::jsonpath;
  628. jsonpath
  629. -------------------
  630. $?(@."a" < -1.01)
  631. (1 row)
  632. select '$ ? (@.a < +10.1e-1)'::jsonpath;
  633. jsonpath
  634. ------------------
  635. $?(@."a" < 1.01)
  636. (1 row)
  637. select '$ ? (@.a < 1e+1)'::jsonpath;
  638. jsonpath
  639. ----------------
  640. $?(@."a" < 10)
  641. (1 row)
  642. select '$ ? (@.a < -1e+1)'::jsonpath;
  643. jsonpath
  644. -----------------
  645. $?(@."a" < -10)
  646. (1 row)
  647. select '$ ? (@.a < +1e+1)'::jsonpath;
  648. jsonpath
  649. ----------------
  650. $?(@."a" < 10)
  651. (1 row)
  652. select '$ ? (@.a < .1e+1)'::jsonpath;
  653. ERROR: syntax error at or near "." of jsonpath input
  654. LINE 1: select '$ ? (@.a < .1e+1)'::jsonpath;
  655. ^
  656. select '$ ? (@.a < -.1e+1)'::jsonpath;
  657. ERROR: syntax error at or near "." of jsonpath input
  658. LINE 1: select '$ ? (@.a < -.1e+1)'::jsonpath;
  659. ^
  660. select '$ ? (@.a < +.1e+1)'::jsonpath;
  661. ERROR: syntax error at or near "." of jsonpath input
  662. LINE 1: select '$ ? (@.a < +.1e+1)'::jsonpath;
  663. ^
  664. select '$ ? (@.a < 0.1e+1)'::jsonpath;
  665. jsonpath
  666. ---------------
  667. $?(@."a" < 1)
  668. (1 row)
  669. select '$ ? (@.a < -0.1e+1)'::jsonpath;
  670. jsonpath
  671. ----------------
  672. $?(@."a" < -1)
  673. (1 row)
  674. select '$ ? (@.a < +0.1e+1)'::jsonpath;
  675. jsonpath
  676. ---------------
  677. $?(@."a" < 1)
  678. (1 row)
  679. select '$ ? (@.a < 10.1e+1)'::jsonpath;
  680. jsonpath
  681. -----------------
  682. $?(@."a" < 101)
  683. (1 row)
  684. select '$ ? (@.a < -10.1e+1)'::jsonpath;
  685. jsonpath
  686. ------------------
  687. $?(@."a" < -101)
  688. (1 row)
  689. select '$ ? (@.a < +10.1e+1)'::jsonpath;
  690. jsonpath
  691. -----------------
  692. $?(@."a" < 101)
  693. (1 row)
  694. select '0'::jsonpath;
  695. jsonpath
  696. ----------
  697. 0
  698. (1 row)
  699. select '00'::jsonpath;
  700. ERROR: syntax error at end of jsonpath input
  701. LINE 1: select '00'::jsonpath;
  702. ^
  703. select '0.0'::jsonpath;
  704. jsonpath
  705. ----------
  706. 0.0
  707. (1 row)
  708. select '0.000'::jsonpath;
  709. jsonpath
  710. ----------
  711. 0.000
  712. (1 row)
  713. select '0.000e1'::jsonpath;
  714. jsonpath
  715. ----------
  716. 0.00
  717. (1 row)
  718. select '0.000e2'::jsonpath;
  719. jsonpath
  720. ----------
  721. 0.0
  722. (1 row)
  723. select '0.000e3'::jsonpath;
  724. jsonpath
  725. ----------
  726. 0
  727. (1 row)
  728. select '0.0010'::jsonpath;
  729. jsonpath
  730. ----------
  731. 0.0010
  732. (1 row)
  733. select '0.0010e-1'::jsonpath;
  734. jsonpath
  735. ----------
  736. 0.00010
  737. (1 row)
  738. select '0.0010e+1'::jsonpath;
  739. jsonpath
  740. ----------
  741. 0.010
  742. (1 row)
  743. select '0.0010e+2'::jsonpath;
  744. jsonpath
  745. ----------
  746. 0.10
  747. (1 row)
  748. select '1e'::jsonpath;
  749. ERROR: invalid floating point number at or near "1e" of jsonpath input
  750. LINE 1: select '1e'::jsonpath;
  751. ^
  752. select '1.e'::jsonpath;
  753. jsonpath
  754. ----------
  755. 1."e"
  756. (1 row)
  757. select '1.2e'::jsonpath;
  758. ERROR: invalid floating point number at or near "1.2e" of jsonpath input
  759. LINE 1: select '1.2e'::jsonpath;
  760. ^
  761. select '1.2.e'::jsonpath;
  762. jsonpath
  763. ----------
  764. 1.2."e"
  765. (1 row)
  766. select '(1.2).e'::jsonpath;
  767. jsonpath
  768. ----------
  769. 1.2."e"
  770. (1 row)
  771. select '1e3'::jsonpath;
  772. jsonpath
  773. ----------
  774. 1000
  775. (1 row)
  776. select '1.e3'::jsonpath;
  777. jsonpath
  778. ----------
  779. 1."e3"
  780. (1 row)
  781. select '1.e3.e'::jsonpath;
  782. jsonpath
  783. ------------
  784. 1."e3"."e"
  785. (1 row)
  786. select '1.e3.e4'::jsonpath;
  787. jsonpath
  788. -------------
  789. 1."e3"."e4"
  790. (1 row)
  791. select '1.2e3'::jsonpath;
  792. jsonpath
  793. ----------
  794. 1200
  795. (1 row)
  796. select '1.2.e3'::jsonpath;
  797. jsonpath
  798. ----------
  799. 1.2."e3"
  800. (1 row)
  801. select '(1.2).e3'::jsonpath;
  802. jsonpath
  803. ----------
  804. 1.2."e3"
  805. (1 row)
  806. select '1..e'::jsonpath;
  807. ERROR: syntax error at or near "." of jsonpath input
  808. LINE 1: select '1..e'::jsonpath;
  809. ^
  810. select '1..e3'::jsonpath;
  811. ERROR: syntax error at or near "." of jsonpath input
  812. LINE 1: select '1..e3'::jsonpath;
  813. ^
  814. select '(1.).e'::jsonpath;
  815. ERROR: syntax error at or near ")" of jsonpath input
  816. LINE 1: select '(1.).e'::jsonpath;
  817. ^
  818. select '(1.).e3'::jsonpath;
  819. ERROR: syntax error at or near ")" of jsonpath input
  820. LINE 1: select '(1.).e3'::jsonpath;
  821. ^