@@ -59,6 +59,10 @@ public List<JpaQueryParsingToken> visitQueryExpression(HqlParser.QueryExpression
59
59
60
60
List <JpaQueryParsingToken > tokens = new ArrayList <>();
61
61
62
+ if (ctx .withClause () != null ) {
63
+ tokens .addAll (visit (ctx .withClause ()));
64
+ }
65
+
62
66
tokens .addAll (visit (ctx .orderedQuery (0 )));
63
67
64
68
for (int i = 1 ; i < ctx .orderedQuery ().size (); i ++) {
@@ -70,6 +74,150 @@ public List<JpaQueryParsingToken> visitQueryExpression(HqlParser.QueryExpression
70
74
return tokens ;
71
75
}
72
76
77
+ @ Override
78
+ public List <JpaQueryParsingToken > visitWithClause (HqlParser .WithClauseContext ctx ) {
79
+
80
+ List <JpaQueryParsingToken > tokens = new ArrayList <>();
81
+
82
+ tokens .add (TOKEN_WITH );
83
+
84
+ ctx .cte ().forEach (cteContext -> {
85
+
86
+ tokens .addAll (visit (cteContext ));
87
+ tokens .add (TOKEN_COMMA );
88
+ });
89
+ CLIP (tokens );
90
+
91
+ return tokens ;
92
+ }
93
+
94
+ @ Override
95
+ public List <JpaQueryParsingToken > visitCte (HqlParser .CteContext ctx ) {
96
+
97
+ List <JpaQueryParsingToken > tokens = new ArrayList <>();
98
+
99
+ tokens .addAll (visit (ctx .identifier ()));
100
+ tokens .add (TOKEN_AS );
101
+ NOSPACE (tokens );
102
+
103
+ if (ctx .NOT () != null ) {
104
+ tokens .add (TOKEN_NOT );
105
+ }
106
+ if (ctx .MATERIALIZED () != null ) {
107
+ tokens .add (TOKEN_MATERIALIZED );
108
+ }
109
+
110
+ tokens .add (TOKEN_OPEN_PAREN );
111
+ tokens .addAll (visit (ctx .queryExpression ()));
112
+ tokens .add (TOKEN_CLOSE_PAREN );
113
+
114
+ if (ctx .searchClause () != null ) {
115
+ tokens .addAll (visit (ctx .searchClause ()));
116
+ }
117
+ if (ctx .cycleClause () != null ) {
118
+ tokens .addAll (visit (ctx .cycleClause ()));
119
+ }
120
+
121
+ return tokens ;
122
+ }
123
+
124
+ @ Override
125
+ public List <JpaQueryParsingToken > visitSearchClause (HqlParser .SearchClauseContext ctx ) {
126
+
127
+ List <JpaQueryParsingToken > tokens = new ArrayList <>();
128
+
129
+ tokens .add (new JpaQueryParsingToken (ctx .SEARCH ().getText ()));
130
+
131
+ if (ctx .BREADTH () != null ) {
132
+ tokens .add (new JpaQueryParsingToken (ctx .BREADTH ().getText ()));
133
+ } else if (ctx .DEPTH () != null ) {
134
+ tokens .add (new JpaQueryParsingToken (ctx .DEPTH ().getText ()));
135
+ }
136
+
137
+ tokens .add (new JpaQueryParsingToken (ctx .FIRST ().getText ()));
138
+ tokens .add (new JpaQueryParsingToken (ctx .BY ().getText ()));
139
+ tokens .addAll (visit (ctx .searchSpecifications ()));
140
+ tokens .add (new JpaQueryParsingToken (ctx .SET ().getText ()));
141
+ tokens .addAll (visit (ctx .identifier ()));
142
+
143
+ return tokens ;
144
+ }
145
+
146
+ @ Override
147
+ public List <JpaQueryParsingToken > visitSearchSpecifications (HqlParser .SearchSpecificationsContext ctx ) {
148
+
149
+ List <JpaQueryParsingToken > tokens = new ArrayList <>();
150
+
151
+ ctx .searchSpecification ().forEach (searchSpecificationContext -> {
152
+
153
+ tokens .addAll (visit (searchSpecificationContext ));
154
+ tokens .add (TOKEN_COMMA );
155
+ });
156
+ CLIP (tokens );
157
+
158
+ return tokens ;
159
+ }
160
+
161
+ @ Override
162
+ public List <JpaQueryParsingToken > visitSearchSpecification (HqlParser .SearchSpecificationContext ctx ) {
163
+
164
+ List <JpaQueryParsingToken > tokens = new ArrayList <>();
165
+
166
+ tokens .addAll (visit (ctx .identifier ()));
167
+
168
+ if (ctx .sortDirection () != null ) {
169
+ tokens .addAll (visit (ctx .sortDirection ()));
170
+ }
171
+
172
+ if (ctx .nullsPrecedence () != null ) {
173
+ tokens .addAll (visit (ctx .nullsPrecedence ()));
174
+ }
175
+
176
+ return tokens ;
177
+ }
178
+
179
+ @ Override
180
+ public List <JpaQueryParsingToken > visitCycleClause (HqlParser .CycleClauseContext ctx ) {
181
+
182
+ List <JpaQueryParsingToken > tokens = new ArrayList <>();
183
+
184
+ tokens .add (new JpaQueryParsingToken (ctx .CYCLE ().getText ()));
185
+ tokens .addAll (visit (ctx .cteAttributes ()));
186
+ tokens .add (new JpaQueryParsingToken (ctx .SET ().getText ()));
187
+ tokens .addAll (visit (ctx .identifier (0 )));
188
+
189
+ if (ctx .TO () != null ) {
190
+
191
+ tokens .add (new JpaQueryParsingToken (ctx .TO ().getText ()));
192
+ tokens .addAll (visit (ctx .literal (0 )));
193
+ tokens .add (new JpaQueryParsingToken (ctx .DEFAULT ().getText ()));
194
+ tokens .addAll (visit (ctx .literal (1 )));
195
+ }
196
+
197
+ if (ctx .USING () != null ) {
198
+
199
+ tokens .add (new JpaQueryParsingToken (ctx .USING ().getText ()));
200
+ tokens .addAll (visit (ctx .identifier (1 )));
201
+ }
202
+
203
+ return tokens ;
204
+ }
205
+
206
+ @ Override
207
+ public List <JpaQueryParsingToken > visitCteAttributes (HqlParser .CteAttributesContext ctx ) {
208
+
209
+ List <JpaQueryParsingToken > tokens = new ArrayList <>();
210
+
211
+ ctx .identifier ().forEach (identifierContext -> {
212
+
213
+ tokens .addAll (visit (identifierContext ));
214
+ tokens .add (TOKEN_COMMA );
215
+ });
216
+ CLIP (tokens );
217
+
218
+ return tokens ;
219
+ }
220
+
73
221
@ Override
74
222
public List <JpaQueryParsingToken > visitOrderedQuery (HqlParser .OrderedQueryContext ctx ) {
75
223
@@ -1876,7 +2024,7 @@ public List<JpaQueryParsingToken> visitNotPredicate(HqlParser.NotPredicateContex
1876
2024
1877
2025
List <JpaQueryParsingToken > tokens = new ArrayList <>();
1878
2026
1879
- tokens .add (new JpaQueryParsingToken ( ctx . NOT ()) );
2027
+ tokens .add (TOKEN_NOT );
1880
2028
tokens .addAll (visit (ctx .predicate ()));
1881
2029
1882
2030
return tokens ;
@@ -1919,7 +2067,7 @@ public List<JpaQueryParsingToken> visitBetweenExpression(HqlParser.BetweenExpres
1919
2067
tokens .addAll (visit (ctx .expression (0 )));
1920
2068
1921
2069
if (ctx .NOT () != null ) {
1922
- tokens .add (new JpaQueryParsingToken ( ctx . NOT ()) );
2070
+ tokens .add (TOKEN_NOT );
1923
2071
}
1924
2072
1925
2073
tokens .add (new JpaQueryParsingToken (ctx .BETWEEN ()));
@@ -1939,7 +2087,7 @@ public List<JpaQueryParsingToken> visitDealingWithNullExpression(HqlParser.Deali
1939
2087
tokens .add (new JpaQueryParsingToken (ctx .IS ()));
1940
2088
1941
2089
if (ctx .NOT () != null ) {
1942
- tokens .add (new JpaQueryParsingToken ( ctx . NOT ()) );
2090
+ tokens .add (TOKEN_NOT );
1943
2091
}
1944
2092
1945
2093
if (ctx .NULL () != null ) {
@@ -1962,7 +2110,7 @@ public List<JpaQueryParsingToken> visitStringPatternMatching(HqlParser.StringPat
1962
2110
tokens .addAll (visit (ctx .expression (0 )));
1963
2111
1964
2112
if (ctx .NOT () != null ) {
1965
- tokens .add (new JpaQueryParsingToken ( ctx . NOT ()) );
2113
+ tokens .add (TOKEN_NOT );
1966
2114
}
1967
2115
1968
2116
if (ctx .LIKE () != null ) {
@@ -1990,7 +2138,7 @@ public List<JpaQueryParsingToken> visitInExpression(HqlParser.InExpressionContex
1990
2138
tokens .addAll (visit (ctx .expression ()));
1991
2139
1992
2140
if (ctx .NOT () != null ) {
1993
- tokens .add (new JpaQueryParsingToken ( ctx . NOT ()) );
2141
+ tokens .add (TOKEN_NOT );
1994
2142
}
1995
2143
1996
2144
tokens .add (new JpaQueryParsingToken (ctx .IN ()));
@@ -2081,14 +2229,14 @@ public List<JpaQueryParsingToken> visitCollectionExpression(HqlParser.Collection
2081
2229
tokens .add (new JpaQueryParsingToken (ctx .IS ()));
2082
2230
2083
2231
if (ctx .NOT () != null ) {
2084
- tokens .add (new JpaQueryParsingToken ( ctx . NOT ()) );
2232
+ tokens .add (TOKEN_NOT );
2085
2233
}
2086
2234
2087
2235
tokens .add (new JpaQueryParsingToken (ctx .EMPTY ()));
2088
2236
} else if (ctx .MEMBER () != null ) {
2089
2237
2090
2238
if (ctx .NOT () != null ) {
2091
- tokens .add (new JpaQueryParsingToken ( ctx . NOT ()) );
2239
+ tokens .add (TOKEN_NOT );
2092
2240
}
2093
2241
2094
2242
tokens .add (new JpaQueryParsingToken (ctx .MEMBER ()));
0 commit comments