You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@pinot.apache.org by si...@apache.org on 2022/07/29 18:32:05 UTC
[pinot] branch master updated: Emit a server side metric to identify if MV columns are present as part of the selection order by queries (#9117)
This is an automated email from the ASF dual-hosted git repository.
siddteotia 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 c6ac7d6df2 Emit a server side metric to identify if MV columns are present as part of the selection order by queries (#9117)
c6ac7d6df2 is described below
commit c6ac7d6df285e51193651413232dd7de560c1aa4
Author: Sonam Mandal <so...@linkedin.com>
AuthorDate: Fri Jul 29 11:31:58 2022 -0700
Emit a server side metric to identify if MV columns are present as part of the selection order by queries (#9117)
* Emit a server side metric to identify if MV columns are present as part of the selection order by queries
* Add the queryHasMVSelectionOrderBy value to logs if true for easier detection
* Remove if check for log
* Remove MetadataKey and pass down server metrics and add a log
* Add null check for orderByExpressions
* Address review comments
* empty commit to trigger checks
---
.../apache/pinot/common/metrics/ServerMeter.java | 1 +
.../core/operator/InstanceResponseOperator.java | 42 ++++++++++++++++++----
.../StreamingInstanceResponseOperator.java | 7 ++--
.../operator/blocks/IntermediateResultsBlock.java | 9 +++++
.../operator/query/SelectionOrderByOperator.java | 13 +++++--
.../pinot/core/plan/InstanceResponsePlanNode.java | 11 ++++--
.../plan/StreamingInstanceResponsePlanNode.java | 9 +++--
.../core/plan/maker/InstancePlanMakerImplV2.java | 14 +++++---
.../apache/pinot/core/plan/maker/PlanMaker.java | 7 ++--
.../query/executor/ServerQueryExecutorV1Impl.java | 3 +-
.../org/apache/pinot/queries/BaseQueriesTest.java | 2 +-
11 files changed, 93 insertions(+), 25 deletions(-)
diff --git a/pinot-common/src/main/java/org/apache/pinot/common/metrics/ServerMeter.java b/pinot-common/src/main/java/org/apache/pinot/common/metrics/ServerMeter.java
index 21133fddc8..22bb82abd4 100644
--- a/pinot-common/src/main/java/org/apache/pinot/common/metrics/ServerMeter.java
+++ b/pinot-common/src/main/java/org/apache/pinot/common/metrics/ServerMeter.java
@@ -72,6 +72,7 @@ public enum ServerMeter implements AbstractMetrics.Meter {
NUM_RESIZES("numResizes", false),
NO_TABLE_ACCESS("tables", true),
INDEXING_FAILURES("attributeValues", true),
+ QUERY_HAS_MV_SELECTION_ORDER_BY("queryHasMVSelectionOrderBy", false),
// Netty connection metrics
NETTY_CONNECTION_BYTES_RECEIVED("nettyConnection", true),
diff --git a/pinot-core/src/main/java/org/apache/pinot/core/operator/InstanceResponseOperator.java b/pinot-core/src/main/java/org/apache/pinot/core/operator/InstanceResponseOperator.java
index 096726dedf..1ca21e4e4e 100644
--- a/pinot-core/src/main/java/org/apache/pinot/core/operator/InstanceResponseOperator.java
+++ b/pinot-core/src/main/java/org/apache/pinot/core/operator/InstanceResponseOperator.java
@@ -21,31 +21,41 @@ package org.apache.pinot.core.operator;
import java.util.Collections;
import java.util.List;
import java.util.Map;
+import org.apache.pinot.common.metrics.ServerMeter;
+import org.apache.pinot.common.metrics.ServerMetrics;
import org.apache.pinot.common.utils.DataTable.MetadataKey;
import org.apache.pinot.core.common.Operator;
import org.apache.pinot.core.operator.blocks.InstanceResponseBlock;
import org.apache.pinot.core.operator.blocks.IntermediateResultsBlock;
import org.apache.pinot.core.operator.combine.BaseCombineOperator;
+import org.apache.pinot.core.query.request.context.QueryContext;
import org.apache.pinot.core.query.request.context.ThreadTimer;
import org.apache.pinot.segment.spi.FetchContext;
import org.apache.pinot.segment.spi.IndexSegment;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
public class InstanceResponseOperator extends BaseOperator<InstanceResponseBlock> {
+ private static final Logger LOGGER = LoggerFactory.getLogger(InstanceResponseOperator.class);
private static final String EXPLAIN_NAME = "INSTANCE_RESPONSE";
private final BaseCombineOperator _combineOperator;
private final List<IndexSegment> _indexSegments;
private final List<FetchContext> _fetchContexts;
private final int _fetchContextSize;
+ private final QueryContext _queryContext;
+ private final ServerMetrics _serverMetrics;
public InstanceResponseOperator(BaseCombineOperator combinedOperator, List<IndexSegment> indexSegments,
- List<FetchContext> fetchContexts) {
+ List<FetchContext> fetchContexts, QueryContext queryContext, ServerMetrics serverMetrics) {
_combineOperator = combinedOperator;
_indexSegments = indexSegments;
_fetchContexts = fetchContexts;
_fetchContextSize = fetchContexts.size();
+ _queryContext = queryContext;
+ _serverMetrics = serverMetrics;
}
/*
@@ -75,12 +85,15 @@ public class InstanceResponseOperator extends BaseOperator<InstanceResponseBlock
@Override
protected InstanceResponseBlock getNextBlock() {
+ IntermediateResultsBlock intermediateResultsBlock;
+ InstanceResponseBlock instanceResponseBlock;
+
if (ThreadTimer.isThreadCpuTimeMeasurementEnabled()) {
long startWallClockTimeNs = System.nanoTime();
ThreadTimer mainThreadTimer = new ThreadTimer();
- IntermediateResultsBlock intermediateResultsBlock = getCombinedResults();
- InstanceResponseBlock instanceResponseBlock = new InstanceResponseBlock(intermediateResultsBlock);
+ intermediateResultsBlock = getCombinedResults();
+ instanceResponseBlock = new InstanceResponseBlock(intermediateResultsBlock);
long mainThreadCpuTimeNs = mainThreadTimer.getThreadTimeNs();
long totalWallClockTimeNs = System.nanoTime() - startWallClockTimeNs;
@@ -100,11 +113,28 @@ public class InstanceResponseOperator extends BaseOperator<InstanceResponseBlock
responseMetaData.put(MetadataKey.THREAD_CPU_TIME_NS.getName(), String.valueOf(threadCpuTimeNs));
responseMetaData
.put(MetadataKey.SYSTEM_ACTIVITIES_CPU_TIME_NS.getName(), String.valueOf(systemActivitiesCpuTimeNs));
-
- return instanceResponseBlock;
} else {
- return new InstanceResponseBlock(getCombinedResults());
+ intermediateResultsBlock = getCombinedResults();
+ instanceResponseBlock = new InstanceResponseBlock(intermediateResultsBlock);
+ }
+
+ // TODO: Remove this once the SelectionOrderByOperator is modified to throw an exception to catch cases where
+ // an MV column (identifier or via transform) is present on the order-by list
+ logAndEmitMetricForQueryHasMVSelectionOrderBy(intermediateResultsBlock);
+ return instanceResponseBlock;
+ }
+
+ private void logAndEmitMetricForQueryHasMVSelectionOrderBy(IntermediateResultsBlock intermediateResultsBlock) {
+ if (!intermediateResultsBlock.isQueryHasMVSelectionOrderBy()) {
+ return;
+ }
+
+ String tableName = _queryContext.getTableName();
+ if (_serverMetrics != null) {
+ _serverMetrics.addMeteredTableValue(tableName, ServerMeter.QUERY_HAS_MV_SELECTION_ORDER_BY, 1);
}
+ LOGGER.warn("Table {} has MV column in ORDER BY. Expressions: {}", tableName,
+ _queryContext.getOrderByExpressions());
}
private IntermediateResultsBlock getCombinedResults() {
diff --git a/pinot-core/src/main/java/org/apache/pinot/core/operator/StreamingInstanceResponseOperator.java b/pinot-core/src/main/java/org/apache/pinot/core/operator/StreamingInstanceResponseOperator.java
index 0b00b90902..4a13361b56 100644
--- a/pinot-core/src/main/java/org/apache/pinot/core/operator/StreamingInstanceResponseOperator.java
+++ b/pinot-core/src/main/java/org/apache/pinot/core/operator/StreamingInstanceResponseOperator.java
@@ -22,12 +22,14 @@ import io.grpc.stub.StreamObserver;
import java.io.IOException;
import java.util.List;
import org.apache.pinot.common.exception.QueryException;
+import org.apache.pinot.common.metrics.ServerMetrics;
import org.apache.pinot.common.proto.Server;
import org.apache.pinot.common.utils.DataTable;
import org.apache.pinot.core.common.datatable.DataTableFactory;
import org.apache.pinot.core.operator.blocks.InstanceResponseBlock;
import org.apache.pinot.core.operator.combine.BaseCombineOperator;
import org.apache.pinot.core.operator.streaming.StreamingResponseUtils;
+import org.apache.pinot.core.query.request.context.QueryContext;
import org.apache.pinot.segment.spi.FetchContext;
import org.apache.pinot.segment.spi.IndexSegment;
@@ -37,8 +39,9 @@ public class StreamingInstanceResponseOperator extends InstanceResponseOperator
private final StreamObserver<Server.ServerResponse> _streamObserver;
public StreamingInstanceResponseOperator(BaseCombineOperator combinedOperator, List<IndexSegment> indexSegments,
- List<FetchContext> fetchContexts, StreamObserver<Server.ServerResponse> streamObserver) {
- super(combinedOperator, indexSegments, fetchContexts);
+ List<FetchContext> fetchContexts, StreamObserver<Server.ServerResponse> streamObserver,
+ QueryContext queryContext, ServerMetrics serverMetrics) {
+ super(combinedOperator, indexSegments, fetchContexts, queryContext, serverMetrics);
_streamObserver = streamObserver;
}
diff --git a/pinot-core/src/main/java/org/apache/pinot/core/operator/blocks/IntermediateResultsBlock.java b/pinot-core/src/main/java/org/apache/pinot/core/operator/blocks/IntermediateResultsBlock.java
index 6bc5e6e016..2367f5ac84 100644
--- a/pinot-core/src/main/java/org/apache/pinot/core/operator/blocks/IntermediateResultsBlock.java
+++ b/pinot-core/src/main/java/org/apache/pinot/core/operator/blocks/IntermediateResultsBlock.java
@@ -74,6 +74,7 @@ public class IntermediateResultsBlock implements Block {
private long _resizeTimeMs;
private long _executionThreadCpuTimeNs;
private int _numServerThreads;
+ private boolean _queryHasMVSelectionOrderBy;
private Table _table;
@@ -287,6 +288,14 @@ public class IntermediateResultsBlock implements Block {
_numGroupsLimitReached = numGroupsLimitReached;
}
+ public boolean isQueryHasMVSelectionOrderBy() {
+ return _queryHasMVSelectionOrderBy;
+ }
+
+ public void setQueryHasMVSelectionOrderBy(boolean queryHasMVSelectionOrderBy) {
+ _queryHasMVSelectionOrderBy = queryHasMVSelectionOrderBy;
+ }
+
/**
* Get the collection of intermediate records
*/
diff --git a/pinot-core/src/main/java/org/apache/pinot/core/operator/query/SelectionOrderByOperator.java b/pinot-core/src/main/java/org/apache/pinot/core/operator/query/SelectionOrderByOperator.java
index 2cc14706dd..e8dd9bf76b 100644
--- a/pinot-core/src/main/java/org/apache/pinot/core/operator/query/SelectionOrderByOperator.java
+++ b/pinot-core/src/main/java/org/apache/pinot/core/operator/query/SelectionOrderByOperator.java
@@ -87,6 +87,8 @@ public class SelectionOrderByOperator extends BaseOperator<IntermediateResultsBl
private int _numDocsScanned = 0;
private long _numEntriesScannedPostFilter = 0;
+ private boolean _queryHasMVSelectionOrderBy = false;
+
public SelectionOrderByOperator(IndexSegment indexSegment, QueryContext queryContext,
List<ExpressionContext> expressions, TransformOperator transformOperator, boolean allOrderByColsPreSorted) {
_indexSegment = indexSegment;
@@ -128,6 +130,8 @@ public class SelectionOrderByOperator extends BaseOperator<IntermediateResultsBl
for (int i = 0; i < numOrderByExpressions; i++) {
if (_orderByExpressionMetadata[i].isSingleValue()) {
valueIndexList.add(i);
+ } else {
+ _queryHasMVSelectionOrderBy = true;
}
}
@@ -236,13 +240,16 @@ public class SelectionOrderByOperator extends BaseOperator<IntermediateResultsBl
@Override
protected IntermediateResultsBlock getNextBlock() {
+ IntermediateResultsBlock resultsBlock;
if (_allOrderByColsPreSorted) {
- return computeAllPreSorted();
+ resultsBlock = computeAllPreSorted();
} else if (_expressions.size() == _orderByExpressions.size()) {
- return computeAllOrdered();
+ resultsBlock = computeAllOrdered();
} else {
- return computePartiallyOrdered();
+ resultsBlock = computePartiallyOrdered();
}
+ resultsBlock.setQueryHasMVSelectionOrderBy(_queryHasMVSelectionOrderBy);
+ return resultsBlock;
}
private IntermediateResultsBlock computeAllPreSorted() {
diff --git a/pinot-core/src/main/java/org/apache/pinot/core/plan/InstanceResponsePlanNode.java b/pinot-core/src/main/java/org/apache/pinot/core/plan/InstanceResponsePlanNode.java
index 915c5dd64b..2b3f9aff18 100644
--- a/pinot-core/src/main/java/org/apache/pinot/core/plan/InstanceResponsePlanNode.java
+++ b/pinot-core/src/main/java/org/apache/pinot/core/plan/InstanceResponsePlanNode.java
@@ -19,7 +19,9 @@
package org.apache.pinot.core.plan;
import java.util.List;
+import org.apache.pinot.common.metrics.ServerMetrics;
import org.apache.pinot.core.operator.InstanceResponseOperator;
+import org.apache.pinot.core.query.request.context.QueryContext;
import org.apache.pinot.segment.spi.FetchContext;
import org.apache.pinot.segment.spi.IndexSegment;
@@ -28,16 +30,21 @@ public class InstanceResponsePlanNode implements PlanNode {
protected final CombinePlanNode _combinePlanNode;
protected final List<IndexSegment> _indexSegments;
protected final List<FetchContext> _fetchContexts;
+ protected final QueryContext _queryContext;
+ protected final ServerMetrics _serverMetrics;
public InstanceResponsePlanNode(CombinePlanNode combinePlanNode, List<IndexSegment> indexSegments,
- List<FetchContext> fetchContexts) {
+ List<FetchContext> fetchContexts, QueryContext queryContext, ServerMetrics serverMetrics) {
_combinePlanNode = combinePlanNode;
_indexSegments = indexSegments;
_fetchContexts = fetchContexts;
+ _queryContext = queryContext;
+ _serverMetrics = serverMetrics;
}
@Override
public InstanceResponseOperator run() {
- return new InstanceResponseOperator(_combinePlanNode.run(), _indexSegments, _fetchContexts);
+ return new InstanceResponseOperator(_combinePlanNode.run(), _indexSegments, _fetchContexts, _queryContext,
+ _serverMetrics);
}
}
diff --git a/pinot-core/src/main/java/org/apache/pinot/core/plan/StreamingInstanceResponsePlanNode.java b/pinot-core/src/main/java/org/apache/pinot/core/plan/StreamingInstanceResponsePlanNode.java
index d77761ab79..de58ba5c8f 100644
--- a/pinot-core/src/main/java/org/apache/pinot/core/plan/StreamingInstanceResponsePlanNode.java
+++ b/pinot-core/src/main/java/org/apache/pinot/core/plan/StreamingInstanceResponsePlanNode.java
@@ -20,9 +20,11 @@ package org.apache.pinot.core.plan;
import io.grpc.stub.StreamObserver;
import java.util.List;
+import org.apache.pinot.common.metrics.ServerMetrics;
import org.apache.pinot.common.proto.Server;
import org.apache.pinot.core.operator.InstanceResponseOperator;
import org.apache.pinot.core.operator.StreamingInstanceResponseOperator;
+import org.apache.pinot.core.query.request.context.QueryContext;
import org.apache.pinot.segment.spi.FetchContext;
import org.apache.pinot.segment.spi.IndexSegment;
@@ -31,14 +33,15 @@ public class StreamingInstanceResponsePlanNode extends InstanceResponsePlanNode
private final StreamObserver<Server.ServerResponse> _streamObserver;
public StreamingInstanceResponsePlanNode(CombinePlanNode combinePlanNode, List<IndexSegment> indexSegments,
- List<FetchContext> fetchContexts, StreamObserver<Server.ServerResponse> streamObserver) {
- super(combinePlanNode, indexSegments, fetchContexts);
+ List<FetchContext> fetchContexts, StreamObserver<Server.ServerResponse> streamObserver,
+ QueryContext queryContext, ServerMetrics serverMetrics) {
+ super(combinePlanNode, indexSegments, fetchContexts, queryContext, serverMetrics);
_streamObserver = streamObserver;
}
@Override
public InstanceResponseOperator run() {
return new StreamingInstanceResponseOperator(_combinePlanNode.run(), _indexSegments, _fetchContexts,
- _streamObserver);
+ _streamObserver, _queryContext, _serverMetrics);
}
}
diff --git a/pinot-core/src/main/java/org/apache/pinot/core/plan/maker/InstancePlanMakerImplV2.java b/pinot-core/src/main/java/org/apache/pinot/core/plan/maker/InstancePlanMakerImplV2.java
index 25ddb1795c..05db768ad0 100644
--- a/pinot-core/src/main/java/org/apache/pinot/core/plan/maker/InstancePlanMakerImplV2.java
+++ b/pinot-core/src/main/java/org/apache/pinot/core/plan/maker/InstancePlanMakerImplV2.java
@@ -30,6 +30,7 @@ import java.util.UUID;
import java.util.concurrent.ExecutorService;
import org.apache.commons.collections.CollectionUtils;
import org.apache.commons.collections.MapUtils;
+import org.apache.pinot.common.metrics.ServerMetrics;
import org.apache.pinot.common.proto.Server;
import org.apache.pinot.common.request.context.ExpressionContext;
import org.apache.pinot.common.request.context.FilterContext;
@@ -150,7 +151,7 @@ public class InstancePlanMakerImplV2 implements PlanMaker {
@Override
public Plan makeInstancePlan(List<IndexSegment> indexSegments, QueryContext queryContext,
- ExecutorService executorService) {
+ ExecutorService executorService, ServerMetrics serverMetrics) {
applyQueryOptions(queryContext);
int numSegments = indexSegments.size();
@@ -181,7 +182,8 @@ public class InstancePlanMakerImplV2 implements PlanMaker {
}
CombinePlanNode combinePlanNode = new CombinePlanNode(planNodes, queryContext, executorService, null);
- return new GlobalPlanImplV0(new InstanceResponsePlanNode(combinePlanNode, indexSegments, fetchContexts));
+ return new GlobalPlanImplV0(new InstanceResponsePlanNode(combinePlanNode, indexSegments, fetchContexts,
+ queryContext, serverMetrics));
}
private void applyQueryOptions(QueryContext queryContext) {
@@ -259,7 +261,8 @@ public class InstancePlanMakerImplV2 implements PlanMaker {
@Override
public Plan makeStreamingInstancePlan(List<IndexSegment> indexSegments, QueryContext queryContext,
- ExecutorService executorService, StreamObserver<Server.ServerResponse> streamObserver) {
+ ExecutorService executorService, StreamObserver<Server.ServerResponse> streamObserver,
+ ServerMetrics serverMetrics) {
applyQueryOptions(queryContext);
List<PlanNode> planNodes = new ArrayList<>(indexSegments.size());
@@ -270,13 +273,14 @@ public class InstancePlanMakerImplV2 implements PlanMaker {
if (QueryContextUtils.isSelectionOnlyQuery(queryContext)) {
// selection-only is streamed in StreamingSelectionPlanNode --> here only metadata block is returned.
return new GlobalPlanImplV0(
- new InstanceResponsePlanNode(combinePlanNode, indexSegments, Collections.emptyList()));
+ new InstanceResponsePlanNode(combinePlanNode, indexSegments, Collections.emptyList(), queryContext,
+ serverMetrics));
} else {
// non-selection-only requires a StreamingInstanceResponsePlanNode to stream data block back and metadata block
// as final return.
return new GlobalPlanImplV0(
new StreamingInstanceResponsePlanNode(combinePlanNode, indexSegments, Collections.emptyList(),
- streamObserver));
+ streamObserver, queryContext, serverMetrics));
}
}
diff --git a/pinot-core/src/main/java/org/apache/pinot/core/plan/maker/PlanMaker.java b/pinot-core/src/main/java/org/apache/pinot/core/plan/maker/PlanMaker.java
index f654d9bf35..70b6b14069 100644
--- a/pinot-core/src/main/java/org/apache/pinot/core/plan/maker/PlanMaker.java
+++ b/pinot-core/src/main/java/org/apache/pinot/core/plan/maker/PlanMaker.java
@@ -21,6 +21,7 @@ package org.apache.pinot.core.plan.maker;
import io.grpc.stub.StreamObserver;
import java.util.List;
import java.util.concurrent.ExecutorService;
+import org.apache.pinot.common.metrics.ServerMetrics;
import org.apache.pinot.common.proto.Server;
import org.apache.pinot.core.plan.Plan;
import org.apache.pinot.core.plan.PlanNode;
@@ -38,7 +39,8 @@ public interface PlanMaker {
/**
* Returns an instance level {@link Plan} which contains the logical execution plan for multiple segments.
*/
- Plan makeInstancePlan(List<IndexSegment> indexSegments, QueryContext queryContext, ExecutorService executorService);
+ Plan makeInstancePlan(List<IndexSegment> indexSegments, QueryContext queryContext, ExecutorService executorService,
+ ServerMetrics serverMetrics);
/**
* Returns a segment level {@link PlanNode} which contains the logical execution plan for one segment.
@@ -50,7 +52,8 @@ public interface PlanMaker {
* segments.
*/
Plan makeStreamingInstancePlan(List<IndexSegment> indexSegments, QueryContext queryContext,
- ExecutorService executorService, StreamObserver<Server.ServerResponse> streamObserver);
+ ExecutorService executorService, StreamObserver<Server.ServerResponse> streamObserver,
+ ServerMetrics serverMetrics);
/**
* Returns a segment level {@link PlanNode} for a streaming query which contains the logical execution plan for one
diff --git a/pinot-core/src/main/java/org/apache/pinot/core/query/executor/ServerQueryExecutorV1Impl.java b/pinot-core/src/main/java/org/apache/pinot/core/query/executor/ServerQueryExecutorV1Impl.java
index 5c5166298d..1944997f7a 100644
--- a/pinot-core/src/main/java/org/apache/pinot/core/query/executor/ServerQueryExecutorV1Impl.java
+++ b/pinot-core/src/main/java/org/apache/pinot/core/query/executor/ServerQueryExecutorV1Impl.java
@@ -319,7 +319,8 @@ public class ServerQueryExecutorV1Impl implements QueryExecutor {
TimerContext.Timer planBuildTimer = timerContext.startNewPhaseTimer(ServerQueryPhase.BUILD_QUERY_PLAN);
Plan queryPlan =
enableStreaming ? _planMaker.makeStreamingInstancePlan(selectedSegments, queryContext, executorService,
- responseObserver) : _planMaker.makeInstancePlan(selectedSegments, queryContext, executorService);
+ responseObserver, _serverMetrics) : _planMaker.makeInstancePlan(selectedSegments, queryContext,
+ executorService, _serverMetrics);
planBuildTimer.stopAndRecord();
TimerContext.Timer planExecTimer = timerContext.startNewPhaseTimer(ServerQueryPhase.QUERY_PLAN_EXECUTION);
diff --git a/pinot-core/src/test/java/org/apache/pinot/queries/BaseQueriesTest.java b/pinot-core/src/test/java/org/apache/pinot/queries/BaseQueriesTest.java
index 95461ae7e6..aa325a3ece 100644
--- a/pinot-core/src/test/java/org/apache/pinot/queries/BaseQueriesTest.java
+++ b/pinot-core/src/test/java/org/apache/pinot/queries/BaseQueriesTest.java
@@ -156,7 +156,7 @@ public abstract class BaseQueriesTest {
// Server side
serverQueryContext.setEndTimeMs(System.currentTimeMillis() + Server.DEFAULT_QUERY_EXECUTOR_TIMEOUT_MS);
- Plan plan = planMaker.makeInstancePlan(getIndexSegments(), serverQueryContext, EXECUTOR_SERVICE);
+ Plan plan = planMaker.makeInstancePlan(getIndexSegments(), serverQueryContext, EXECUTOR_SERVICE, null);
DataTable instanceResponse =
queryContext.isExplain() ? ServerQueryExecutorV1Impl.processExplainPlanQueries(plan) : plan.execute();
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@pinot.apache.org
For additional commands, e-mail: commits-help@pinot.apache.org