From fd67186b43f87362df58e8ab1cbe79e7f507ffa1 Mon Sep 17 00:00:00 2001 From: Zac Date: Fri, 15 May 2026 13:59:21 -0700 Subject: [PATCH] feat: Wire up IndexSource splits to Spark task sources (#27817) Summary: `findTableScanNodes()` does not match `IndexSourceNode`, so index splits never reach Spark task assignments. `IndexLookupJoin` sees zero index splits and produces no matches -- inner joins return empty results, and left joins silently fill the right side with NULLs. Fix: extend the predicate to also match `IndexSourceNode`. ## Release Notes ``` == NO RELEASE NOTE == ``` --- .../facebook/presto/spark/planner/PrestoSparkRddFactory.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/presto-spark-base/src/main/java/com/facebook/presto/spark/planner/PrestoSparkRddFactory.java b/presto-spark-base/src/main/java/com/facebook/presto/spark/planner/PrestoSparkRddFactory.java index 3691d8503fc18..dbc48b5f376ad 100644 --- a/presto-spark-base/src/main/java/com/facebook/presto/spark/planner/PrestoSparkRddFactory.java +++ b/presto-spark-base/src/main/java/com/facebook/presto/spark/planner/PrestoSparkRddFactory.java @@ -37,6 +37,7 @@ import com.facebook.presto.spark.classloader_interface.SerializedTaskInfo; import com.facebook.presto.spi.PrestoException; import com.facebook.presto.spi.WarningCollector; +import com.facebook.presto.spi.plan.IndexSourceNode; import com.facebook.presto.spi.plan.PartitioningHandle; import com.facebook.presto.spi.plan.PlanFragmentId; import com.facebook.presto.spi.plan.PlanNode; @@ -369,7 +370,7 @@ private ListMultimap createTaskSources private static List findTableScanNodes(PlanNode node) { return searchFrom(node) - .where(TableScanNode.class::isInstance) + .where(n -> n instanceof TableScanNode || n instanceof IndexSourceNode) .findAll().stream().map(t -> new PrestoSparkSource(t.getId(), t)).collect(Collectors.toList()); }