@@ -1584,6 +1584,12 @@ SELECT jsonb '[{"a": 1}, {"a": 2}]' @* '$[*] ? (@.a > 10)';
15841584----------
15851585(0 rows)
15861586
1587+ SELECT jsonb '[{"a": 1}, {"a": 2}]' @* '[$[*].a]';
1588+ ?column?
1589+ ----------
1590+ [1, 2]
1591+ (1 row)
1592+
15871593SELECT jsonb '[{"a": 1}, {"a": 2}]' @? '$[*].a > 1';
15881594 ?column?
15891595----------
@@ -1671,3 +1677,48 @@ select _jsonpath_query(jsonb '[1,2,3,4,5]', '$[(0, $[*], 5) ? (@ == 3)]');
16711677
16721678select _jsonpath_query(jsonb '[1,2,3,4,5]', '$[(0, $[*], 3) ? (@ == 3)]');
16731679ERROR: Invalid SQL/JSON subscript
1680+ -- extension: array constructors
1681+ select _jsonpath_query(jsonb '[1, 2, 3]', '[]');
1682+ _jsonpath_query
1683+ -----------------
1684+ []
1685+ (1 row)
1686+
1687+ select _jsonpath_query(jsonb '[1, 2, 3]', '[1, 2, $.map(@ + 100)[*], 4, 5]');
1688+ _jsonpath_query
1689+ -----------------------------
1690+ [1, 2, 101, 102, 103, 4, 5]
1691+ (1 row)
1692+
1693+ select _jsonpath_query(jsonb '[1, 2, 3]', '[1, 2, $.map(@ + 100)[*], 4, 5][*]');
1694+ _jsonpath_query
1695+ -----------------
1696+ 1
1697+ 2
1698+ 101
1699+ 102
1700+ 103
1701+ 4
1702+ 5
1703+ (7 rows)
1704+
1705+ select _jsonpath_query(jsonb '[1, 2, 3]', '[(1, (2, $.map(@ + 100)[*])), (4, 5)]');
1706+ _jsonpath_query
1707+ -----------------------------
1708+ [1, 2, 101, 102, 103, 4, 5]
1709+ (1 row)
1710+
1711+ select _jsonpath_query(jsonb '[1, 2, 3]', '[[1, 2], [$.map(@ + 100)[*], 4], 5, [(1,2)?(@ > 5)]]');
1712+ _jsonpath_query
1713+ -------------------------------------
1714+ [[1, 2], [101, 102, 103, 4], 5, []]
1715+ (1 row)
1716+
1717+ select _jsonpath_query(jsonb '[1, 2, 3]', 'strict [1, 2, $.map(@.a)[*], 4, 5]');
1718+ ERROR: SQL/JSON member not found
1719+ select _jsonpath_query(jsonb '[[1, 2], [3, 4, 5], [], [6, 7]]', '[$[*].map(@ + 10)[*] ? (@ > 13)]');
1720+ _jsonpath_query
1721+ ------------------
1722+ [14, 15, 16, 17]
1723+ (1 row)
1724+
0 commit comments