Repository navigation
Commit f7d84c8
authored
DuckDB: support * RENAME, unparenthesized star modifiers and a trailing comma (#2801)
* DuckDB: support * RENAME, unparenthesized star modifiers and a trailing comma
- `* RENAME (i AS x, j AS y)` and `* RENAME i AS x` are the new RENAME
`ColumnsTransformer`.
- After `*`, `EXCLUDE i`, `REPLACE i + 1 AS i` and `RENAME i AS x` may
name a single column or item without parentheses, and print back that
way. Unparenthesized REPLACE and RENAME require the `AS name`.
- A select list may end with a comma before a clause such as FROM,
WHERE or `ORDER BY`, or before `)`. Keywords that may name a column,
as in `SELECT a, limit FROM t`, still do. The comma is not printed.
* Keep stars aliased rename or replace and functions named limit
- Unparenthesized REPLACE needs an AS at the top level of its item, and
RENAME needs `column AS name` for each item, so `* rename` and
`* replace` stay aliases of the star.
- `REPLACE (a + 1) AS a` is a single item, as in DuckDB, not a list
without an alias.
- A comma before `limit(` or `offset(` starts a select item again, and
`group by` / `order by` right before FROM or the end are a column and
its alias.
- A transformer with more than one item or column prints parentheses.
* Refer to `AllColumns` by its simple name in `DuckDBTest`1 parent e7a5a43 commit f7d84c8
3 files changed
Lines changed: 274 additions & 14 deletions
File tree
- src
- main
- java/net/sf/jsqlparser/expression
- jjtree/net/sf/jsqlparser/parser
- test/java/net/sf/jsqlparser/statement/select
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
25 | 25 | | |
26 | 26 | | |
27 | 27 | | |
28 | | - | |
| 28 | + | |
29 | 29 | | |
30 | 30 | | |
31 | 31 | | |
32 | 32 | | |
33 | 33 | | |
34 | 34 | | |
35 | 35 | | |
| 36 | + | |
| 37 | + | |
36 | 38 | | |
37 | 39 | | |
38 | 40 | | |
| |||
108 | 110 | | |
109 | 111 | | |
110 | 112 | | |
| 113 | + | |
| 114 | + | |
| 115 | + | |
| 116 | + | |
| 117 | + | |
| 118 | + | |
| 119 | + | |
| 120 | + | |
| 121 | + | |
| 122 | + | |
| 123 | + | |
| 124 | + | |
| 125 | + | |
| 126 | + | |
| 127 | + | |
| 128 | + | |
| 129 | + | |
| 130 | + | |
| 131 | + | |
| 132 | + | |
| 133 | + | |
| 134 | + | |
| 135 | + | |
| 136 | + | |
111 | 137 | | |
112 | 138 | | |
113 | 139 | | |
| |||
135 | 161 | | |
136 | 162 | | |
137 | 163 | | |
| 164 | + | |
| 165 | + | |
| 166 | + | |
| 167 | + | |
| 168 | + | |
| 169 | + | |
| 170 | + | |
138 | 171 | | |
139 | 172 | | |
140 | 173 | | |
| |||
150 | 183 | | |
151 | 184 | | |
152 | 185 | | |
153 | | - | |
| 186 | + | |
| 187 | + | |
| 188 | + | |
154 | 189 | | |
155 | 190 | | |
156 | | - | |
157 | | - | |
| 191 | + | |
| 192 | + | |
| 193 | + | |
| 194 | + | |
| 195 | + | |
| 196 | + | |
| 197 | + | |
| 198 | + | |
| 199 | + | |
| 200 | + | |
| 201 | + | |
158 | 202 | | |
159 | 203 | | |
160 | 204 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1713 | 1713 | | |
1714 | 1714 | | |
1715 | 1715 | | |
| 1716 | + | |
| 1717 | + | |
| 1718 | + | |
| 1719 | + | |
| 1720 | + | |
| 1721 | + | |
| 1722 | + | |
| 1723 | + | |
| 1724 | + | |
| 1725 | + | |
| 1726 | + | |
| 1727 | + | |
| 1728 | + | |
| 1729 | + | |
| 1730 | + | |
| 1731 | + | |
| 1732 | + | |
| 1733 | + | |
| 1734 | + | |
| 1735 | + | |
| 1736 | + | |
| 1737 | + | |
| 1738 | + | |
| 1739 | + | |
| 1740 | + | |
| 1741 | + | |
| 1742 | + | |
| 1743 | + | |
| 1744 | + | |
| 1745 | + | |
| 1746 | + | |
| 1747 | + | |
| 1748 | + | |
| 1749 | + | |
| 1750 | + | |
| 1751 | + | |
| 1752 | + | |
| 1753 | + | |
| 1754 | + | |
| 1755 | + | |
| 1756 | + | |
| 1757 | + | |
| 1758 | + | |
| 1759 | + | |
| 1760 | + | |
| 1761 | + | |
| 1762 | + | |
| 1763 | + | |
| 1764 | + | |
| 1765 | + | |
| 1766 | + | |
| 1767 | + | |
| 1768 | + | |
| 1769 | + | |
| 1770 | + | |
| 1771 | + | |
| 1772 | + | |
| 1773 | + | |
| 1774 | + | |
| 1775 | + | |
| 1776 | + | |
| 1777 | + | |
| 1778 | + | |
| 1779 | + | |
| 1780 | + | |
| 1781 | + | |
| 1782 | + | |
| 1783 | + | |
| 1784 | + | |
| 1785 | + | |
| 1786 | + | |
| 1787 | + | |
| 1788 | + | |
| 1789 | + | |
| 1790 | + | |
| 1791 | + | |
| 1792 | + | |
| 1793 | + | |
| 1794 | + | |
| 1795 | + | |
| 1796 | + | |
| 1797 | + | |
| 1798 | + | |
| 1799 | + | |
| 1800 | + | |
| 1801 | + | |
| 1802 | + | |
| 1803 | + | |
| 1804 | + | |
| 1805 | + | |
| 1806 | + | |
| 1807 | + | |
| 1808 | + | |
| 1809 | + | |
| 1810 | + | |
| 1811 | + | |
| 1812 | + | |
| 1813 | + | |
| 1814 | + | |
| 1815 | + | |
| 1816 | + | |
| 1817 | + | |
| 1818 | + | |
| 1819 | + | |
| 1820 | + | |
| 1821 | + | |
| 1822 | + | |
| 1823 | + | |
| 1824 | + | |
| 1825 | + | |
| 1826 | + | |
| 1827 | + | |
| 1828 | + | |
| 1829 | + | |
| 1830 | + | |
| 1831 | + | |
| 1832 | + | |
| 1833 | + | |
| 1834 | + | |
| 1835 | + | |
1716 | 1836 | | |
1717 | 1837 | | |
1718 | 1838 | | |
| |||
8694 | 8814 | | |
8695 | 8815 | | |
8696 | 8816 | | |
8697 | | - | |
| 8817 | + | |
8698 | 8818 | | |
8699 | 8819 | | |
8700 | 8820 | | |
8701 | 8821 | | |
| 8822 | + | |
| 8823 | + | |
8702 | 8824 | | |
8703 | 8825 | | |
8704 | 8826 | | |
| |||
8764 | 8886 | | |
8765 | 8887 | | |
8766 | 8888 | | |
| 8889 | + | |
| 8890 | + | |
| 8891 | + | |
8767 | 8892 | | |
8768 | 8893 | | |
8769 | 8894 | | |
| |||
8831 | 8956 | | |
8832 | 8957 | | |
8833 | 8958 | | |
| 8959 | + | |
| 8960 | + | |
8834 | 8961 | | |
8835 | 8962 | | |
8836 | 8963 | | |
| |||
8863 | 8990 | | |
8864 | 8991 | | |
8865 | 8992 | | |
8866 | | - | |
8867 | | - | |
8868 | | - | |
| 8993 | + | |
| 8994 | + | |
| 8995 | + | |
| 8996 | + | |
| 8997 | + | |
| 8998 | + | |
| 8999 | + | |
| 9000 | + | |
| 9001 | + | |
| 9002 | + | |
| 9003 | + | |
| 9004 | + | |
8869 | 9005 | | |
8870 | 9006 | | |
8871 | 9007 | | |
8872 | | - | |
8873 | | - | |
| 9008 | + | |
| 9009 | + | |
8874 | 9010 | | |
8875 | | - | |
| 9011 | + | |
| 9012 | + | |
| 9013 | + | |
| 9014 | + | |
| 9015 | + | |
| 9016 | + | |
| 9017 | + | |
| 9018 | + | |
| 9019 | + | |
| 9020 | + | |
| 9021 | + | |
| 9022 | + | |
| 9023 | + | |
| 9024 | + | |
| 9025 | + | |
| 9026 | + | |
| 9027 | + | |
| 9028 | + | |
| 9029 | + | |
| 9030 | + | |
| 9031 | + | |
| 9032 | + | |
| 9033 | + | |
| 9034 | + | |
| 9035 | + | |
| 9036 | + | |
| 9037 | + | |
| 9038 | + | |
| 9039 | + | |
8876 | 9040 | | |
8877 | 9041 | | |
8878 | 9042 | | |
| |||
8889 | 9053 | | |
8890 | 9054 | | |
8891 | 9055 | | |
8892 | | - | |
| 9056 | + | |
8893 | 9057 | | |
8894 | 9058 | | |
8895 | | - | |
| 9059 | + | |
| 9060 | + | |
8896 | 9061 | | |
8897 | | - | |
| 9062 | + | |
8898 | 9063 | | |
8899 | 9064 | | |
8900 | 9065 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1021 | 1021 | | |
1022 | 1022 | | |
1023 | 1023 | | |
| 1024 | + | |
| 1025 | + | |
| 1026 | + | |
| 1027 | + | |
| 1028 | + | |
| 1029 | + | |
| 1030 | + | |
| 1031 | + | |
| 1032 | + | |
| 1033 | + | |
| 1034 | + | |
| 1035 | + | |
| 1036 | + | |
| 1037 | + | |
| 1038 | + | |
| 1039 | + | |
| 1040 | + | |
| 1041 | + | |
| 1042 | + | |
| 1043 | + | |
| 1044 | + | |
| 1045 | + | |
| 1046 | + | |
| 1047 | + | |
| 1048 | + | |
| 1049 | + | |
| 1050 | + | |
| 1051 | + | |
| 1052 | + | |
| 1053 | + | |
| 1054 | + | |
| 1055 | + | |
| 1056 | + | |
| 1057 | + | |
| 1058 | + | |
| 1059 | + | |
| 1060 | + | |
| 1061 | + | |
| 1062 | + | |
| 1063 | + | |
| 1064 | + | |
| 1065 | + | |
| 1066 | + | |
| 1067 | + | |
| 1068 | + | |
| 1069 | + | |
| 1070 | + | |
| 1071 | + | |
| 1072 | + | |
| 1073 | + | |
| 1074 | + | |
1024 | 1075 | | |
0 commit comments