From 920d8f280a928fbac729457e14ed222ac7d94013 Mon Sep 17 00:00:00 2001 From: jerryjzhang Date: Fri, 27 Dec 2024 11:57:23 +0800 Subject: [PATCH] [improvement][headless]Add more checks to accept() of `QueryParser`s. --- .../core/translator/parser/DefaultDimValueParser.java | 3 ++- .../headless/core/translator/parser/DimExpressionParser.java | 4 +++- .../core/translator/parser/MetricExpressionParser.java | 4 +++- 3 files changed, 8 insertions(+), 3 deletions(-) diff --git a/headless/core/src/main/java/com/tencent/supersonic/headless/core/translator/parser/DefaultDimValueParser.java b/headless/core/src/main/java/com/tencent/supersonic/headless/core/translator/parser/DefaultDimValueParser.java index 01d9f9299..98587fdeb 100644 --- a/headless/core/src/main/java/com/tencent/supersonic/headless/core/translator/parser/DefaultDimValueParser.java +++ b/headless/core/src/main/java/com/tencent/supersonic/headless/core/translator/parser/DefaultDimValueParser.java @@ -31,7 +31,8 @@ public class DefaultDimValueParser implements QueryParser { @Override public boolean accept(QueryStatement queryStatement) { return Objects.nonNull(queryStatement.getSqlQuery()) - && StringUtils.isNotBlank(queryStatement.getSqlQuery().getSql()); + && StringUtils.isNotBlank(queryStatement.getSqlQuery().getSql()) + && !CollectionUtils.isEmpty(queryStatement.getOntology().getDimensions()); } @Override diff --git a/headless/core/src/main/java/com/tencent/supersonic/headless/core/translator/parser/DimExpressionParser.java b/headless/core/src/main/java/com/tencent/supersonic/headless/core/translator/parser/DimExpressionParser.java index d37ecbd6a..aec1835ba 100644 --- a/headless/core/src/main/java/com/tencent/supersonic/headless/core/translator/parser/DimExpressionParser.java +++ b/headless/core/src/main/java/com/tencent/supersonic/headless/core/translator/parser/DimExpressionParser.java @@ -26,7 +26,9 @@ public class DimExpressionParser implements QueryParser { @Override public boolean accept(QueryStatement queryStatement) { return Objects.nonNull(queryStatement.getSqlQuery()) - && StringUtils.isNotBlank(queryStatement.getSqlQuery().getSql()); + && Objects.nonNull(queryStatement.getOntologyQuery()) + && StringUtils.isNotBlank(queryStatement.getSqlQuery().getSql()) + && !CollectionUtils.isEmpty(queryStatement.getOntologyQuery().getDimensions()); } @Override diff --git a/headless/core/src/main/java/com/tencent/supersonic/headless/core/translator/parser/MetricExpressionParser.java b/headless/core/src/main/java/com/tencent/supersonic/headless/core/translator/parser/MetricExpressionParser.java index deb9b4ed9..722c31352 100644 --- a/headless/core/src/main/java/com/tencent/supersonic/headless/core/translator/parser/MetricExpressionParser.java +++ b/headless/core/src/main/java/com/tencent/supersonic/headless/core/translator/parser/MetricExpressionParser.java @@ -25,7 +25,9 @@ public class MetricExpressionParser implements QueryParser { @Override public boolean accept(QueryStatement queryStatement) { return Objects.nonNull(queryStatement.getSqlQuery()) - && StringUtils.isNotBlank(queryStatement.getSqlQuery().getSql()); + && Objects.nonNull(queryStatement.getOntologyQuery()) + && StringUtils.isNotBlank(queryStatement.getSqlQuery().getSql()) + && !CollectionUtils.isEmpty(queryStatement.getOntologyQuery().getMetrics()); } @Override