@@ -229,93 +229,96 @@ else if ( quotedIdentifier && dialect.closeQuote()==token.charAt(0) ) {
229
229
final boolean wasAfterCurrent = afterCurrent ;
230
230
afterCurrent = afterCurrent && isWhitespace ;
231
231
232
+ final String processedToken ;
232
233
final boolean isQuoted =
233
234
quoted || quotedIdentifier || isQuoteCharacter ;
234
235
if ( isQuoted || isWhitespace ) {
235
- result . append ( token ) ;
236
+ processedToken = token ;
236
237
}
237
238
else if ( beforeTable ) {
238
- result . append ( token ) ;
239
+ processedToken = token ;
239
240
beforeTable = false ;
240
241
afterFromTable = true ;
241
242
}
242
243
else if ( afterFromTable ) {
243
244
afterFromTable = "as" .equals (lcToken );
244
- result . append ( token ) ;
245
+ processedToken = token ;
245
246
}
246
247
else if ( "(" .equals (lcToken ) ) {
247
- result . append ( token ) ;
248
+ processedToken = token ;
248
249
}
249
250
else if ( ")" .equals (lcToken ) ) {
250
251
inExtractOrTrim = false ;
251
252
inCast = false ;
252
253
afterCastAs = false ;
253
- result . append ( token ) ;
254
+ processedToken = token ;
254
255
}
255
256
else if ( "," .equals (lcToken ) ) {
256
257
if ( inFromClause ) {
257
258
beforeTable = true ;
258
259
}
259
- result . append ( token ) ;
260
+ processedToken = token ;
260
261
}
261
262
else if ( lcToken .length ()==1 && symbols .contains (lcToken ) ) {
262
- result . append ( token ) ;
263
+ processedToken = token ;
263
264
}
264
265
else if ( BEFORE_TABLE_KEYWORDS .contains (lcToken ) ) {
265
266
if ( !inExtractOrTrim ) {
266
267
beforeTable = true ;
267
268
inFromClause = true ;
268
269
}
269
- result . append ( token ) ;
270
+ processedToken = token ;
270
271
}
271
272
else if ( inFromClause || afterCastAs ) {
272
273
// Don't want to append alias to:
273
274
// 1. tokens inside the FROM clause
274
275
// 2. type names after 'CAST(expression AS'
275
- result . append ( token ) ;
276
+ processedToken = token ;
276
277
}
277
278
else if ( isNamedParameter (token ) ) {
278
- result . append ( token ) ;
279
+ processedToken = token ;
279
280
}
280
281
else if ( "as" .equals ( lcToken ) ) {
281
- result . append ( token ) ;
282
+ processedToken = token ;
282
283
afterCastAs = inCast ;
283
284
}
284
285
else if ( isFetch ( dialect , lcToken ) ) {
285
- result . append ( token ) ;
286
+ processedToken = token ;
286
287
afterFetch = true ;
287
288
}
288
289
else if ( wasAfterFetch && FETCH_BIGRAMS .contains ( lcToken ) ) {
289
- result . append ( token ) ;
290
+ processedToken = token ;
290
291
}
291
292
else if ( isCurrent ( lcToken , nextToken , sql , symbols , tokens ) ) {
292
- result . append ( token ) ;
293
+ processedToken = token ;
293
294
afterCurrent = true ;
294
295
}
295
296
else if ( isBoolean ( lcToken ) ) {
296
- result . append ( dialect .toBooleanValueString ( parseBoolean ( token ) ) );
297
+ processedToken = dialect .toBooleanValueString ( parseBoolean ( token ) );
297
298
}
298
299
else if ( isFunctionCall ( nextToken , sql , symbols , tokens ) ) {
299
- result .append (token );
300
300
if ( FUNCTION_WITH_FROM_KEYWORDS .contains ( lcToken ) ) {
301
301
inExtractOrTrim = true ;
302
302
}
303
303
if ( "cast" .equals ( lcToken ) ) {
304
304
inCast = true ;
305
305
}
306
+ processedToken = token ;
306
307
}
307
308
else if ( isAliasableIdentifier ( token , lcToken , nextToken ,
308
309
sql , symbols , tokens , wasAfterCurrent ,
309
310
dialect , typeConfiguration ) ) {
310
- result . append ( alias ). append ( '.' ). append ( dialect .quote (token ) );
311
+ processedToken = alias + '.' + dialect .quote (token );
311
312
}
312
313
else {
313
- result . append ( token ) ;
314
+ processedToken = token ;
314
315
}
315
316
317
+ result .append ( processedToken );
318
+
316
319
//Yuck:
317
320
if ( inFromClause
318
- && KEYWORDS .contains ( lcToken ) //"as" is not in KEYWORDS
321
+ && KEYWORDS .contains ( lcToken ) // "as" is not in KEYWORDS
319
322
&& !BEFORE_TABLE_KEYWORDS .contains ( lcToken ) ) {
320
323
inFromClause = false ;
321
324
}
0 commit comments