mirror of
https://github.com/tencentmusic/supersonic.git
synced 2025-12-14 22:25:19 +00:00
(improvement)(chat) support show sum metric in chinese name and support multiple conditions in having and if not exist metirc than not addAggregateToMetric (#165)
This commit is contained in:
@@ -2,6 +2,7 @@ package com.tencent.supersonic.common.util.jsqlparser;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Objects;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import net.sf.jsqlparser.JSQLParserException;
|
||||
import net.sf.jsqlparser.expression.Expression;
|
||||
@@ -32,8 +33,12 @@ public class GroupByReplaceVisitor implements GroupByVisitor {
|
||||
|
||||
for (int i = 0; i < groupByExpressions.size(); i++) {
|
||||
Expression expression = groupByExpressions.get(i);
|
||||
|
||||
String replaceColumn = parseVisitorHelper.getReplaceColumn(expression.toString(), fieldNameMap,
|
||||
String columnName = expression.toString();
|
||||
if (expression instanceof Function && Objects.nonNull(
|
||||
((Function) expression).getParameters().getExpressions().get(0))) {
|
||||
columnName = ((Function) expression).getParameters().getExpressions().get(0).toString();
|
||||
}
|
||||
String replaceColumn = parseVisitorHelper.getReplaceColumn(columnName, fieldNameMap,
|
||||
exactReplace);
|
||||
if (StringUtils.isNotEmpty(replaceColumn)) {
|
||||
if (expression instanceof Column) {
|
||||
|
||||
@@ -468,7 +468,12 @@ public class SqlParserUpdateHelper {
|
||||
List<Expression> waitingForAdds = visitor.getWaitingForAdds();
|
||||
if (!CollectionUtils.isEmpty(waitingForAdds)) {
|
||||
for (Expression waitingForAdd : waitingForAdds) {
|
||||
plainSelect.setHaving(waitingForAdd);
|
||||
Expression having = plainSelect.getHaving();
|
||||
if (Objects.isNull(having)) {
|
||||
plainSelect.setHaving(waitingForAdd);
|
||||
} else {
|
||||
plainSelect.setHaving(new AndExpression(having, waitingForAdd));
|
||||
}
|
||||
}
|
||||
}
|
||||
return selectStatement.toString();
|
||||
|
||||
Reference in New Issue
Block a user