This is an automated email from the ASF dual-hosted git repository.

dataroaring pushed a commit to branch branch-3.0
in repository https://gitbox.apache.org/repos/asf/doris.git


The following commit(s) were added to refs/heads/branch-3.0 by this push:
     new 6862d2ed7d6 branch-3.0: [fix](planner) return explicit error msg when 
falling back to old planner (#50677)
6862d2ed7d6 is described below

commit 6862d2ed7d6a00190ca4b33722dbda080c5bda20
Author: Mingyu Chen (Rayner) <[email protected]>
AuthorDate: Fri May 9 10:07:01 2025 +0800

    branch-3.0: [fix](planner) return explicit error msg when falling back to 
old planner (#50677)
    
    ### What problem does this PR solve?
    
    Problem Summary:
    
    When fall back to old planner, the partition pruning of external table
    will fail,
    and NPE will be throw like:
    ```
    2025-04-14 16:22:33,427 WARN (mysql-nio-pool-19697|237161) 
[HiveScanNode.getSplits():189] get file split failed for table: 
dwd_log_fact_channel_track_result_hi
    java.lang.NullPointerException: null
            at 
org.apache.doris.datasource.hive.source.HiveScanNode.getPartitions(HiveScanNode.java:137)
 ~[doris-fe.jar:1.2-SNAPSHOT]
            at 
org.apache.doris.datasource.hive.source.HiveScanNode.getSplits(HiveScanNode.java:171)
 ~[doris-fe.jar:1.2-SNAPSHOT]
            at 
org.apache.doris.datasource.FileQueryScanNode.createScanRangeLocations(FileQueryScanNode.java:366)
 ~[doris-fe.jar:1.2-SNAPSHOT]
            at 
org.apache.doris.datasource.FileQueryScanNode.doFinalize(FileQueryScanNode.java:222)
 ~[doris-fe.jar:1.2-SNAPSHOT]
            at 
org.apache.doris.datasource.FileQueryScanNode.finalize(FileQueryScanNode.java:208)
 ~[doris-fe.jar:1.2-SNAPSHOT]
            at org.apache.doris.planner.PlanNode.finalize(PlanNode.java:722) 
~[doris-fe.jar:1.2-SNAPSHOT]
            at 
org.apache.doris.planner.JoinNodeBase.finalize(JoinNodeBase.java:456) 
~[doris-fe.jar:1.2-SNAPSHOT]
            at org.apache.doris.planner.PlanNode.finalize(PlanNode.java:722) 
~[doris-fe.jar:1.2-SNAPSHOT]
            at 
org.apache.doris.planner.JoinNodeBase.finalize(JoinNodeBase.java:456) 
~[doris-fe.jar:1.2-SNAPSHOT]
            at org.apache.doris.planner.PlanNode.finalize(PlanNode.java:722) 
~[doris-fe.jar:1.2-SNAPSHOT]
            at 
org.apache.doris.planner.AggregationNode.finalize(AggregationNode.java:402) 
~[doris-fe.jar:1.2-SNAPSHOT]
            at org.apache.doris.planner.PlanNode.finalize(PlanNode.java:722) 
~[doris-fe.jar:1.2-SNAPSHOT]
            at 
org.apache.doris.planner.SetOperationNode.finalize(SetOperationNode.java:158) 
~[doris-fe.jar:1.2-SNAPSHOT]
            at org.apache.doris.planner.PlanNode.finalize(PlanNode.java:722) 
~[doris-fe.jar:1.2-SNAPSHOT]
    ```
    
    This error msg is very confusing. So this PR return a more explicit
    error msg.
---
 .../java/org/apache/doris/datasource/hive/source/HiveScanNode.java    | 4 ++++
 1 file changed, 4 insertions(+)

diff --git 
a/fe/fe-core/src/main/java/org/apache/doris/datasource/hive/source/HiveScanNode.java
 
b/fe/fe-core/src/main/java/org/apache/doris/datasource/hive/source/HiveScanNode.java
index f9ed71a89d8..9aff964631b 100644
--- 
a/fe/fe-core/src/main/java/org/apache/doris/datasource/hive/source/HiveScanNode.java
+++ 
b/fe/fe-core/src/main/java/org/apache/doris/datasource/hive/source/HiveScanNode.java
@@ -134,6 +134,10 @@ public class HiveScanNode extends FileQueryScanNode {
             Collection<PartitionItem> partitionItems;
             // partitions has benn pruned by Nereids, in 
PruneFileScanPartition,
             // so just use the selected partitions.
+            if (selectedPartitions == null) {
+                throw new AnalysisException("Should use Nereids to prune 
partitions. "
+                        + "set enable_fallback_to_original_planner=false and 
try again");
+            }
             this.totalPartitionNum = selectedPartitions.totalPartitionNum;
             partitionItems = selectedPartitions.selectedPartitions.values();
             Preconditions.checkNotNull(partitionItems);


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to