@@ -1640,3 +1640,164 @@ query T
16401640SELECT jsonb_path_query('{"a": 10}', '$ ? ((@.a < 12) || (@.a < $value))');
16411641----
16421642{"a": 10}
1643+
1644+ statement error pgcode 22036 pq: jsonpath item method .abs\(\) can only be applied to a numeric value
1645+ SELECT jsonb_path_query('{}', '$.abs()');
1646+
1647+ statement error pgcode 22036 pq: jsonpath item method .abs\(\) can only be applied to a numeric value
1648+ SELECT jsonb_path_query('"a"', '$.abs()');
1649+
1650+ statement error pgcode 22036 pq: jsonpath item method .abs\(\) can only be applied to a numeric value
1651+ SELECT jsonb_path_query('true', '$.abs()');
1652+
1653+ statement error pgcode 22036 pq: jsonpath item method .abs\(\) can only be applied to a numeric value
1654+ SELECT jsonb_path_query('null', '$.abs()');
1655+
1656+ query T
1657+ SELECT jsonb_path_query('{}', '(1).abs()');
1658+ ----
1659+ 1
1660+
1661+ query T
1662+ SELECT jsonb_path_query('{}', '(-1).abs()');
1663+ ----
1664+ 1
1665+
1666+ query T
1667+ SELECT jsonb_path_query('{}', '(0.5).abs()');
1668+ ----
1669+ 0.5
1670+
1671+ query T
1672+ SELECT jsonb_path_query('{}', '(-0.5).abs()');
1673+ ----
1674+ 0.5
1675+
1676+ query T rowsort
1677+ SELECT jsonb_path_query('[1, -1, 0.5, -0.5]', '$.abs()');
1678+ ----
1679+ 1
1680+ 1
1681+ 0.5
1682+ 0.5
1683+
1684+ query T
1685+ SELECT jsonb_path_query('{}', '(1).ceiling()');
1686+ ----
1687+ 1
1688+
1689+ query T
1690+ SELECT jsonb_path_query('{}', '(-1).ceiling()');
1691+ ----
1692+ -1
1693+
1694+ query T
1695+ SELECT jsonb_path_query('{}', '(0.5).ceiling()');
1696+ ----
1697+ 1
1698+
1699+ query T
1700+ SELECT jsonb_path_query('{}', '(-0.5).ceiling()');
1701+ ----
1702+ 0
1703+
1704+ query T
1705+ SELECT jsonb_path_query('{}', '(0.1).ceiling()');
1706+ ----
1707+ 1
1708+
1709+ query T
1710+ SELECT jsonb_path_query('{}', '(-0.1).ceiling()');
1711+ ----
1712+ 0
1713+
1714+ query T
1715+ SELECT jsonb_path_query('{}', '(0.9).ceiling()');
1716+ ----
1717+ 1
1718+
1719+ query T
1720+ SELECT jsonb_path_query('{}', '(-0.9).ceiling()');
1721+ ----
1722+ 0
1723+
1724+ query T rowsort
1725+ SELECT jsonb_path_query('[1, -1, 0.5, -0.5, 0.1, -0.1, 0.9, -0.9]', '$.ceiling()');
1726+ ----
1727+ 1
1728+ -1
1729+ 1
1730+ 0
1731+ 1
1732+ 0
1733+ 1
1734+ 0
1735+
1736+ query T
1737+ SELECT jsonb_path_query('{}', '(1).floor()');
1738+ ----
1739+ 1
1740+
1741+ query T
1742+ SELECT jsonb_path_query('{}', '(-1).floor()');
1743+ ----
1744+ -1
1745+
1746+ query T
1747+ SELECT jsonb_path_query('{}', '(0.5).floor()');
1748+ ----
1749+ 0
1750+
1751+ query T
1752+ SELECT jsonb_path_query('{}', '(-0.5).floor()');
1753+ ----
1754+ -1
1755+
1756+ query T
1757+ SELECT jsonb_path_query('{}', '(0.1).floor()');
1758+ ----
1759+ 0
1760+
1761+ query T
1762+ SELECT jsonb_path_query('{}', '(-0.1).floor()');
1763+ ----
1764+ -1
1765+
1766+ query T
1767+ SELECT jsonb_path_query('{}', '(0.9).floor()');
1768+ ----
1769+ 0
1770+
1771+ query T
1772+ SELECT jsonb_path_query('{}', '(-0.9).floor()');
1773+ ----
1774+ -1
1775+
1776+ query T rowsort
1777+ SELECT jsonb_path_query('[1, -1, 0.5, -0.5, 0.1, -0.1, 0.9, -0.9]', '$.floor()');
1778+ ----
1779+ 1
1780+ -1
1781+ 0
1782+ -1
1783+ 0
1784+ -1
1785+ 0
1786+ -1
1787+
1788+ statement error pgcode 22036 pq: jsonpath item method .abs\(\) can only be applied to a numeric value
1789+ SELECT jsonb_path_query('[[1, 2]]', '$.abs()');
1790+
1791+ statement error pgcode 22036 pq: jsonpath item method .abs\(\) can only be applied to a numeric value
1792+ SELECT jsonb_path_query('[1, 2, [3, 4]]', '$.abs()');
1793+
1794+ query T
1795+ SELECT jsonb_path_query('{"a": -0.5}', '$.a.abs()')
1796+ ----
1797+ 0.5
1798+
1799+ statement error pgcode 22036 pq: jsonpath item method .abs\(\) can only be applied to a numeric value
1800+ SELECT jsonb_path_query('"1"', '$.abs()');
1801+
1802+ statement error pgcode 22036 pq: jsonpath item method .floor\(\) can only be applied to a numeric value
1803+ SELECT jsonb_path_query('{}', '(null).floor()');
0 commit comments