Commit 956e109
authored
Fix parsing of ClickHouse transformers after '*' (#2653)
AllColumns modelled the trailing modifiers itself and only accepted a single
EXCEPT/EXCLUDE followed by a single REPLACE, so '* APPLY(sum)' was parsed as a
wildcard carrying the alias "APPLY(sum)" — a wrong AST that round-trips without
error.
AllColumns now holds a List<ColumnsTransformer>, mirroring ColumnsExpression,
and the production loops over ColumnsTransformer(), so the modifiers may repeat
and combine in any order. ColumnsTransformerType gains EXCLUDE (DuckDB), which
AllColumns previously carried as a plain string.
The transformer lookahead is position specific: reusing ColumnsTransformerAhead()
verbatim would turn '* REPLACE (x)' into an alias.1 parent 521a27f commit 956e109
6 files changed
Lines changed: 100 additions & 94 deletions
File tree
- src
- main
- java/net/sf/jsqlparser
- expression
- statement/select
- jjtree/net/sf/jsqlparser/parser
- test/java/net/sf/jsqlparser/statement/select
Lines changed: 6 additions & 2 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
17 | 17 | | |
18 | 18 | | |
19 | 19 | | |
20 | | - | |
| 20 | + | |
21 | 21 | | |
22 | 22 | | |
23 | 23 | | |
24 | 24 | | |
25 | 25 | | |
26 | 26 | | |
27 | 27 | | |
28 | | - | |
| 28 | + | |
29 | 29 | | |
30 | 30 | | |
31 | 31 | | |
| |||
81 | 81 | | |
82 | 82 | | |
83 | 83 | | |
| 84 | + | |
84 | 85 | | |
85 | 86 | | |
86 | 87 | | |
| |||
105 | 106 | | |
106 | 107 | | |
107 | 108 | | |
| 109 | + | |
| 110 | + | |
| 111 | + | |
108 | 112 | | |
109 | 113 | | |
110 | 114 | | |
| |||
Lines changed: 17 additions & 64 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
9 | 9 | | |
10 | 10 | | |
11 | 11 | | |
| 12 | + | |
| 13 | + | |
| 14 | + | |
12 | 15 | | |
13 | 16 | | |
14 | | - | |
15 | 17 | | |
16 | | - | |
17 | | - | |
18 | | - | |
19 | | - | |
20 | 18 | | |
21 | 19 | | |
22 | | - | |
23 | | - | |
24 | | - | |
25 | | - | |
26 | | - | |
27 | | - | |
28 | | - | |
29 | | - | |
30 | | - | |
31 | | - | |
32 | | - | |
33 | | - | |
34 | | - | |
35 | | - | |
36 | | - | |
37 | | - | |
38 | | - | |
| 20 | + | |
39 | 21 | | |
40 | 22 | | |
41 | | - | |
42 | | - | |
43 | | - | |
44 | | - | |
45 | | - | |
| 23 | + | |
46 | 24 | | |
47 | 25 | | |
48 | | - | |
49 | | - | |
50 | | - | |
| 26 | + | |
| 27 | + | |
51 | 28 | | |
52 | 29 | | |
53 | | - | |
54 | | - | |
55 | | - | |
| 30 | + | |
| 31 | + | |
| 32 | + | |
56 | 33 | | |
57 | | - | |
58 | | - | |
| 34 | + | |
59 | 35 | | |
60 | 36 | | |
61 | | - | |
62 | | - | |
63 | | - | |
64 | | - | |
65 | | - | |
66 | | - | |
| 37 | + | |
| 38 | + | |
67 | 39 | | |
68 | 40 | | |
69 | 41 | | |
70 | | - | |
71 | | - | |
72 | | - | |
73 | | - | |
74 | | - | |
75 | | - | |
76 | | - | |
77 | | - | |
78 | | - | |
79 | | - | |
80 | | - | |
81 | | - | |
82 | | - | |
83 | | - | |
| 42 | + | |
| 43 | + | |
84 | 44 | | |
85 | 45 | | |
86 | 46 | | |
87 | 47 | | |
88 | 48 | | |
89 | | - | |
90 | | - | |
91 | | - | |
92 | | - | |
93 | | - | |
94 | | - | |
95 | | - | |
96 | | - | |
97 | | - | |
| 49 | + | |
| 50 | + | |
98 | 51 | | |
99 | 52 | | |
100 | 53 | | |
| |||
Lines changed: 5 additions & 13 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
10 | 10 | | |
11 | 11 | | |
12 | 12 | | |
| 13 | + | |
13 | 14 | | |
14 | | - | |
15 | | - | |
16 | 15 | | |
17 | 16 | | |
18 | 17 | | |
| |||
22 | 21 | | |
23 | 22 | | |
24 | 23 | | |
25 | | - | |
26 | | - | |
27 | | - | |
| 24 | + | |
| 25 | + | |
28 | 26 | | |
29 | 27 | | |
30 | 28 | | |
31 | | - | |
32 | | - | |
33 | | - | |
34 | | - | |
35 | | - | |
36 | 29 | | |
37 | | - | |
| 30 | + | |
38 | 31 | | |
39 | 32 | | |
40 | 33 | | |
41 | | - | |
42 | | - | |
| 34 | + | |
43 | 35 | | |
44 | 36 | | |
45 | 37 | | |
| |||
Lines changed: 1 addition & 1 deletion
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
17 | 17 | | |
18 | 18 | | |
19 | 19 | | |
20 | | - | |
| 20 | + | |
21 | 21 | | |
22 | 22 | | |
23 | 23 | | |
| |||
Lines changed: 48 additions & 12 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
7882 | 7882 | | |
7883 | 7883 | | |
7884 | 7884 | | |
7885 | | - | |
| 7885 | + | |
| 7886 | + | |
| 7887 | + | |
| 7888 | + | |
| 7889 | + | |
| 7890 | + | |
| 7891 | + | |
| 7892 | + | |
| 7893 | + | |
| 7894 | + | |
| 7895 | + | |
| 7896 | + | |
| 7897 | + | |
| 7898 | + | |
| 7899 | + | |
| 7900 | + | |
| 7901 | + | |
| 7902 | + | |
| 7903 | + | |
| 7904 | + | |
| 7905 | + | |
7886 | 7906 | | |
7887 | 7907 | | |
7888 | 7908 | | |
| |||
7950 | 7970 | | |
7951 | 7971 | | |
7952 | 7972 | | |
| 7973 | + | |
7953 | 7974 | | |
7954 | 7975 | | |
7955 | 7976 | | |
| |||
7963 | 7984 | | |
7964 | 7985 | | |
7965 | 7986 | | |
7966 | | - | |
7967 | | - | |
| 7987 | + | |
| 7988 | + | |
| 7989 | + | |
| 7990 | + | |
| 7991 | + | |
7968 | 7992 | | |
7969 | 7993 | | |
7970 | 7994 | | |
| |||
7981 | 8005 | | |
7982 | 8006 | | |
7983 | 8007 | | |
7984 | | - | |
7985 | | - | |
7986 | | - | |
7987 | | - | |
| 8008 | + | |
| 8009 | + | |
7988 | 8010 | | |
7989 | 8011 | | |
7990 | 8012 | | |
7991 | | - | |
7992 | | - | |
7993 | | - | |
7994 | | - | |
| 8013 | + | |
| 8014 | + | |
| 8015 | + | |
| 8016 | + | |
| 8017 | + | |
| 8018 | + | |
| 8019 | + | |
| 8020 | + | |
| 8021 | + | |
| 8022 | + | |
| 8023 | + | |
| 8024 | + | |
| 8025 | + | |
| 8026 | + | |
| 8027 | + | |
| 8028 | + | |
| 8029 | + | |
| 8030 | + | |
7995 | 8031 | | |
7996 | 8032 | | |
7997 | | - | |
| 8033 | + | |
7998 | 8034 | | |
7999 | 8035 | | |
8000 | 8036 | | |
| |||
Lines changed: 23 additions & 2 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
14 | 14 | | |
15 | 15 | | |
16 | 16 | | |
17 | | - | |
18 | 17 | | |
19 | 18 | | |
20 | 19 | | |
21 | 20 | | |
22 | | - | |
23 | 21 | | |
| 22 | + | |
24 | 23 | | |
25 | 24 | | |
26 | 25 | | |
| |||
337 | 336 | | |
338 | 337 | | |
339 | 338 | | |
| 339 | + | |
| 340 | + | |
| 341 | + | |
| 342 | + | |
| 343 | + | |
| 344 | + | |
| 345 | + | |
| 346 | + | |
| 347 | + | |
| 348 | + | |
| 349 | + | |
| 350 | + | |
| 351 | + | |
| 352 | + | |
| 353 | + | |
| 354 | + | |
| 355 | + | |
| 356 | + | |
| 357 | + | |
| 358 | + | |
| 359 | + | |
| 360 | + | |
340 | 361 | | |
341 | 362 | | |
342 | 363 | | |
| |||
0 commit comments