This is an automated email from the ASF dual-hosted git repository.
morrysnow pushed a commit to branch vector-index-dev
in repository https://gitbox.apache.org/repos/asf/doris.git
The following commit(s) were added to refs/heads/vector-index-dev by this push:
new 033bfb63a7f [fix](vector) plan conflict with topn lazy materialization
033bfb63a7f is described below
commit 033bfb63a7fa8022f21313c99b1468ccf09babd3
Author: morrySnow <[email protected]>
AuthorDate: Mon Jun 16 23:04:10 2025 +0800
[fix](vector) plan conflict with topn lazy materialization
---
.../doris/analysis/AnnIndexPropertiesChecker.java | 3 +-
.../java/org/apache/doris/analysis/IndexDef.java | 7 ++--
.../doris/catalog/BuiltinScalarFunctions.java | 2 +-
.../glue/translator/PhysicalPlanTranslator.java | 47 ++++++++++------------
.../glue/translator/PlanTranslatorContext.java | 2 -
.../LogicalOlapScanToPhysicalOlapScan.java | 3 +-
.../rules/rewrite/OperativeColumnDerive.java | 8 ++++
.../expressions/visitor/ScalarFunctionVisitor.java | 4 +-
.../trees/plans/commands/info/IndexDefinition.java | 2 +-
.../trees/plans/logical/LogicalFileScan.java | 14 +++----
.../trees/plans/logical/LogicalHudiScan.java | 6 +--
.../physical/PhysicalLazyMaterializeOlapScan.java | 19 ++++-----
.../org/apache/doris/planner/OlapScanNode.java | 1 -
.../java/org/apache/doris/qe/SessionVariable.java | 6 +--
14 files changed, 62 insertions(+), 62 deletions(-)
diff --git
a/fe/fe-core/src/main/java/org/apache/doris/analysis/AnnIndexPropertiesChecker.java
b/fe/fe-core/src/main/java/org/apache/doris/analysis/AnnIndexPropertiesChecker.java
index d0d5648a0a9..44218f6941c 100644
---
a/fe/fe-core/src/main/java/org/apache/doris/analysis/AnnIndexPropertiesChecker.java
+++
b/fe/fe-core/src/main/java/org/apache/doris/analysis/AnnIndexPropertiesChecker.java
@@ -38,7 +38,8 @@ public class AnnIndexPropertiesChecker {
case "metric_type":
metric = properties.get(key);
if (!metric.equals("l2_distance") &&
!metric.equals("inner_product")) {
- throw new AnalysisException("only support ann index
with metric l2_distance or inner_product, got: " + metric);
+ throw new AnalysisException(
+ "only support ann index with metric
l2_distance or inner_product, got: " + metric);
}
break;
case "dim":
diff --git a/fe/fe-core/src/main/java/org/apache/doris/analysis/IndexDef.java
b/fe/fe-core/src/main/java/org/apache/doris/analysis/IndexDef.java
index ecc385d0266..e0c63aecab7 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/analysis/IndexDef.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/analysis/IndexDef.java
@@ -24,7 +24,6 @@ import org.apache.doris.catalog.PrimitiveType;
import org.apache.doris.catalog.Type;
import org.apache.doris.common.AnalysisException;
import org.apache.doris.common.Config;
-import org.apache.doris.nereids.types.DataType;
import org.apache.doris.thrift.TInvertedIndexFileStorageFormat;
import com.google.common.base.Strings;
@@ -242,7 +241,8 @@ public class IndexDef {
TInvertedIndexFileStorageFormat invertedIndexFileStorageFormat)
throws AnalysisException {
if (indexType == IndexType.ANN) {
if (column.isAllowNull()) {
- throw new
org.apache.doris.nereids.exceptions.AnalysisException("ANN index must be built
on a column that is not nullable");
+ throw new
org.apache.doris.nereids.exceptions.AnalysisException(
+ "ANN index must be built on a column that is not
nullable");
}
String indexColName = column.getName();
@@ -254,7 +254,8 @@ public class IndexDef {
Type columnType = column.getType();
Type itemType = ((ArrayType) columnType).getItemType();
if (!itemType.isFloatingPointType()) {
- throw new
org.apache.doris.nereids.exceptions.AnalysisException("ANN index column item
type must be float type");
+ throw new
org.apache.doris.nereids.exceptions.AnalysisException(
+ "ANN index column item type must be float type");
}
return;
}
diff --git
a/fe/fe-core/src/main/java/org/apache/doris/catalog/BuiltinScalarFunctions.java
b/fe/fe-core/src/main/java/org/apache/doris/catalog/BuiltinScalarFunctions.java
index 24bf05c2ec5..5b62fd2db33 100644
---
a/fe/fe-core/src/main/java/org/apache/doris/catalog/BuiltinScalarFunctions.java
+++
b/fe/fe-core/src/main/java/org/apache/doris/catalog/BuiltinScalarFunctions.java
@@ -278,8 +278,8 @@ import
org.apache.doris.nereids.trees.expressions.functions.scalar.JsonbParseNul
import org.apache.doris.nereids.trees.expressions.functions.scalar.JsonbType;
import org.apache.doris.nereids.trees.expressions.functions.scalar.JsonbValid;
import org.apache.doris.nereids.trees.expressions.functions.scalar.L1Distance;
-import
org.apache.doris.nereids.trees.expressions.functions.scalar.L2DistanceApproximate;
import org.apache.doris.nereids.trees.expressions.functions.scalar.L2Distance;
+import
org.apache.doris.nereids.trees.expressions.functions.scalar.L2DistanceApproximate;
import org.apache.doris.nereids.trees.expressions.functions.scalar.LastDay;
import org.apache.doris.nereids.trees.expressions.functions.scalar.LastQueryId;
import org.apache.doris.nereids.trees.expressions.functions.scalar.Least;
diff --git
a/fe/fe-core/src/main/java/org/apache/doris/nereids/glue/translator/PhysicalPlanTranslator.java
b/fe/fe-core/src/main/java/org/apache/doris/nereids/glue/translator/PhysicalPlanTranslator.java
index 8370d5ca7dc..0d3d64938a9 100644
---
a/fe/fe-core/src/main/java/org/apache/doris/nereids/glue/translator/PhysicalPlanTranslator.java
+++
b/fe/fe-core/src/main/java/org/apache/doris/nereids/glue/translator/PhysicalPlanTranslator.java
@@ -809,11 +809,10 @@ public class PhysicalPlanTranslator extends
DefaultPlanVisitor<PlanFragment, Pla
@Override
public PlanFragment visitPhysicalOlapScan(PhysicalOlapScan olapScan,
PlanTranslatorContext context) {
- return computePhysicalOlapScan(olapScan, false, context);
+ return computePhysicalOlapScan(olapScan, context);
}
- private PlanFragment computePhysicalOlapScan(PhysicalOlapScan olapScan,
- boolean lazyMaterialize, PlanTranslatorContext context) {
+ private PlanFragment computePhysicalOlapScan(PhysicalOlapScan olapScan,
PlanTranslatorContext context) {
List<Slot> slots = olapScan.getOutput();
OlapTable olapTable = olapScan.getTable();
// generate real output tuple
@@ -905,17 +904,15 @@ public class PhysicalPlanTranslator extends
DefaultPlanVisitor<PlanFragment, Pla
Utils.execWithUncheckedException(olapScanNode::init);
// TODO: process collect scan node in one place
context.addScanNode(olapScanNode, olapScan);
- if (!lazyMaterialize) {
- // TODO: process translate runtime filter in one place
- // use real plan node to present rf apply and rf generator
- context.getRuntimeTranslator().ifPresent(
- runtimeFilterTranslator ->
runtimeFilterTranslator.getContext().getTargetListByScan(olapScan)
- .forEach(expr ->
runtimeFilterTranslator.translateRuntimeFilterTarget(
- expr, olapScanNode, context)
- )
- );
- context.getTopnFilterContext().translateTarget(olapScan,
olapScanNode, context);
- }
+ // TODO: process translate runtime filter in one place
+ // use real plan node to present rf apply and rf generator
+ context.getRuntimeTranslator().ifPresent(
+ runtimeFilterTranslator ->
runtimeFilterTranslator.getContext().getTargetListByScan(olapScan)
+ .forEach(expr ->
runtimeFilterTranslator.translateRuntimeFilterTarget(
+ expr, olapScanNode, context)
+ )
+ );
+ context.getTopnFilterContext().translateTarget(olapScan, olapScanNode,
context);
olapScanNode.setPushDownAggNoGrouping(context.getRelationPushAggOp(olapScan.getRelationId()));
// Create PlanFragment
// TODO: use a util function to convert distribution to DataPartition
@@ -2628,25 +2625,25 @@ public class PhysicalPlanTranslator extends
DefaultPlanVisitor<PlanFragment, Pla
@Override
public PlanFragment
visitPhysicalLazyMaterializeOlapScan(PhysicalLazyMaterializeOlapScan lazyScan,
PlanTranslatorContext context) {
- PlanFragment planFragment =
computePhysicalOlapScan(lazyScan.getScan(), true, context);
- TupleDescriptor outputTuple = generateTupleDesc(lazyScan.getOutput(),
lazyScan.getScan().getTable(), context);
+ PlanFragment planFragment =
computePhysicalOlapScan(lazyScan.getScan(), context);
OlapScanNode olapScanNode = (OlapScanNode) planFragment.getPlanRoot();
- olapScanNode.setDesc(outputTuple);
+ // set lazy materialized context
olapScanNode.setIsTopnLazyMaterialize(true);
olapScanNode.setGlobalRowIdColumn(lazyScan.getRowId().getOriginalColumn().get());
+ Set<SlotId> scanIds =
lazyScan.getOutput().stream().map(NamedExpression::getExprId)
+
.map(context::findSlotRef).filter(Objects::nonNull).map(SlotRef::getSlotId)
+ .collect(Collectors.toSet());
+ context.createSlotDesc(olapScanNode.getTupleDesc(),
lazyScan.getRowId(), lazyScan.getTable());
+ for (SlotDescriptor slot : olapScanNode.getTupleDesc().getSlots()) {
+ if (!scanIds.contains(slot.getId())) {
+ slot.setIsMaterialized(false);
+ }
+ }
for (Slot slot : lazyScan.getOutput()) {
if (((SlotReference) slot).getOriginalColumn().isPresent()) {
olapScanNode.addTopnLazyMaterializeOutputColumns(((SlotReference)
slot).getOriginalColumn().get());
}
}
-
planFragment.getPlanRoot().resetTupleIds(Lists.newArrayList(outputTuple.getId()));
- // translate rf on outputTuple
- context.getRuntimeTranslator().ifPresent(
- runtimeFilterTranslator ->
runtimeFilterTranslator.getContext().getTargetListByScan(lazyScan)
- .forEach(expr ->
runtimeFilterTranslator.translateRuntimeFilterTarget(
- expr, olapScanNode, context)
- )
- );
context.getTopnFilterContext().translateTarget(lazyScan, olapScanNode,
context);
return planFragment;
diff --git
a/fe/fe-core/src/main/java/org/apache/doris/nereids/glue/translator/PlanTranslatorContext.java
b/fe/fe-core/src/main/java/org/apache/doris/nereids/glue/translator/PlanTranslatorContext.java
index 5fc0bdb9210..07566c5c48c 100644
---
a/fe/fe-core/src/main/java/org/apache/doris/nereids/glue/translator/PlanTranslatorContext.java
+++
b/fe/fe-core/src/main/java/org/apache/doris/nereids/glue/translator/PlanTranslatorContext.java
@@ -120,7 +120,6 @@ public class PlanTranslatorContext {
private final Set<SlotId> virtualColumnIds = Sets.newHashSet();
-
public PlanTranslatorContext(CascadesContext ctx) {
this.connectContext = ctx.getConnectContext();
this.translator = new
RuntimeFilterTranslator(ctx.getRuntimeFilterContext());
@@ -349,7 +348,6 @@ public class PlanTranslatorContext {
return tablePushAggOp.getOrDefault(relationId, TPushAggOp.NONE);
}
-
public boolean isTopMaterializeNode() {
return isTopMaterializeNode;
}
diff --git
a/fe/fe-core/src/main/java/org/apache/doris/nereids/rules/implementation/LogicalOlapScanToPhysicalOlapScan.java
b/fe/fe-core/src/main/java/org/apache/doris/nereids/rules/implementation/LogicalOlapScanToPhysicalOlapScan.java
index dd59136b1ae..c0474d36cce 100644
---
a/fe/fe-core/src/main/java/org/apache/doris/nereids/rules/implementation/LogicalOlapScanToPhysicalOlapScan.java
+++
b/fe/fe-core/src/main/java/org/apache/doris/nereids/rules/implementation/LogicalOlapScanToPhysicalOlapScan.java
@@ -120,7 +120,8 @@ public class LogicalOlapScanToPhysicalOlapScan extends
OneImplementationRuleFact
// determined. As a result, some bucket fields are
lost in the query execution plan.
// So here we use the column name to avoid this problem
if (((SlotReference)
slot).getOriginalColumn().isPresent()
- && ((SlotReference)
slot).getOriginalColumn().get().getName().equalsIgnoreCase(column.getName())) {
+ && ((SlotReference)
slot).getOriginalColumn().get().getName()
+ .equalsIgnoreCase(column.getName())) {
hashColumns.add(slot.getExprId());
}
}
diff --git
a/fe/fe-core/src/main/java/org/apache/doris/nereids/rules/rewrite/OperativeColumnDerive.java
b/fe/fe-core/src/main/java/org/apache/doris/nereids/rules/rewrite/OperativeColumnDerive.java
index 7af4c2428c1..6e55411e42b 100644
---
a/fe/fe-core/src/main/java/org/apache/doris/nereids/rules/rewrite/OperativeColumnDerive.java
+++
b/fe/fe-core/src/main/java/org/apache/doris/nereids/rules/rewrite/OperativeColumnDerive.java
@@ -137,6 +137,10 @@ public class OperativeColumnDerive extends
DefaultPlanRewriter<DeriveContext> im
}
}
}
+ for (NamedExpression virtualColumn : olapScan.getVirtualColumns()) {
+ intersectSlots.add(virtualColumn.toSlot());
+ intersectSlots.addAll(virtualColumn.getInputSlots());
+ }
return (Plan) olapScan.withOperativeSlots(intersectSlots);
}
@@ -144,6 +148,10 @@ public class OperativeColumnDerive extends
DefaultPlanRewriter<DeriveContext> im
public Plan visitLogicalCatalogRelation(LogicalCatalogRelation relation,
DeriveContext context) {
Set<Slot> intersectSlots = new HashSet<>(relation.getOutput());
intersectSlots.retainAll(context.operativeSlots);
+ for (NamedExpression virtualColumn : relation.getVirtualColumns()) {
+ intersectSlots.add(virtualColumn.toSlot());
+ intersectSlots.addAll(virtualColumn.getInputSlots());
+ }
return (Plan) relation.withOperativeSlots(intersectSlots);
}
diff --git
a/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/visitor/ScalarFunctionVisitor.java
b/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/visitor/ScalarFunctionVisitor.java
index b0d3694f5ea..65c78b73b2e 100644
---
a/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/visitor/ScalarFunctionVisitor.java
+++
b/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/visitor/ScalarFunctionVisitor.java
@@ -225,8 +225,8 @@ import
org.apache.doris.nereids.trees.expressions.functions.scalar.HoursSub;
import org.apache.doris.nereids.trees.expressions.functions.scalar.If;
import org.apache.doris.nereids.trees.expressions.functions.scalar.Ignore;
import org.apache.doris.nereids.trees.expressions.functions.scalar.Initcap;
-import
org.apache.doris.nereids.trees.expressions.functions.scalar.InnerProductApproximate;
import
org.apache.doris.nereids.trees.expressions.functions.scalar.InnerProduct;
+import
org.apache.doris.nereids.trees.expressions.functions.scalar.InnerProductApproximate;
import org.apache.doris.nereids.trees.expressions.functions.scalar.Instr;
import org.apache.doris.nereids.trees.expressions.functions.scalar.InttoUuid;
import
org.apache.doris.nereids.trees.expressions.functions.scalar.Ipv4CIDRToRange;
@@ -282,8 +282,8 @@ import
org.apache.doris.nereids.trees.expressions.functions.scalar.JsonbParseNul
import org.apache.doris.nereids.trees.expressions.functions.scalar.JsonbType;
import org.apache.doris.nereids.trees.expressions.functions.scalar.JsonbValid;
import org.apache.doris.nereids.trees.expressions.functions.scalar.L1Distance;
-import
org.apache.doris.nereids.trees.expressions.functions.scalar.L2DistanceApproximate;
import org.apache.doris.nereids.trees.expressions.functions.scalar.L2Distance;
+import
org.apache.doris.nereids.trees.expressions.functions.scalar.L2DistanceApproximate;
import org.apache.doris.nereids.trees.expressions.functions.scalar.LastDay;
import org.apache.doris.nereids.trees.expressions.functions.scalar.LastQueryId;
import org.apache.doris.nereids.trees.expressions.functions.scalar.Least;
diff --git
a/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/plans/commands/info/IndexDefinition.java
b/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/plans/commands/info/IndexDefinition.java
index c7b0ad0aecb..4970034ee9d 100644
---
a/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/plans/commands/info/IndexDefinition.java
+++
b/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/plans/commands/info/IndexDefinition.java
@@ -153,7 +153,7 @@ public class IndexDefinition {
}
return;
}
-
+
if (indexType == IndexType.BITMAP || indexType == IndexType.INVERTED
|| indexType == IndexType.BLOOMFILTER || indexType ==
IndexType.NGRAM_BF) {
String indexColName = column.getName();
diff --git
a/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/plans/logical/LogicalFileScan.java
b/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/plans/logical/LogicalFileScan.java
index 74566551223..80aa180015e 100644
---
a/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/plans/logical/LogicalFileScan.java
+++
b/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/plans/logical/LogicalFileScan.java
@@ -25,8 +25,8 @@ import org.apache.doris.datasource.mvcc.MvccUtil;
import org.apache.doris.nereids.memo.GroupExpression;
import org.apache.doris.nereids.properties.LogicalProperties;
import org.apache.doris.nereids.trees.TableSample;
-import org.apache.doris.nereids.trees.expressions.Slot;
import org.apache.doris.nereids.trees.expressions.NamedExpression;
+import org.apache.doris.nereids.trees.expressions.Slot;
import org.apache.doris.nereids.trees.plans.Plan;
import org.apache.doris.nereids.trees.plans.PlanType;
import org.apache.doris.nereids.trees.plans.RelationId;
@@ -57,10 +57,10 @@ public class LogicalFileScan extends LogicalCatalogRelation
{
Optional<TableSample> tableSample,
Optional<TableSnapshot> tableSnapshot,
Optional<TableScanParams> scanParams) {
this(id, table, qualifier,
-
table.initSelectedPartitions(MvccUtil.getSnapshotFromContext(table)),
- operativeSlots, ImmutableList.of(),
- tableSample, tableSnapshot,
- scanParams, Optional.empty(), Optional.empty());
+
table.initSelectedPartitions(MvccUtil.getSnapshotFromContext(table)),
+ operativeSlots, ImmutableList.of(),
+ tableSample, tableSnapshot,
+ scanParams, Optional.empty(), Optional.empty());
}
/**
@@ -205,8 +205,8 @@ public class LogicalFileScan extends LogicalCatalogRelation
{
@Override
public LogicalFileScan withOperativeSlots(Collection<Slot> operativeSlots)
{
return new LogicalFileScan(relationId, (ExternalTable) table,
qualifier,
- selectedPartitions, operativeSlots,
virtualColumns,tableSample, tableSnapshot,
- scanParams, groupExpression, Optional.of(getLogicalProperties()));
+ selectedPartitions, operativeSlots, virtualColumns,
tableSample, tableSnapshot,
+ scanParams, groupExpression,
Optional.of(getLogicalProperties()));
}
@Override
diff --git
a/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/plans/logical/LogicalHudiScan.java
b/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/plans/logical/LogicalHudiScan.java
index 7f72a897585..4de01efb91f 100644
---
a/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/plans/logical/LogicalHudiScan.java
+++
b/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/plans/logical/LogicalHudiScan.java
@@ -79,7 +79,7 @@ public class LogicalHudiScan extends LogicalFileScan {
Optional<GroupExpression> groupExpression,
Optional<LogicalProperties> logicalProperties) {
super(id, table, qualifier, selectedPartitions, operativeSlots,
virtualColumns,
- tableSample, tableSnapshot, scanParams, groupExpression,
logicalProperties);
+ tableSample, tableSnapshot, scanParams, groupExpression,
logicalProperties);
Objects.requireNonNull(scanParams, "scanParams should not null");
Objects.requireNonNull(incrementalRelation, "incrementalRelation
should not null");
this.incrementalRelation = incrementalRelation;
@@ -89,8 +89,8 @@ public class LogicalHudiScan extends LogicalFileScan {
Collection<Slot> operativeSlots, Optional<TableScanParams>
scanParams,
Optional<TableSample> tableSample, Optional<TableSnapshot>
tableSnapshot) {
this(id, table, qualifier, ((HMSExternalTable)
table).initHudiSelectedPartitions(tableSnapshot),
- tableSample, tableSnapshot, scanParams, Optional.empty(),
operativeSlots, ImmutableList.of(),
- Optional.empty(), Optional.empty());
+ tableSample, tableSnapshot, scanParams, Optional.empty(),
operativeSlots, ImmutableList.of(),
+ Optional.empty(), Optional.empty());
}
public Optional<TableScanParams> getScanParams() {
diff --git
a/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/plans/physical/PhysicalLazyMaterializeOlapScan.java
b/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/plans/physical/PhysicalLazyMaterializeOlapScan.java
index f7857069dc9..6dbe79da96c 100644
---
a/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/plans/physical/PhysicalLazyMaterializeOlapScan.java
+++
b/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/plans/physical/PhysicalLazyMaterializeOlapScan.java
@@ -33,10 +33,9 @@ import java.util.List;
*/
public class PhysicalLazyMaterializeOlapScan extends PhysicalOlapScan {
- private PhysicalOlapScan scan;
- private SlotReference rowId;
+ private final PhysicalOlapScan scan;
+ private final SlotReference rowId;
private final List<Slot> lazySlots;
- private List<Slot> output;
/**
* constr
@@ -60,7 +59,7 @@ public class PhysicalLazyMaterializeOlapScan extends
PhysicalOlapScan {
physicalOlapScan.getVirtualColumns(),
physicalOlapScan.getAnnOrderKeys(),
physicalOlapScan.getAnnLimit()
- );
+ );
this.scan = physicalOlapScan;
this.rowId = rowId;
this.lazySlots = ImmutableList.copyOf(lazySlots);
@@ -73,12 +72,9 @@ public class PhysicalLazyMaterializeOlapScan extends
PhysicalOlapScan {
@Override
public List<Slot> computeOutput() {
- if (output == null) {
- output = ImmutableList.<Slot>builder()
- .addAll(scan.getOperativeSlots())
- .add(rowId).build();
- }
- return output;
+ return ImmutableList.<Slot>builder()
+ .addAll(scan.getOperativeSlots())
+ .add(rowId).build();
}
public PhysicalOlapScan getScan() {
@@ -107,8 +103,7 @@ public class PhysicalLazyMaterializeOlapScan extends
PhysicalOlapScan {
.append("]");
if (!getAppliedRuntimeFilters().isEmpty()) {
shapeBuilder.append(" apply RFs:");
- getAppliedRuntimeFilters()
- .stream().forEach(rf -> shapeBuilder.append("
RF").append(rf.getId().asInt()));
+ getAppliedRuntimeFilters().forEach(rf -> shapeBuilder.append("
RF").append(rf.getId().asInt()));
}
return shapeBuilder.toString();
}
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 a897631964f..628b9e83a00 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
@@ -1444,7 +1444,6 @@ public class OlapScanNode extends ScanNode {
output.append(prefix).append("rewrittenProjectList: ").append(
getExplainString(rewrittenProjectList)).append("\n");
}
- output.append(prefix).append("desc:
").append(desc.getId().asInt()).append("\n");
return output.toString();
}
diff --git a/fe/fe-core/src/main/java/org/apache/doris/qe/SessionVariable.java
b/fe/fe-core/src/main/java/org/apache/doris/qe/SessionVariable.java
index e19bcded587..6b96defdc41 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/qe/SessionVariable.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/qe/SessionVariable.java
@@ -2656,17 +2656,17 @@ public class SessionVariable implements Serializable,
Writable {
@VariableMgr.VarAttr(name = HNSW_EF_SEARCH, needForward = true,
description = {"HNSW索引的EF搜索参数,控制搜索的精度和速度",
- "HNSW index EF search parameter, controls the precision
and speed of the search"})
+ "HNSW index EF search parameter, controls the precision
and speed of the search"})
public int hnswEFSearch = 16;
@VariableMgr.VarAttr(name = HNSW_CHECK_RELATIVE_DISTANCE, needForward =
true,
description = {"是否启用相对距离检查机制,以提升HNSW搜索的准确性",
- "Enable relative distance checking to improve HNSW
search accuracy"})
+ "Enable relative distance checking to improve HNSW search
accuracy"})
public boolean hnswCheckRelativeDistance = true;
@VariableMgr.VarAttr(name = HNSW_BOUNDED_QUEUE, needForward = true,
description = {"是否使用有界优先队列来优化HNSW的搜索性能",
- "Whether to use a bounded priority queue to optimize
HNSW search performance"})
+ "Whether to use a bounded priority queue to optimize HNSW
search performance"})
public boolean hnswBoundedQueue = true;
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]