This is an automated email from the ASF dual-hosted git repository. ankitsultana pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/pinot.git
The following commit(s) were added to refs/heads/master by this push: new 4257bcb703 Fix Bug in Handling Empty Filters in Time Series (#14192) 4257bcb703 is described below commit 4257bcb703fda2c78287254dbc5c120804510e36 Author: Ankit Sultana <ankitsult...@uber.com> AuthorDate: Wed Oct 9 13:13:29 2024 -0500 Fix Bug in Handling Empty Filters in Time Series (#14192) --- .../core/operator/timeseries/TimeSeriesAggregationOperator.java | 4 ++++ .../pinot/core/query/request/context/utils/QueryContextUtils.java | 4 ++-- .../java/org/apache/pinot/tsdb/spi/plan/LeafTimeSeriesPlanNode.java | 5 +++-- 3 files changed, 9 insertions(+), 4 deletions(-) diff --git a/pinot-core/src/main/java/org/apache/pinot/core/operator/timeseries/TimeSeriesAggregationOperator.java b/pinot-core/src/main/java/org/apache/pinot/core/operator/timeseries/TimeSeriesAggregationOperator.java index ca2b7a7009..b55605589b 100644 --- a/pinot-core/src/main/java/org/apache/pinot/core/operator/timeseries/TimeSeriesAggregationOperator.java +++ b/pinot-core/src/main/java/org/apache/pinot/core/operator/timeseries/TimeSeriesAggregationOperator.java @@ -83,6 +83,10 @@ public class TimeSeriesAggregationOperator extends BaseOperator<TimeSeriesResult @Override protected TimeSeriesResultsBlock getNextBlock() { ValueBlock transformBlock = _projectOperator.nextBlock(); + if (transformBlock == null) { + TimeSeriesBuilderBlock builderBlock = new TimeSeriesBuilderBlock(_timeBuckets, new HashMap<>()); + return new TimeSeriesResultsBlock(builderBlock); + } BlockValSet blockValSet = transformBlock.getBlockValueSet(_timeColumn); long[] timeValues = blockValSet.getLongValuesSV(); if (_timeOffset != null && _timeOffset != 0L) { diff --git a/pinot-core/src/main/java/org/apache/pinot/core/query/request/context/utils/QueryContextUtils.java b/pinot-core/src/main/java/org/apache/pinot/core/query/request/context/utils/QueryContextUtils.java index c7f02eab76..fa7f53e314 100644 --- a/pinot-core/src/main/java/org/apache/pinot/core/query/request/context/utils/QueryContextUtils.java +++ b/pinot-core/src/main/java/org/apache/pinot/core/query/request/context/utils/QueryContextUtils.java @@ -35,7 +35,7 @@ public class QueryContextUtils { * Returns {@code true} if the given query is a selection query, {@code false} otherwise. */ public static boolean isSelectionQuery(QueryContext query) { - return !query.isDistinct() && query.getAggregationFunctions() == null; + return !query.isDistinct() && query.getAggregationFunctions() == null && !isTimeSeriesQuery(query); } /** @@ -51,7 +51,7 @@ public class QueryContextUtils { * Returns {@code true} if the given query is an aggregation query, {@code false} otherwise. */ public static boolean isAggregationQuery(QueryContext query) { - return query.getAggregationFunctions() != null; + return query.getAggregationFunctions() != null && !isTimeSeriesQuery(query); } /** diff --git a/pinot-timeseries/pinot-timeseries-spi/src/main/java/org/apache/pinot/tsdb/spi/plan/LeafTimeSeriesPlanNode.java b/pinot-timeseries/pinot-timeseries-spi/src/main/java/org/apache/pinot/tsdb/spi/plan/LeafTimeSeriesPlanNode.java index c5f438596c..e563508450 100644 --- a/pinot-timeseries/pinot-timeseries-spi/src/main/java/org/apache/pinot/tsdb/spi/plan/LeafTimeSeriesPlanNode.java +++ b/pinot-timeseries/pinot-timeseries-spi/src/main/java/org/apache/pinot/tsdb/spi/plan/LeafTimeSeriesPlanNode.java @@ -36,7 +36,6 @@ import org.apache.pinot.tsdb.spi.operator.BaseTimeSeriesOperator; * the time filter based on the computed time buckets in {@link TimeSeriesLogicalPlanner}. */ public class LeafTimeSeriesPlanNode extends BaseTimeSeriesPlanNode { - private static final String EXPLAIN_NAME = "LEAF_TIME_SERIES_PLAN_NODE"; private final String _tableName; private final String _timeColumn; private final TimeUnit _timeUnit; @@ -72,7 +71,9 @@ public class LeafTimeSeriesPlanNode extends BaseTimeSeriesPlanNode { @Override public String getExplainName() { - return EXPLAIN_NAME; + return String.format("LEAF_TIME_SERIES_PLAN_NODE(%s, table=%s, timeExpr=%s, valueExpr=%s, aggInfo=%s, " + + "groupBy=%s, filter=%s, offsetSeconds=%s)", _id, _tableName, _timeColumn, _valueExpression, + _aggInfo.getAggFunction(), _groupByExpressions, _filterExpression, _offsetSeconds); } @Override --------------------------------------------------------------------- To unsubscribe, e-mail: commits-unsubscr...@pinot.apache.org For additional commands, e-mail: commits-h...@pinot.apache.org