diff --git a/fe/fe-core/src/main/java/org/apache/doris/planner/OlapScanNode.java b/fe/fe-core/src/main/java/org/apache/doris/planner/OlapScanNode.java index d4d7ff4de0..d194e0dc4c 100644 --- a/fe/fe-core/src/main/java/org/apache/doris/planner/OlapScanNode.java +++ b/fe/fe-core/src/main/java/org/apache/doris/planner/OlapScanNode.java @@ -1027,12 +1027,12 @@ public class OlapScanNode extends ScanNode { return result; } - // Only called when Coordinator exec in point query + // Only called when Coordinator exec in high performance point query public List lazyEvaluateRangeLocations() throws UserException { // Lazy evaluation selectedIndexId = olapTable.getBaseIndexId(); - // TODO(lhy) this function is a heavy operation for point query - computeColumnFilter(); + // Only key columns + computeColumnFilter(olapTable.getBaseSchemaKeyColumns()); computePartitionInfo(); scanBackendIds.clear(); scanTabletIds.clear(); diff --git a/fe/fe-core/src/main/java/org/apache/doris/planner/ScanNode.java b/fe/fe-core/src/main/java/org/apache/doris/planner/ScanNode.java index 888c8fdc3d..14cba2c3e0 100644 --- a/fe/fe-core/src/main/java/org/apache/doris/planner/ScanNode.java +++ b/fe/fe-core/src/main/java/org/apache/doris/planner/ScanNode.java @@ -140,8 +140,8 @@ public abstract class ScanNode extends PlanNode { } // TODO(ML): move it into PrunerOptimizer - public void computeColumnFilter() { - for (Column column : desc.getTable().getBaseSchema()) { + public void computeColumnFilter(List columns) { + for (Column column : columns) { SlotDescriptor slotDesc = desc.getColumnSlot(column.getName()); if (null == slotDesc) { continue; @@ -161,6 +161,10 @@ public abstract class ScanNode extends PlanNode { } } + public void computeColumnFilter() { + computeColumnFilter(desc.getTable().getBaseSchema()); + } + public static ColumnRange createColumnRange(SlotDescriptor desc, List conjuncts) { ColumnRange result = ColumnRange.create();