mirror of
https://github.com/tencentmusic/supersonic.git
synced 2025-12-14 05:43:51 +00:00
[improvement](chat) Fix the issue of having empty elements in addFieldsToSelect. (#545)
This commit is contained in:
@@ -42,7 +42,7 @@ public class SqlParserAddHelper {
|
|||||||
SelectBody selectBody = selectStatement.getSelectBody();
|
SelectBody selectBody = selectStatement.getSelectBody();
|
||||||
if (selectBody instanceof PlainSelect) {
|
if (selectBody instanceof PlainSelect) {
|
||||||
PlainSelect plainSelect = (PlainSelect) selectBody;
|
PlainSelect plainSelect = (PlainSelect) selectBody;
|
||||||
fields.stream().forEach(field -> {
|
fields.stream().filter(Objects::nonNull).forEach(field -> {
|
||||||
SelectExpressionItem selectExpressionItem = new SelectExpressionItem(new Column(field));
|
SelectExpressionItem selectExpressionItem = new SelectExpressionItem(new Column(field));
|
||||||
plainSelect.addSelectItems(selectExpressionItem);
|
plainSelect.addSelectItems(selectExpressionItem);
|
||||||
});
|
});
|
||||||
@@ -59,9 +59,6 @@ public class SqlParserAddHelper {
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
//for (String field : fields) {
|
|
||||||
// SelectUtils.addExpression(selectStatement, new Column(field));
|
|
||||||
//}
|
|
||||||
return selectStatement.toString();
|
return selectStatement.toString();
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -228,7 +225,7 @@ public class SqlParserAddHelper {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private static void addAggregateToSelectItems(List<SelectItem> selectItems,
|
private static void addAggregateToSelectItems(List<SelectItem> selectItems,
|
||||||
Map<String, String> fieldNameToAggregate) {
|
Map<String, String> fieldNameToAggregate) {
|
||||||
for (SelectItem selectItem : selectItems) {
|
for (SelectItem selectItem : selectItems) {
|
||||||
if (selectItem instanceof SelectExpressionItem) {
|
if (selectItem instanceof SelectExpressionItem) {
|
||||||
SelectExpressionItem selectExpressionItem = (SelectExpressionItem) selectItem;
|
SelectExpressionItem selectExpressionItem = (SelectExpressionItem) selectItem;
|
||||||
@@ -243,7 +240,7 @@ public class SqlParserAddHelper {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private static void addAggregateToOrderByItems(List<OrderByElement> orderByElements,
|
private static void addAggregateToOrderByItems(List<OrderByElement> orderByElements,
|
||||||
Map<String, String> fieldNameToAggregate) {
|
Map<String, String> fieldNameToAggregate) {
|
||||||
if (orderByElements == null) {
|
if (orderByElements == null) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@@ -258,7 +255,7 @@ public class SqlParserAddHelper {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private static void addAggregateToGroupByItems(GroupByElement groupByElement,
|
private static void addAggregateToGroupByItems(GroupByElement groupByElement,
|
||||||
Map<String, String> fieldNameToAggregate) {
|
Map<String, String> fieldNameToAggregate) {
|
||||||
if (groupByElement == null) {
|
if (groupByElement == null) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@@ -279,7 +276,7 @@ public class SqlParserAddHelper {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private static void modifyWhereExpression(Expression whereExpression,
|
private static void modifyWhereExpression(Expression whereExpression,
|
||||||
Map<String, String> fieldNameToAggregate) {
|
Map<String, String> fieldNameToAggregate) {
|
||||||
if (SqlParserSelectHelper.isLogicExpression(whereExpression)) {
|
if (SqlParserSelectHelper.isLogicExpression(whereExpression)) {
|
||||||
AndExpression andExpression = (AndExpression) whereExpression;
|
AndExpression andExpression = (AndExpression) whereExpression;
|
||||||
Expression leftExpression = andExpression.getLeftExpression();
|
Expression leftExpression = andExpression.getLeftExpression();
|
||||||
|
|||||||
@@ -387,4 +387,14 @@ class SqlParserAddHelperTest {
|
|||||||
replaceSql);
|
replaceSql);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
void addFieldsToSelect() {
|
||||||
|
String correctS2SQL = "SELECT 用户, 页面 FROM 超音数用户部门 GROUP BY 用户, 页面 ORDER BY count(*) DESC";
|
||||||
|
String replaceFields = SqlParserAddHelper.addFieldsToSelect(correctS2SQL,
|
||||||
|
SqlParserSelectHelper.getOrderByFields(correctS2SQL));
|
||||||
|
|
||||||
|
Assert.assertEquals(
|
||||||
|
"SELECT 用户, 页面 FROM 超音数用户部门 GROUP BY 用户, 页面 ORDER BY count(*) DESC", replaceFields);
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user