mirror of
https://github.com/tencentmusic/supersonic.git
synced 2025-12-14 22:25:19 +00:00
(improvement)(chat) dsl parser and corrector support having function (#94)
This commit is contained in:
@@ -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)) {
|
||||
|
||||
@@ -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();
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user