From 50ed340ae01c02e2fbc22dff76b26d9888a9acc2 Mon Sep 17 00:00:00 2001 From: jerryjzhang Date: Sun, 23 Feb 2025 11:39:44 +0800 Subject: [PATCH] (fix)(headless)Fix NPE issue. --- .../headless/core/utils/SqlGenerateUtils.java | 29 +++++++++++++++---- 1 file changed, 24 insertions(+), 5 deletions(-) diff --git a/headless/core/src/main/java/com/tencent/supersonic/headless/core/utils/SqlGenerateUtils.java b/headless/core/src/main/java/com/tencent/supersonic/headless/core/utils/SqlGenerateUtils.java index 5695ff0bc..8b2864a67 100644 --- a/headless/core/src/main/java/com/tencent/supersonic/headless/core/utils/SqlGenerateUtils.java +++ b/headless/core/src/main/java/com/tencent/supersonic/headless/core/utils/SqlGenerateUtils.java @@ -73,15 +73,31 @@ public class SqlGenerateUtils { public String getSelect(StructQuery structQuery) { String aggStr = structQuery.getAggregators().stream().map(this::getSelectField) .collect(Collectors.joining(",")); - return CollectionUtils.isEmpty(structQuery.getGroups()) ? aggStr - : String.join(",", structQuery.getGroups()) + "," + aggStr; + String result = String.join(",", structQuery.getGroups()); + if (StringUtils.isNotBlank(aggStr)) { + if (!CollectionUtils.isEmpty(structQuery.getGroups())) { + result = String.join(",", structQuery.getGroups()) + "," + aggStr; + } else { + result = aggStr; + } + } + + return result; } public String getSelect(StructQuery structQuery, Map deriveMetrics) { String aggStr = structQuery.getAggregators().stream() .map(a -> getSelectField(a, deriveMetrics)).collect(Collectors.joining(",")); - return CollectionUtils.isEmpty(structQuery.getGroups()) ? aggStr - : String.join(",", structQuery.getGroups()) + "," + aggStr; + String result = String.join(",", structQuery.getGroups()); + if (StringUtils.isNotBlank(aggStr)) { + if (!CollectionUtils.isEmpty(structQuery.getGroups())) { + result = String.join(",", structQuery.getGroups()) + "," + aggStr; + } else { + result = aggStr; + } + } + + return result; } public String getSelectField(final Aggregator agg) { @@ -140,7 +156,10 @@ public class SqlGenerateUtils { public String generateWhere(StructQuery structQuery, ItemDateResp itemDateResp) { String whereClauseFromFilter = sqlFilterUtils.getWhereClause(structQuery.getDimensionFilters()); - String whereFromDate = getDateWhereClause(structQuery.getDateInfo(), itemDateResp); + String whereFromDate = ""; + if (structQuery.getDateInfo() != null) { + whereFromDate = getDateWhereClause(structQuery.getDateInfo(), itemDateResp); + } String mergedWhere = mergeDateWhereClause(structQuery, whereClauseFromFilter, whereFromDate); if (StringUtils.isNotBlank(mergedWhere)) {