Commit 631ab7f
committed
Fix parsing of ClickHouse transformers after '*'
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 0036c75 commit 631ab7f
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 | |
|---|---|---|---|
| |||
7846 | 7846 | | |
7847 | 7847 | | |
7848 | 7848 | | |
7849 | | - | |
| 7849 | + | |
| 7850 | + | |
| 7851 | + | |
| 7852 | + | |
| 7853 | + | |
| 7854 | + | |
| 7855 | + | |
| 7856 | + | |
| 7857 | + | |
| 7858 | + | |
| 7859 | + | |
| 7860 | + | |
| 7861 | + | |
| 7862 | + | |
| 7863 | + | |
| 7864 | + | |
| 7865 | + | |
| 7866 | + | |
| 7867 | + | |
| 7868 | + | |
| 7869 | + | |
7850 | 7870 | | |
7851 | 7871 | | |
7852 | 7872 | | |
| |||
7914 | 7934 | | |
7915 | 7935 | | |
7916 | 7936 | | |
| 7937 | + | |
7917 | 7938 | | |
7918 | 7939 | | |
7919 | 7940 | | |
| |||
7927 | 7948 | | |
7928 | 7949 | | |
7929 | 7950 | | |
7930 | | - | |
7931 | | - | |
| 7951 | + | |
| 7952 | + | |
| 7953 | + | |
| 7954 | + | |
| 7955 | + | |
7932 | 7956 | | |
7933 | 7957 | | |
7934 | 7958 | | |
| |||
7945 | 7969 | | |
7946 | 7970 | | |
7947 | 7971 | | |
7948 | | - | |
7949 | | - | |
7950 | | - | |
7951 | | - | |
| 7972 | + | |
| 7973 | + | |
7952 | 7974 | | |
7953 | 7975 | | |
7954 | 7976 | | |
7955 | | - | |
7956 | | - | |
7957 | | - | |
7958 | | - | |
| 7977 | + | |
| 7978 | + | |
| 7979 | + | |
| 7980 | + | |
| 7981 | + | |
| 7982 | + | |
| 7983 | + | |
| 7984 | + | |
| 7985 | + | |
| 7986 | + | |
| 7987 | + | |
| 7988 | + | |
| 7989 | + | |
| 7990 | + | |
| 7991 | + | |
| 7992 | + | |
| 7993 | + | |
| 7994 | + | |
7959 | 7995 | | |
7960 | 7996 | | |
7961 | | - | |
| 7997 | + | |
7962 | 7998 | | |
7963 | 7999 | | |
7964 | 8000 | | |
| |||
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