This is an automated email from the ASF dual-hosted git repository.
kxiao pushed a commit to branch branch-2.0
in repository https://gitbox.apache.org/repos/asf/doris.git
The following commit(s) were added to refs/heads/branch-2.0 by this push:
new d0b6a42b625 [fix](Nereids) set card to olap table break card block
rule (#28417) (#28473)
d0b6a42b625 is described below
commit d0b6a42b6253e4e89051d4f3097178af393e1121
Author: morrySnow <[email protected]>
AuthorDate: Sat Dec 16 11:58:57 2023 +0800
[fix](Nereids) set card to olap table break card block rule (#28417)
(#28473)
we have card block rule to avoid scan too many data.
so we must set olap scan card by only scanned bucket.
---
.../apache/doris/nereids/glue/translator/PhysicalPlanTranslator.java | 4 +++-
fe/fe-core/src/main/java/org/apache/doris/planner/OlapScanNode.java | 2 ++
2 files changed, 5 insertions(+), 1 deletion(-)
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 a3ac99ba359..7036652a028 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
@@ -595,7 +595,9 @@ public class PhysicalPlanTranslator extends
DefaultPlanVisitor<PlanFragment, Pla
OlapScanNode olapScanNode = new
OlapScanNode(olapScan.translatePlanNodeId(), tupleDescriptor, "OlapScanNode");
// TODO: move all node set cardinality into one place
if (olapScan.getStats() != null) {
- olapScanNode.setCardinality((long)
olapScan.getStats().getRowCount());
+ // NOTICE: we should not set stats row count
+ // because it is whole table cardinality and will break block
rules.
+ // olapScanNode.setCardinality((long)
olapScan.getStats().getRowCount());
if
(ConnectContext.get().getSessionVariable().forbidUnknownColStats) {
for (int i = 0; i < slots.size(); i++) {
Slot slot = slots.get(i);
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 d7c869943ac..13c83226235 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
@@ -1585,6 +1585,8 @@ public class OlapScanNode extends ScanNode {
public void finalizeForNereids() {
computeNumNodes();
computeStatsForNereids();
+ // NOTICE: must call here to get selected tablet row count to let
block rules work well.
+ mockRowCountInStatistic();
// distributionColumnIds is used for one backend node agg
optimization, nereids do not support it.
distributionColumnIds.clear();
}
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]