[fix][headless] Fix having and alias column not enclosed in backticks. (#2042)
Some checks failed
supersonic CentOS CI / build (21) (push) Has been cancelled
supersonic mac CI / build (21) (push) Has been cancelled
supersonic ubuntu CI / build (21) (push) Has been cancelled
supersonic windows CI / build (21) (push) Has been cancelled

This commit is contained in:
Hwwwww
2025-02-10 18:55:32 +08:00
committed by GitHub
parent 3ca46bee36
commit f412ae4539
2 changed files with 17 additions and 4 deletions

View File

@@ -516,6 +516,18 @@ public class SqlReplaceHelper {
if (Objects.nonNull(groupByElement)) {
groupByElement.accept(new GroupByReplaceVisitor(aliasReplacedMap, true));
}
// Alias columns
for (SelectItem<?> selectItem : plainSelect.getSelectItems()) {
if (selectItem.getExpression() instanceof Column){
replaceColumn((Column) selectItem.getExpression(), aliasReplacedMap, true);
}
}
// Having
Expression having = plainSelect.getHaving();
if (Objects.nonNull(having)) {
ExpressionReplaceVisitor expressionReplaceVisitor = new ExpressionReplaceVisitor(aliasReplacedMap);
having.accept(expressionReplaceVisitor);
}
return selectStatement.toString();
}