[improvement][chat]Change query type resolution logic.

This commit is contained in:
jerryjzhang
2024-10-29 19:03:10 +08:00
parent ec6d7ba93d
commit 996cb3df56
3 changed files with 4 additions and 8 deletions

View File

@@ -30,10 +30,7 @@ public class SqlSelectFunctionHelper {
Arrays.asList("SUM", "COUNT", "MAX", "MIN", "AVG");
public static boolean hasAggregateFunction(String sql) {
if (!CollectionUtils.isEmpty(getFunctions(sql))) {
return true;
}
return SqlSelectHelper.hasGroupBy(sql);
return !CollectionUtils.isEmpty(getFunctions(sql));
}
public static boolean hasFunction(String sql, String functionName) {

View File

@@ -35,7 +35,7 @@ class SqlSelectFunctionHelperTest {
hasAggregateFunction = SqlSelectFunctionHelper.hasAggregateFunction(sql);
Assert.assertEquals(hasAggregateFunction, false);
sql = "SELECT user_name, pv FROM t_34 WHERE sys_imp_date <= '2023-09-03' "
sql = "SELECT user_name, sum(pv) FROM t_34 WHERE sys_imp_date <= '2023-09-03' "
+ "AND sys_imp_date >= '2023-08-04' GROUP BY user_name ORDER BY sum(pv) DESC LIMIT 10";
hasAggregateFunction = SqlSelectFunctionHelper.hasAggregateFunction(sql);
Assert.assertEquals(hasAggregateFunction, true);

View File

@@ -68,9 +68,8 @@ public class QueryTypeParser implements SemanticParser {
}
}
// 2. metric queryType
if (selectContainsMetric(sqlInfo, dataSetId, semanticSchema)
|| SqlSelectFunctionHelper.hasAggregateFunction(sqlInfo.getParsedS2SQL())) {
// 2. AGG queryType
if (SqlSelectFunctionHelper.hasAggregateFunction(sqlInfo.getParsedS2SQL())) {
return QueryType.AGGREGATE;
}