From e8c76ef550aec8f1a7a832635cdaa9af3022e589 Mon Sep 17 00:00:00 2001 From: Feilong Liu Date: Wed, 3 Dec 2025 17:50:00 -0800 Subject: [PATCH] Run join prefilter after connector optimization --- .../java/com/facebook/presto/sql/planner/PlanOptimizers.java | 4 ++-- .../java/com/facebook/presto/sql/planner/PlannerUtils.java | 4 +++- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/presto-main-base/src/main/java/com/facebook/presto/sql/planner/PlanOptimizers.java b/presto-main-base/src/main/java/com/facebook/presto/sql/planner/PlanOptimizers.java index a12b350dcdd1e..dd978457dac28 100644 --- a/presto-main-base/src/main/java/com/facebook/presto/sql/planner/PlanOptimizers.java +++ b/presto-main-base/src/main/java/com/facebook/presto/sql/planner/PlanOptimizers.java @@ -723,8 +723,6 @@ public PlanOptimizers( .addAll(new InlineSqlFunctions(metadata).rules()) .build())); - builder.add(new JoinPrefilter(metadata)); - builder.add( new IterativeOptimizer( metadata, @@ -781,6 +779,8 @@ public PlanOptimizers( builder.add(new SimplifyPlanWithEmptyInput(), new PruneUnreferencedOutputs()); + builder.add(new JoinPrefilter(metadata)); + builder.add(new IterativeOptimizer( metadata, ruleStats, diff --git a/presto-main-base/src/main/java/com/facebook/presto/sql/planner/PlannerUtils.java b/presto-main-base/src/main/java/com/facebook/presto/sql/planner/PlannerUtils.java index 826eaea10044b..47979633e4677 100644 --- a/presto-main-base/src/main/java/com/facebook/presto/sql/planner/PlannerUtils.java +++ b/presto-main-base/src/main/java/com/facebook/presto/sql/planner/PlannerUtils.java @@ -322,9 +322,11 @@ private static PlanNode cloneProjectNode(ProjectNode projectNode, Session sessio } return new ProjectNode( + projectNode.getSourceLocation(), idAllocator.getNextId(), newSource, - newAssignments.build()); + newAssignments.build(), + projectNode.getLocality()); } private static TableScanNode cloneTableScan(TableScanNode scanNode, Session session, Metadata metadata, PlanNodeIdAllocator planNodeIdAllocator, List fieldsToKeep, Map varMap)