@@ -25,16 +25,23 @@ import org.apache.spark.sql.delta.commands.cdc.CDCReader
2525import org .apache .spark .sql .execution .{SparkPlan , SparkStrategy }
2626import org .apache .spark .sql .execution .datasources .LogicalRelation
2727
28- case class DeltaCDFScanStrategy (spark : SparkSession ) extends SparkStrategy {
29- override def apply (plan : LogicalPlan ): Seq [SparkPlan ] = plan match {
30- case PhysicalOperation (projects, filters, relation : LogicalRelation ) =>
31- relation.relation match {
32- case cdfRelation : CDCReader .DeltaCDFRelation
33- if ! changesContainDeletionVectors(cdfRelation) =>
34- planCDFRelation(relation, cdfRelation, projects, filters).map(planLater).toSeq
35- case _ => Nil
36- }
37- case _ => Nil
28+ case class DeltaCDFScanStrategy (spark : SparkSession , offloadEnabled : () => Boolean )
29+ extends SparkStrategy {
30+ override def apply (plan : LogicalPlan ): Seq [SparkPlan ] = {
31+ if (! offloadEnabled()) {
32+ return Nil
33+ }
34+
35+ plan match {
36+ case PhysicalOperation (projects, filters, relation : LogicalRelation ) =>
37+ relation.relation match {
38+ case cdfRelation : CDCReader .DeltaCDFRelation
39+ if ! changesContainDeletionVectors(cdfRelation) =>
40+ planCDFRelation(relation, cdfRelation, projects, filters).map(planLater).toSeq
41+ case _ => Nil
42+ }
43+ case _ => Nil
44+ }
3845 }
3946
4047 // Delta CDF over a commit that uses deletion vectors needs Delta's DV-aware, row-level
0 commit comments