jsonb_jsonpath.out 7.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533
  1. select jsonb '{"a": 12}' @? '$';
  2. ?column?
  3. ----------
  4. t
  5. (1 row)
  6. select jsonb '{"a": 12}' @? '1';
  7. ?column?
  8. ----------
  9. t
  10. (1 row)
  11. select jsonb '{"a": 12}' @? '$.a.b';
  12. ?column?
  13. ----------
  14. f
  15. (1 row)
  16. select jsonb '{"a": 12}' @? '$.b';
  17. ?column?
  18. ----------
  19. f
  20. (1 row)
  21. select jsonb '{"a": 12}' @? '$.a + 2';
  22. ?column?
  23. ----------
  24. t
  25. (1 row)
  26. select jsonb '{"a": 12}' @? '$.b + 2';
  27. ?column?
  28. ----------
  29. (1 row)
  30. select jsonb '{"a": {"a": 12}}' @? '$.a.a';
  31. ?column?
  32. ----------
  33. t
  34. (1 row)
  35. select jsonb '{"a": {"a": 12}}' @? '$.*.a';
  36. ?column?
  37. ----------
  38. t
  39. (1 row)
  40. select jsonb '{"b": {"a": 12}}' @? '$.*.a';
  41. ?column?
  42. ----------
  43. t
  44. (1 row)
  45. select jsonb '{"b": {"a": 12}}' @? '$.*.b';
  46. ?column?
  47. ----------
  48. f
  49. (1 row)
  50. select jsonb '{"b": {"a": 12}}' @? 'strict $.*.b';
  51. ?column?
  52. ----------
  53. (1 row)
  54. select jsonb '{}' @? '$.*';
  55. ?column?
  56. ----------
  57. f
  58. (1 row)
  59. select jsonb '{"a": 1}' @? '$.*';
  60. ?column?
  61. ----------
  62. t
  63. (1 row)
  64. select jsonb '{"a": {"b": 1}}' @? 'lax $.**{1}';
  65. ?column?
  66. ----------
  67. t
  68. (1 row)
  69. select jsonb '{"a": {"b": 1}}' @? 'lax $.**{2}';
  70. ?column?
  71. ----------
  72. t
  73. (1 row)
  74. select jsonb '{"a": {"b": 1}}' @? 'lax $.**{3}';
  75. ?column?
  76. ----------
  77. f
  78. (1 row)
  79. select jsonb '[]' @? '$[*]';
  80. ?column?
  81. ----------
  82. f
  83. (1 row)
  84. select jsonb '[1]' @? '$[*]';
  85. ?column?
  86. ----------
  87. t
  88. (1 row)
  89. select jsonb '[1]' @? '$[1]';
  90. ?column?
  91. ----------
  92. f
  93. (1 row)
  94. select jsonb '[1]' @? 'strict $[1]';
  95. ?column?
  96. ----------
  97. (1 row)
  98. select jsonb '[1]' @? 'lax $[10000000000000000]';
  99. ?column?
  100. ----------
  101. (1 row)
  102. select jsonb '[1]' @? 'strict $[10000000000000000]';
  103. ?column?
  104. ----------
  105. (1 row)
  106. select jsonb '[1]' @? '$[0]';
  107. ?column?
  108. ----------
  109. t
  110. (1 row)
  111. select jsonb '[1]' @? '$[0.3]';
  112. ?column?
  113. ----------
  114. t
  115. (1 row)
  116. select jsonb '[1]' @? '$[0.5]';
  117. ?column?
  118. ----------
  119. t
  120. (1 row)
  121. select jsonb '[1]' @? '$[0.9]';
  122. ?column?
  123. ----------
  124. t
  125. (1 row)
  126. select jsonb '[1]' @? '$[1.2]';
  127. ?column?
  128. ----------
  129. f
  130. (1 row)
  131. select jsonb '[1]' @? 'strict $[1.2]';
  132. ?column?
  133. ----------
  134. (1 row)
  135. select jsonb '{"a": [1,2,3], "b": [3,4,5]}' @? '$ ? (@.a[*] > @.b[*])';
  136. ?column?
  137. ----------
  138. f
  139. (1 row)
  140. select jsonb '{"a": [1,2,3], "b": [3,4,5]}' @? '$ ? (@.a[*] >= @.b[*])';
  141. ?column?
  142. ----------
  143. t
  144. (1 row)
  145. select jsonb '{"a": [1,2,3], "b": [3,4,"5"]}' @? '$ ? (@.a[*] >= @.b[*])';
  146. ?column?
  147. ----------
  148. t
  149. (1 row)
  150. select jsonb '{"a": [1,2,3], "b": [3,4,"5"]}' @? 'strict $ ? (@.a[*] >= @.b[*])';
  151. ?column?
  152. ----------
  153. f
  154. (1 row)
  155. select jsonb '{"a": [1,2,3], "b": [3,4,null]}' @? '$ ? (@.a[*] >= @.b[*])';
  156. ?column?
  157. ----------
  158. t
  159. (1 row)
  160. select jsonb '1' @? '$ ? ((@ == "1") is unknown)';
  161. ?column?
  162. ----------
  163. t
  164. (1 row)
  165. select jsonb '1' @? '$ ? ((@ == 1) is unknown)';
  166. ?column?
  167. ----------
  168. f
  169. (1 row)
  170. select jsonb '[{"a": 1}, {"a": 2}]' @? '$[0 to 1] ? (@.a > 1)';
  171. ?column?
  172. ----------
  173. t
  174. (1 row)
  175. select jsonb '{"a": {"b": 1}}' @? '$.**.b ? ( @ > 0)';
  176. ?column?
  177. ----------
  178. t
  179. (1 row)
  180. select jsonb '{"a": {"b": 1}}' @? '$.**{0}.b ? ( @ > 0)';
  181. ?column?
  182. ----------
  183. f
  184. (1 row)
  185. select jsonb '{"a": {"b": 1}}' @? '$.**{1}.b ? ( @ > 0)';
  186. ?column?
  187. ----------
  188. t
  189. (1 row)
  190. select jsonb '{"a": {"b": 1}}' @? '$.**{0 to last}.b ? ( @ > 0)';
  191. ?column?
  192. ----------
  193. t
  194. (1 row)
  195. select jsonb '{"a": {"b": 1}}' @? '$.**{1 to last}.b ? ( @ > 0)';
  196. ?column?
  197. ----------
  198. t
  199. (1 row)
  200. select jsonb '{"a": {"b": 1}}' @? '$.**{1 to 2}.b ? ( @ > 0)';
  201. ?column?
  202. ----------
  203. t
  204. (1 row)
  205. select jsonb '{"a": {"c": {"b": 1}}}' @? '$.**.b ? ( @ > 0)';
  206. ?column?
  207. ----------
  208. t
  209. (1 row)
  210. select jsonb '{"a": {"c": {"b": 1}}}' @? '$.**{0}.b ? ( @ > 0)';
  211. ?column?
  212. ----------
  213. f
  214. (1 row)
  215. select jsonb '{"a": {"c": {"b": 1}}}' @? '$.**{1}.b ? ( @ > 0)';
  216. ?column?
  217. ----------
  218. f
  219. (1 row)
  220. select jsonb '{"a": {"c": {"b": 1}}}' @? '$.**{0 to last}.b ? ( @ > 0)';
  221. ?column?
  222. ----------
  223. t
  224. (1 row)
  225. select jsonb '{"a": {"c": {"b": 1}}}' @? '$.**{1 to last}.b ? ( @ > 0)';
  226. ?column?
  227. ----------
  228. t
  229. (1 row)
  230. select jsonb '{"a": {"c": {"b": 1}}}' @? '$.**{1 to 2}.b ? ( @ > 0)';
  231. ?column?
  232. ----------
  233. t
  234. (1 row)
  235. select jsonb '{"a": {"c": {"b": 1}}}' @? '$.**{2 to 3}.b ? ( @ > 0)';
  236. ?column?
  237. ----------
  238. t
  239. (1 row)
  240. select jsonb '{"a": 1, "b":1}' @? '$ ? (@.a == @.b)';
  241. ?column?
  242. ----------
  243. t
  244. (1 row)
  245. select jsonb '{"c": {"a": 1, "b":1}}' @? '$ ? (@.a == @.b)';
  246. ?column?
  247. ----------
  248. f
  249. (1 row)
  250. select jsonb '{"c": {"a": 1, "b":1}}' @? '$.c ? (@.a == @.b)';
  251. ?column?
  252. ----------
  253. t
  254. (1 row)
  255. select jsonb '{"c": {"a": 1, "b":1}}' @? '$.c ? ($.c.a == @.b)';
  256. ?column?
  257. ----------
  258. t
  259. (1 row)
  260. select jsonb '{"c": {"a": 1, "b":1}}' @? '$.* ? (@.a == @.b)';
  261. ?column?
  262. ----------
  263. t
  264. (1 row)
  265. select jsonb '{"a": 1, "b":1}' @? '$.** ? (@.a == @.b)';
  266. ?column?
  267. ----------
  268. t
  269. (1 row)
  270. select jsonb '{"c": {"a": 1, "b":1}}' @? '$.** ? (@.a == @.b)';
  271. ?column?
  272. ----------
  273. t
  274. (1 row)
  275. select jsonb '{"c": {"a": -1, "b":1}}' @? '$.** ? (@.a == - 1)';
  276. ?column?
  277. ----------
  278. t
  279. (1 row)
  280. select jsonb '{"c": {"a": -1, "b":1}}' @? '$.** ? (@.a == -1)';
  281. ?column?
  282. ----------
  283. t
  284. (1 row)
  285. select jsonb '{"c": {"a": -1, "b":1}}' @? '$.** ? (@.a == -@.b)';
  286. ?column?
  287. ----------
  288. t
  289. (1 row)
  290. select jsonb '{"c": {"a": -1, "b":1}}' @? '$.** ? (@.a == - @.b)';
  291. ?column?
  292. ----------
  293. t
  294. (1 row)
  295. select jsonb '{"c": {"a": 0, "b":1}}' @? '$.** ? (@.a == 1 - @.b)';
  296. ?column?
  297. ----------
  298. t
  299. (1 row)
  300. select jsonb '{"c": {"a": 2, "b":1}}' @? '$.** ? (@.a == 1 - - @.b)';
  301. ?column?
  302. ----------
  303. t
  304. (1 row)
  305. select jsonb '{"c": {"a": 0, "b":1}}' @? '$.** ? (@.a == 1 - +@.b)';
  306. ?column?
  307. ----------
  308. t
  309. (1 row)
  310. select jsonb '[1,2,3]' @? '$ ? (+@[*] > +2)';
  311. ?column?
  312. ----------
  313. t
  314. (1 row)
  315. select jsonb '[1,2,3]' @? '$ ? (+@[*] > +3)';
  316. ?column?
  317. ----------
  318. f
  319. (1 row)
  320. select jsonb '[1,2,3]' @? '$ ? (-@[*] < -2)';
  321. ?column?
  322. ----------
  323. t
  324. (1 row)
  325. select jsonb '[1,2,3]' @? '$ ? (-@[*] < -3)';
  326. ?column?
  327. ----------
  328. f
  329. (1 row)
  330. select jsonb '1' @? '$ ? ($ > 0)';
  331. ?column?
  332. ----------
  333. t
  334. (1 row)
  335. select jsonb '["1",2,0,3]' @? '-$[*]';
  336. ?column?
  337. ----------
  338. t
  339. (1 row)
  340. select jsonb '[1,"2",0,3]' @? '-$[*]';
  341. ?column?
  342. ----------
  343. t
  344. (1 row)
  345. select jsonb '["1",2,0,3]' @? 'strict -$[*]';
  346. ?column?
  347. ----------
  348. (1 row)
  349. select jsonb '[1,"2",0,3]' @? 'strict -$[*]';
  350. ?column?
  351. ----------
  352. (1 row)
  353. select jsonb '2' @? '$ == "2"';
  354. ?column?
  355. ----------
  356. t
  357. (1 row)
  358. select jsonb '2' @@ '$ > 1';
  359. ?column?
  360. ----------
  361. t
  362. (1 row)
  363. select jsonb '2' @@ '$ <= 1';
  364. ?column?
  365. ----------
  366. f
  367. (1 row)
  368. select jsonb '2' @@ '$ == "2"';
  369. ?column?
  370. ----------
  371. (1 row)
  372. select jsonb '2' @@ '1';
  373. ?column?
  374. ----------
  375. (1 row)
  376. select jsonb '{}' @@ '$';
  377. ?column?
  378. ----------
  379. (1 row)
  380. select jsonb '[]' @@ '$';
  381. ?column?
  382. ----------
  383. (1 row)
  384. select jsonb '[1,2,3]' @@ '$[*]';
  385. ?column?
  386. ----------
  387. (1 row)
  388. select jsonb '[]' @@ '$[*]';
  389. ?column?
  390. ----------
  391. (1 row)
  392. select jsonb '{"a": 1, "b": [1, 2]}' @? 'lax $.keyvalue()';
  393. ?column?
  394. ----------
  395. t
  396. (1 row)
  397. select jsonb '{"a": 1, "b": [1, 2]}' @? 'lax $.keyvalue().key';
  398. ?column?
  399. ----------
  400. t
  401. (1 row)
  402. select jsonb '"10-03-2017"' @? '$.datetime("dd-mm-yyyy")';
  403. ?column?
  404. ----------
  405. t
  406. (1 row)
  407. set time zone '+00';
  408. set time zone '+10';
  409. set time zone default;
  410. set time zone '+00';
  411. set time zone default;
  412. SELECT jsonb '[{"a": 1}, {"a": 2}]' @? '$[*].a ? (@ > 1)';
  413. ?column?
  414. ----------
  415. t
  416. (1 row)
  417. SELECT jsonb '[{"a": 1}, {"a": 2}]' @? '$[*] ? (@.a > 2)';
  418. ?column?
  419. ----------
  420. f
  421. (1 row)
  422. SELECT jsonb '[{"a": 1}, {"a": 2}]' @@ '$[*].a > 1';
  423. ?column?
  424. ----------
  425. t
  426. (1 row)
  427. SELECT jsonb '[{"a": 1}, {"a": 2}]' @@ '$[*].a > 2';
  428. ?column?
  429. ----------
  430. f
  431. (1 row)