Skip to content
Draft
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -39,6 +39,7 @@ import org.apache.comet.serde.{CometOperatorSerde, Compatible, OperatorOuterClas
import org.apache.comet.serde.ExprOuterClass.Expr
import org.apache.comet.serde.OperatorOuterClass.Operator
import org.apache.comet.serde.QueryPlanSerde.{exprToProto, serializeDataType}
import org.apache.comet.shims.ShimFileFormat

/**
* Validation and serde logic for `native_datafusion` scans.
Expand Down Expand Up @@ -77,6 +78,18 @@ object CometNativeScan extends CometOperatorSerde[CometScanExec] with Logging {
withInfo(scanExec, "Full native scan disabled because ignoreMissingFiles enabled")
}

if (scanExec.fileConstantMetadataColumns.nonEmpty) {
withInfo(scanExec, "Native DataFusion scan does not support metadata columns")
}

if (scanExec.bucketedScan) {
withInfo(scanExec, "Native DataFusion scan does not support bucketed scans")
Copy link
Contributor

@mbutrovich mbutrovich Jan 30, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yes it does, I think we just fail the Spark SQL test for not formatting the explain output in the same way. I'm confused how this PR is passing the test that #2888 added.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I see. Thanks. I will move this to draft for now. Here is the related issue for the Spark SQL test failures, and yes, it looks like we need to update the diff for these. #3319

}

if (ShimFileFormat.findRowIndexColumnIndexInSchema(scanExec.requiredSchema) >= 0) {
withInfo(scanExec, "Native DataFusion scan does not support row index generation")
}

// the scan is supported if no fallback reasons were added to the node
!hasExplainInfo(scanExec)
}
Expand Down
Loading