(improvement)(chat) dsl parser and corrector support having function (#94)

This commit is contained in:
lexluo09
2023-09-15 15:38:33 +08:00
committed by GitHub
parent 45ed5648c4
commit 3701ade05f
4 changed files with 34 additions and 0 deletions

View File

@@ -117,9 +117,19 @@ public class SqlParserSelectHelper {
getWhereFields(plainSelect, result);
getHavingFields(plainSelect, result);
return new ArrayList<>(result);
}
private static void getHavingFields(PlainSelect plainSelect, Set<String> result) {
Expression having = plainSelect.getHaving();
if (Objects.nonNull(having)) {
having.accept(new FieldAcquireVisitor(result));
}
}
public static List<String> getOrderByFields(String sql) {
PlainSelect plainSelect = getPlainSelect(sql);
if (Objects.isNull(plainSelect)) {

View File

@@ -94,6 +94,11 @@ public class SqlParserUpdateHelper {
if (Objects.nonNull(groupByElement)) {
groupByElement.accept(new GroupByReplaceVisitor(fieldToBizName, exactReplace));
}
//5. replace having fields
Expression having = plainSelect.getHaving();
if (Objects.nonNull(having)) {
having.accept(visitor);
}
return selectStatement.toString();
}