Skip to content

Commit cef5390

Browse files
committed
Fix match arms for old Iceberg integration.
1 parent 773eded commit cef5390

File tree

2 files changed

+6
-9
lines changed

2 files changed

+6
-9
lines changed

spark/src/main/scala/org/apache/comet/rules/CometExecRule.scala

Lines changed: 5 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -196,11 +196,10 @@ case class CometExecRule(session: SparkSession) extends Rule[SparkPlan] {
196196
val nativeOp = operator2Proto(scan).get
197197
CometNativeScan.createExec(nativeOp, scan)
198198

199-
// Fully native Iceberg scan for V2
199+
// Fully native Iceberg scan for V2 (iceberg-rust path)
200+
// Only handle scans with native metadata; SupportsComet scans fall through to isCometScan
200201
// Config checks (COMET_ICEBERG_NATIVE_ENABLED, COMET_EXEC_ENABLED) are done in CometScanRule
201-
case scan: CometBatchScanExec
202-
if scan.wrapped.scan.getClass.getName ==
203-
"org.apache.iceberg.spark.source.SparkBatchQueryScan" =>
202+
case scan: CometBatchScanExec if scan.nativeIcebergScanMetadata.isDefined =>
204203
operator2Proto(scan) match {
205204
case Some(nativeOp) =>
206205
CometIcebergNativeScan.createExec(nativeOp, scan)
@@ -820,10 +819,8 @@ case class CometExecRule(session: SparkSession) extends Rule[SparkPlan] {
820819
case scan: CometScanExec if scan.scanImpl == CometConf.SCAN_NATIVE_DATAFUSION =>
821820
CometNativeScan.convert(scan, builder, childOp: _*)
822821

823-
// Fully native Iceberg scan for V2
824-
case scan: CometBatchScanExec
825-
if scan.wrapped.scan.getClass.getName ==
826-
"org.apache.iceberg.spark.source.SparkBatchQueryScan" =>
822+
// Fully native Iceberg scan for V2 (iceberg-rust path)
823+
case scan: CometBatchScanExec if scan.nativeIcebergScanMetadata.isDefined =>
827824
CometIcebergNativeScan.convert(scan, builder, childOp: _*)
828825

829826
case op if isCometSink(op) =>

spark/src/main/scala/org/apache/comet/rules/CometScanRule.scala

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -267,7 +267,7 @@ case class CometScanRule(session: SparkSession) extends Rule[SparkPlan] with Com
267267
}
268268

269269
// Iceberg scan - patched version implementing SupportsComet interface
270-
case s: SupportsComet =>
270+
case s: SupportsComet if !COMET_ICEBERG_NATIVE_ENABLED.get() =>
271271
val fallbackReasons = new ListBuffer[String]()
272272

273273
if (!s.isCometEnabled) {

0 commit comments

Comments
 (0)