This is an automated email from the ASF dual-hosted git repository.
philo pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/gluten.git
The following commit(s) were added to refs/heads/main by this push:
new 0d0890ff45 [MINOR] Refactor: move ClickHouse-specific extension tests
to backend module (#11926)
0d0890ff45 is described below
commit 0d0890ff4512ad1ccb8e8edbacc44387aeaaa984
Author: Philo He <[email protected]>
AuthorDate: Tue Apr 14 23:12:16 2026 -0700
[MINOR] Refactor: move ClickHouse-specific extension tests to backend
module (#11926)
---
.../extension/GlutenCustomerExtensionSuite.scala | 151 +++++++++++++++++++++
.../utils/clickhouse/ClickHouseTestSettings.scala | 3 +-
.../gluten/utils/velox/VeloxTestSettings.scala | 3 +-
.../sql/extension/CustomerColumnarPreRules.scala | 47 -------
.../extension/GlutenCustomerExtensionSuite.scala | 56 --------
.../TestFileSourceScanExecTransformer.scala | 75 ----------
.../utils/clickhouse/ClickHouseTestSettings.scala | 3 +-
.../gluten/utils/velox/VeloxTestSettings.scala | 3 +-
.../sql/extension/CustomerColumnarPreRules.scala | 47 -------
.../extension/GlutenCustomerExtensionSuite.scala | 56 --------
.../TestFileSourceScanExecTransformer.scala | 75 ----------
.../utils/clickhouse/ClickHouseTestSettings.scala | 3 +-
.../gluten/utils/velox/VeloxTestSettings.scala | 3 +-
.../sql/extension/CustomerColumnarPreRules.scala | 47 -------
.../extension/GlutenCustomerExtensionSuite.scala | 56 --------
.../TestFileSourceScanExecTransformer.scala | 75 ----------
.../utils/clickhouse/ClickHouseTestSettings.scala | 3 +-
.../gluten/utils/velox/VeloxTestSettings.scala | 3 +-
.../sql/extension/CustomerColumnarPreRules.scala | 47 -------
.../extension/GlutenCustomerExtensionSuite.scala | 56 --------
.../TestFileSourceScanExecTransformer.scala | 74 ----------
.../utils/clickhouse/ClickHouseTestSettings.scala | 3 +-
.../gluten/utils/velox/VeloxTestSettings.scala | 3 +-
.../sql/extension/CustomerColumnarPreRules.scala | 47 -------
.../extension/GlutenCustomerExtensionSuite.scala | 56 --------
.../TestFileSourceScanExecTransformer.scala | 74 ----------
26 files changed, 161 insertions(+), 908 deletions(-)
diff --git
a/backends-clickhouse/src/test/scala/org/apache/spark/sql/extension/GlutenCustomerExtensionSuite.scala
b/backends-clickhouse/src/test/scala/org/apache/spark/sql/extension/GlutenCustomerExtensionSuite.scala
new file mode 100644
index 0000000000..7ae80efc62
--- /dev/null
+++
b/backends-clickhouse/src/test/scala/org/apache/spark/sql/extension/GlutenCustomerExtensionSuite.scala
@@ -0,0 +1,151 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.spark.sql.extension
+
+import org.apache.gluten.backendsapi.BackendsApiManager
+import org.apache.gluten.config.GlutenConfig
+import org.apache.gluten.execution.{BasicScanExecTransformer,
FileSourceScanExecTransformerBase}
+import org.apache.gluten.sql.shims.SparkShimLoader
+import org.apache.gluten.substrait.rel.LocalFilesNode.ReadFileFormat
+
+import org.apache.spark.Partition
+import org.apache.spark.SparkConf
+import org.apache.spark.sql.SparkSession
+import org.apache.spark.sql.catalyst.TableIdentifier
+import org.apache.spark.sql.catalyst.expressions.{Attribute, Expression}
+import org.apache.spark.sql.catalyst.rules.Rule
+import org.apache.spark.sql.connector.read.streaming.SparkDataStream
+import org.apache.spark.sql.execution.{FileSourceScanExec, SparkPlan}
+import org.apache.spark.sql.execution.datasources.HadoopFsRelation
+import org.apache.spark.sql.test.SharedSparkSession
+import org.apache.spark.sql.types.StructType
+import org.apache.spark.util.collection.BitSet
+
+class GlutenCustomerExtensionSuite extends SharedSparkSession {
+ // These configs only take effect on ClickHouse backend.
+ private val ExtendedColumnarTransformRulesKey =
+ "spark.gluten.sql.columnar.extended.columnar.transform.rules"
+ private val ExtendedColumnarPostRulesKey =
+ "spark.gluten.sql.columnar.extended.columnar.post.rules"
+
+ override def sparkConf: SparkConf = {
+ super.sparkConf
+ .setAppName("Gluten-UT")
+ .set("spark.driver.memory", "1G")
+ .set("spark.sql.shuffle.partitions", "1")
+ .set("spark.memory.offHeap.enabled", "true")
+ .set("spark.memory.offHeap.size", "1024MB")
+ .set("spark.plugins", "org.apache.gluten.GlutenPlugin")
+ .set("spark.shuffle.manager",
"org.apache.spark.shuffle.sort.ColumnarShuffleManager")
+ .set("spark.sql.adaptive.enabled", "false")
+ .set("spark.ui.enabled", "false")
+ .set(GlutenConfig.GLUTEN_UI_ENABLED.key, "false")
+ .set("spark.gluten.sql.columnar.backend.ch.worker.id", "1")
+ .set(GlutenConfig.NATIVE_VALIDATION_ENABLED.key, "false")
+ .set(
+ ExtendedColumnarTransformRulesKey,
+ "org.apache.spark.sql" +
+ ".extension.CustomerColumnarPreRules")
+ .set(ExtendedColumnarPostRulesKey, "")
+ }
+
+ test("customer column rules") {
+ withSQLConf((GlutenConfig.GLUTEN_ENABLED.key, "false")) {
+ sql("create table my_parquet(id int) using parquet")
+ sql("insert into my_parquet values (1)")
+ sql("insert into my_parquet values (2)")
+ }
+ withSQLConf((GlutenConfig.COLUMNAR_FILESCAN_ENABLED.key, "false")) {
+ val df = sql("select * from my_parquet")
+ val testFileSourceScanExecTransformer =
df.queryExecution.executedPlan.collect {
+ case f: TestFileSourceScanExecTransformer => f
+ }
+ assert(testFileSourceScanExecTransformer.nonEmpty)
+
assert(testFileSourceScanExecTransformer.head.nodeNamePrefix.equals("TestFile"))
+ }
+ }
+}
+
+/** Test for customer column rules */
+case class TestFileSourceScanExecTransformer(
+ @transient override val relation: HadoopFsRelation,
+ @transient stream: Option[SparkDataStream],
+ override val output: Seq[Attribute],
+ override val requiredSchema: StructType,
+ override val partitionFilters: Seq[Expression],
+ override val optionalBucketSet: Option[BitSet],
+ override val optionalNumCoalescedBuckets: Option[Int],
+ override val dataFilters: Seq[Expression],
+ override val tableIdentifier: Option[TableIdentifier],
+ override val disableBucketedScan: Boolean = false,
+ override val pushDownFilters: Option[Seq[Expression]] = None)
+ extends FileSourceScanExecTransformerBase(
+ relation,
+ stream,
+ output,
+ requiredSchema,
+ partitionFilters,
+ optionalBucketSet,
+ optionalNumCoalescedBuckets,
+ dataFilters,
+ tableIdentifier,
+ disableBucketedScan) {
+
+ override def getPartitions: Seq[Partition] =
+ BackendsApiManager.getTransformerApiInstance
+ .genPartitionSeq(
+ relation,
+ requiredSchema,
+ selectedPartitions,
+ output,
+ bucketedScan,
+ optionalBucketSet,
+ optionalNumCoalescedBuckets,
+ disableBucketedScan)
+
+ override def getPartitionWithReadFileFormats: Seq[(Partition,
ReadFileFormat)] =
+ getPartitions.map((_, fileFormat))
+
+ override val nodeNamePrefix: String = "TestFile"
+
+ override def withNewPushdownFilters(filters: Seq[Expression]):
BasicScanExecTransformer =
+ copy(pushDownFilters = Some(filters))
+}
+
+case class CustomerColumnarPreRules(session: SparkSession) extends
Rule[SparkPlan] {
+
+ override def apply(plan: SparkPlan): SparkPlan = plan.transformDown {
+ case fileSourceScan: FileSourceScanExec =>
+ val transformer = new TestFileSourceScanExecTransformer(
+ fileSourceScan.relation,
+ SparkShimLoader.getSparkShims.getFileSourceScanStream(fileSourceScan),
+ fileSourceScan.output,
+ fileSourceScan.requiredSchema,
+ fileSourceScan.partitionFilters,
+ fileSourceScan.optionalBucketSet,
+ fileSourceScan.optionalNumCoalescedBuckets,
+ fileSourceScan.dataFilters,
+ fileSourceScan.tableIdentifier,
+ fileSourceScan.disableBucketedScan
+ )
+ if (transformer.doValidate().ok()) {
+ transformer
+ } else {
+ plan
+ }
+ }
+}
diff --git
a/gluten-ut/spark33/src/test/scala/org/apache/gluten/utils/clickhouse/ClickHouseTestSettings.scala
b/gluten-ut/spark33/src/test/scala/org/apache/gluten/utils/clickhouse/ClickHouseTestSettings.scala
index 2ba48f9e54..03c2d0fa25 100644
---
a/gluten-ut/spark33/src/test/scala/org/apache/gluten/utils/clickhouse/ClickHouseTestSettings.scala
+++
b/gluten-ut/spark33/src/test/scala/org/apache/gluten/utils/clickhouse/ClickHouseTestSettings.scala
@@ -36,7 +36,7 @@ import
org.apache.spark.sql.execution.datasources.text.{GlutenTextV1Suite, Glute
import
org.apache.spark.sql.execution.datasources.v2.{GlutenDataSourceV2StrategySuite,
GlutenFileTableSuite, GlutenV2PredicateSuite}
import org.apache.spark.sql.execution.exchange.GlutenEnsureRequirementsSuite
import org.apache.spark.sql.execution.joins.{GlutenBroadcastJoinSuite,
GlutenExistenceJoinSuite, GlutenInnerJoinSuite, GlutenOuterJoinSuite}
-import org.apache.spark.sql.extension.{GlutenCustomerExtensionSuite,
GlutenSessionExtensionSuite}
+import org.apache.spark.sql.extension.GlutenSessionExtensionSuite
import org.apache.spark.sql.gluten.GlutenFallbackSuite
import org.apache.spark.sql.hive.execution.GlutenHiveSQLQueryCHSuite
import org.apache.spark.sql.sources._
@@ -1819,7 +1819,6 @@ class ClickHouseTestSettings extends BackendTestSettings {
.exclude("full outer join with unique keys using ShuffledHashJoin
(whole-stage-codegen on)")
.exclude("full outer join with unique keys using SortMergeJoin
(whole-stage-codegen off)")
.exclude("full outer join with unique keys using SortMergeJoin
(whole-stage-codegen on)")
- enableSuite[GlutenCustomerExtensionSuite]
enableSuite[GlutenSessionExtensionSuite]
enableSuite[GlutenFallbackSuite]
enableSuite[GlutenBucketedReadWithoutHiveSupportSuite]
diff --git
a/gluten-ut/spark33/src/test/scala/org/apache/gluten/utils/velox/VeloxTestSettings.scala
b/gluten-ut/spark33/src/test/scala/org/apache/gluten/utils/velox/VeloxTestSettings.scala
index e4cce67a15..62634fc7da 100644
---
a/gluten-ut/spark33/src/test/scala/org/apache/gluten/utils/velox/VeloxTestSettings.scala
+++
b/gluten-ut/spark33/src/test/scala/org/apache/gluten/utils/velox/VeloxTestSettings.scala
@@ -37,7 +37,7 @@ import
org.apache.spark.sql.execution.datasources.v2.{GlutenDataSourceV2Strategy
import org.apache.spark.sql.execution.exchange.GlutenEnsureRequirementsSuite
import org.apache.spark.sql.execution.joins.{GlutenBroadcastJoinSuite,
GlutenExistenceJoinSuite, GlutenInnerJoinSuite, GlutenOuterJoinSuite}
import org.apache.spark.sql.execution.python._
-import
org.apache.spark.sql.extension.{GlutenCollapseProjectExecTransformerSuite,
GlutenSessionExtensionSuite, TestFileSourceScanExecTransformer}
+import
org.apache.spark.sql.extension.{GlutenCollapseProjectExecTransformerSuite,
GlutenSessionExtensionSuite}
import org.apache.spark.sql.gluten.GlutenFallbackSuite
import org.apache.spark.sql.hive.execution.GlutenHiveSQLQuerySuite
import org.apache.spark.sql.sources._
@@ -567,7 +567,6 @@ class VeloxTestSettings extends BackendTestSettings {
.exclude("test with low buffer spill threshold")
enableSuite[GlutenTakeOrderedAndProjectSuite]
enableSuite[GlutenSessionExtensionSuite]
- enableSuite[TestFileSourceScanExecTransformer]
enableSuite[GlutenBucketedReadWithoutHiveSupportSuite]
// Exclude the following suite for plan changed from SMJ to SHJ.
.exclude("avoid shuffle when join 2 bucketed tables")
diff --git
a/gluten-ut/spark33/src/test/scala/org/apache/spark/sql/extension/CustomerColumnarPreRules.scala
b/gluten-ut/spark33/src/test/scala/org/apache/spark/sql/extension/CustomerColumnarPreRules.scala
deleted file mode 100644
index 5de35daaed..0000000000
---
a/gluten-ut/spark33/src/test/scala/org/apache/spark/sql/extension/CustomerColumnarPreRules.scala
+++ /dev/null
@@ -1,47 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.spark.sql.extension
-
-import org.apache.gluten.sql.shims.SparkShimLoader
-
-import org.apache.spark.sql.SparkSession
-import org.apache.spark.sql.catalyst.rules.Rule
-import org.apache.spark.sql.execution.{FileSourceScanExec, SparkPlan}
-
-case class CustomerColumnarPreRules(session: SparkSession) extends
Rule[SparkPlan] {
-
- override def apply(plan: SparkPlan): SparkPlan = plan.transformDown {
- case fileSourceScan: FileSourceScanExec =>
- val transformer = new TestFileSourceScanExecTransformer(
- fileSourceScan.relation,
- SparkShimLoader.getSparkShims.getFileSourceScanStream(fileSourceScan),
- fileSourceScan.output,
- fileSourceScan.requiredSchema,
- fileSourceScan.partitionFilters,
- fileSourceScan.optionalBucketSet,
- fileSourceScan.optionalNumCoalescedBuckets,
- fileSourceScan.dataFilters,
- fileSourceScan.tableIdentifier,
- fileSourceScan.disableBucketedScan
- )
- if (transformer.doValidate().ok()) {
- transformer
- } else {
- plan
- }
- }
-}
diff --git
a/gluten-ut/spark33/src/test/scala/org/apache/spark/sql/extension/GlutenCustomerExtensionSuite.scala
b/gluten-ut/spark33/src/test/scala/org/apache/spark/sql/extension/GlutenCustomerExtensionSuite.scala
deleted file mode 100644
index 4bd104f04c..0000000000
---
a/gluten-ut/spark33/src/test/scala/org/apache/spark/sql/extension/GlutenCustomerExtensionSuite.scala
+++ /dev/null
@@ -1,56 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.spark.sql.extension
-
-import org.apache.gluten.config.GlutenConfig
-
-import org.apache.spark.SparkConf
-import org.apache.spark.sql.GlutenSQLTestsTrait
-
-class GlutenCustomerExtensionSuite extends GlutenSQLTestsTrait {
- // These configs only take effect on ClickHouse backend.
- private val ExtendedColumnarTransformRulesKey =
- "spark.gluten.sql.columnar.extended.columnar.transform.rules"
- private val ExtendedColumnarPostRulesKey =
- "spark.gluten.sql.columnar.extended.columnar.post.rules"
-
- override def sparkConf: SparkConf = {
- super.sparkConf
- .set("spark.sql.adaptive.enabled", "false")
- .set(
- ExtendedColumnarTransformRulesKey,
- "org.apache.spark.sql" +
- ".extension.CustomerColumnarPreRules")
- .set(ExtendedColumnarPostRulesKey, "")
- }
-
- testGluten("test customer column rules") {
- withSQLConf((GlutenConfig.GLUTEN_ENABLED.key, "false")) {
- sql("create table my_parquet(id int) using parquet")
- sql("insert into my_parquet values (1)")
- sql("insert into my_parquet values (2)")
- }
- withSQLConf((GlutenConfig.COLUMNAR_FILESCAN_ENABLED.key, "false")) {
- val df = sql("select * from my_parquet")
- val testFileSourceScanExecTransformer =
df.queryExecution.executedPlan.collect {
- case f: TestFileSourceScanExecTransformer => f
- }
- assert(!testFileSourceScanExecTransformer.isEmpty)
-
assert(testFileSourceScanExecTransformer(0).nodeNamePrefix.equals("TestFile"))
- }
- }
-}
diff --git
a/gluten-ut/spark33/src/test/scala/org/apache/spark/sql/extension/TestFileSourceScanExecTransformer.scala
b/gluten-ut/spark33/src/test/scala/org/apache/spark/sql/extension/TestFileSourceScanExecTransformer.scala
deleted file mode 100644
index c2a775bd7f..0000000000
---
a/gluten-ut/spark33/src/test/scala/org/apache/spark/sql/extension/TestFileSourceScanExecTransformer.scala
+++ /dev/null
@@ -1,75 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.spark.sql.extension
-
-import org.apache.gluten.backendsapi.BackendsApiManager
-import org.apache.gluten.execution.{BasicScanExecTransformer,
FileSourceScanExecTransformerBase}
-import org.apache.gluten.substrait.rel.LocalFilesNode.ReadFileFormat
-
-import org.apache.spark.Partition
-import org.apache.spark.sql.catalyst.TableIdentifier
-import org.apache.spark.sql.catalyst.expressions.{Attribute, Expression}
-import org.apache.spark.sql.connector.read.streaming.SparkDataStream
-import org.apache.spark.sql.execution.datasources.HadoopFsRelation
-import org.apache.spark.sql.types.StructType
-import org.apache.spark.util.collection.BitSet
-
-/** Test for customer column rules */
-case class TestFileSourceScanExecTransformer(
- @transient override val relation: HadoopFsRelation,
- @transient stream: Option[SparkDataStream],
- override val output: Seq[Attribute],
- override val requiredSchema: StructType,
- override val partitionFilters: Seq[Expression],
- override val optionalBucketSet: Option[BitSet],
- override val optionalNumCoalescedBuckets: Option[Int],
- override val dataFilters: Seq[Expression],
- override val tableIdentifier: Option[TableIdentifier],
- override val disableBucketedScan: Boolean = false,
- override val pushDownFilters: Option[Seq[Expression]] = None)
- extends FileSourceScanExecTransformerBase(
- relation,
- stream,
- output,
- requiredSchema,
- partitionFilters,
- optionalBucketSet,
- optionalNumCoalescedBuckets,
- dataFilters,
- tableIdentifier,
- disableBucketedScan) {
-
- override def getPartitions: Seq[Partition] =
- BackendsApiManager.getTransformerApiInstance
- .genPartitionSeq(
- relation,
- requiredSchema,
- selectedPartitions,
- output,
- bucketedScan,
- optionalBucketSet,
- optionalNumCoalescedBuckets,
- disableBucketedScan)
-
- override def getPartitionWithReadFileFormats: Seq[(Partition,
ReadFileFormat)] =
- getPartitions.map((_, fileFormat))
-
- override val nodeNamePrefix: String = "TestFile"
-
- override def withNewPushdownFilters(filters: Seq[Expression]):
BasicScanExecTransformer =
- copy(pushDownFilters = Some(filters))
-}
diff --git
a/gluten-ut/spark34/src/test/scala/org/apache/gluten/utils/clickhouse/ClickHouseTestSettings.scala
b/gluten-ut/spark34/src/test/scala/org/apache/gluten/utils/clickhouse/ClickHouseTestSettings.scala
index a2f6499e27..6c5263a420 100644
---
a/gluten-ut/spark34/src/test/scala/org/apache/gluten/utils/clickhouse/ClickHouseTestSettings.scala
+++
b/gluten-ut/spark34/src/test/scala/org/apache/gluten/utils/clickhouse/ClickHouseTestSettings.scala
@@ -36,7 +36,7 @@ import
org.apache.spark.sql.execution.datasources.text.{GlutenTextV1Suite, Glute
import
org.apache.spark.sql.execution.datasources.v2.{GlutenDataSourceV2StrategySuite,
GlutenFileTableSuite, GlutenV2PredicateSuite}
import org.apache.spark.sql.execution.exchange.GlutenEnsureRequirementsSuite
import org.apache.spark.sql.execution.joins.{GlutenBroadcastJoinSuite,
GlutenExistenceJoinSuite, GlutenInnerJoinSuite, GlutenOuterJoinSuite}
-import org.apache.spark.sql.extension.{GlutenCustomerExtensionSuite,
GlutenSessionExtensionSuite}
+import org.apache.spark.sql.extension.GlutenSessionExtensionSuite
import org.apache.spark.sql.gluten.GlutenFallbackSuite
import org.apache.spark.sql.hive.execution.GlutenHiveSQLQueryCHSuite
import org.apache.spark.sql.sources._
@@ -1682,7 +1682,6 @@ class ClickHouseTestSettings extends BackendTestSettings {
.exclude("full outer join with unique keys using ShuffledHashJoin
(whole-stage-codegen on)")
.exclude("full outer join with unique keys using SortMergeJoin
(whole-stage-codegen off)")
.exclude("full outer join with unique keys using SortMergeJoin
(whole-stage-codegen on)")
- enableSuite[GlutenCustomerExtensionSuite]
enableSuite[GlutenSessionExtensionSuite]
enableSuite[GlutenFallbackSuite]
enableSuite[GlutenBucketedReadWithoutHiveSupportSuite]
diff --git
a/gluten-ut/spark34/src/test/scala/org/apache/gluten/utils/velox/VeloxTestSettings.scala
b/gluten-ut/spark34/src/test/scala/org/apache/gluten/utils/velox/VeloxTestSettings.scala
index 3f10a194ff..d457638e33 100644
---
a/gluten-ut/spark34/src/test/scala/org/apache/gluten/utils/velox/VeloxTestSettings.scala
+++
b/gluten-ut/spark34/src/test/scala/org/apache/gluten/utils/velox/VeloxTestSettings.scala
@@ -38,7 +38,7 @@ import
org.apache.spark.sql.execution.datasources.v2.{GlutenDataSourceV2Strategy
import org.apache.spark.sql.execution.exchange.GlutenEnsureRequirementsSuite
import org.apache.spark.sql.execution.joins.{GlutenBroadcastJoinSuite,
GlutenExistenceJoinSuite, GlutenInnerJoinSuite, GlutenOuterJoinSuite}
import org.apache.spark.sql.execution.python._
-import
org.apache.spark.sql.extension.{GlutenCollapseProjectExecTransformerSuite,
GlutenSessionExtensionSuite, TestFileSourceScanExecTransformer}
+import
org.apache.spark.sql.extension.{GlutenCollapseProjectExecTransformerSuite,
GlutenSessionExtensionSuite}
import org.apache.spark.sql.gluten.GlutenFallbackSuite
import org.apache.spark.sql.hive.execution.GlutenHiveSQLQuerySuite
import
org.apache.spark.sql.sources.{GlutenBucketedReadWithoutHiveSupportSuite,
GlutenBucketedWriteWithoutHiveSupportSuite, GlutenCreateTableAsSelectSuite,
GlutenDDLSourceLoadSuite,
GlutenDisableUnnecessaryBucketedScanWithoutHiveSupportSuite,
GlutenDisableUnnecessaryBucketedScanWithoutHiveSupportSuiteAE,
GlutenExternalCommandRunnerSuite, GlutenFilteredScanSuite, GlutenFiltersSuite,
GlutenInsertSuite, GlutenPartitionedWriteSuite, GlutenPathOptionSuite,
GlutenPrunedScanSuite, GlutenResolve [...]
@@ -587,7 +587,6 @@ class VeloxTestSettings extends BackendTestSettings {
.exclude("test with low buffer spill threshold")
enableSuite[GlutenTakeOrderedAndProjectSuite]
enableSuite[GlutenSessionExtensionSuite]
- enableSuite[TestFileSourceScanExecTransformer]
enableSuite[GlutenBucketedReadWithoutHiveSupportSuite]
// Exclude the following suite for plan changed from SMJ to SHJ.
.exclude("avoid shuffle when join 2 bucketed tables")
diff --git
a/gluten-ut/spark34/src/test/scala/org/apache/spark/sql/extension/CustomerColumnarPreRules.scala
b/gluten-ut/spark34/src/test/scala/org/apache/spark/sql/extension/CustomerColumnarPreRules.scala
deleted file mode 100644
index 5de35daaed..0000000000
---
a/gluten-ut/spark34/src/test/scala/org/apache/spark/sql/extension/CustomerColumnarPreRules.scala
+++ /dev/null
@@ -1,47 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.spark.sql.extension
-
-import org.apache.gluten.sql.shims.SparkShimLoader
-
-import org.apache.spark.sql.SparkSession
-import org.apache.spark.sql.catalyst.rules.Rule
-import org.apache.spark.sql.execution.{FileSourceScanExec, SparkPlan}
-
-case class CustomerColumnarPreRules(session: SparkSession) extends
Rule[SparkPlan] {
-
- override def apply(plan: SparkPlan): SparkPlan = plan.transformDown {
- case fileSourceScan: FileSourceScanExec =>
- val transformer = new TestFileSourceScanExecTransformer(
- fileSourceScan.relation,
- SparkShimLoader.getSparkShims.getFileSourceScanStream(fileSourceScan),
- fileSourceScan.output,
- fileSourceScan.requiredSchema,
- fileSourceScan.partitionFilters,
- fileSourceScan.optionalBucketSet,
- fileSourceScan.optionalNumCoalescedBuckets,
- fileSourceScan.dataFilters,
- fileSourceScan.tableIdentifier,
- fileSourceScan.disableBucketedScan
- )
- if (transformer.doValidate().ok()) {
- transformer
- } else {
- plan
- }
- }
-}
diff --git
a/gluten-ut/spark34/src/test/scala/org/apache/spark/sql/extension/GlutenCustomerExtensionSuite.scala
b/gluten-ut/spark34/src/test/scala/org/apache/spark/sql/extension/GlutenCustomerExtensionSuite.scala
deleted file mode 100644
index 4bd104f04c..0000000000
---
a/gluten-ut/spark34/src/test/scala/org/apache/spark/sql/extension/GlutenCustomerExtensionSuite.scala
+++ /dev/null
@@ -1,56 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.spark.sql.extension
-
-import org.apache.gluten.config.GlutenConfig
-
-import org.apache.spark.SparkConf
-import org.apache.spark.sql.GlutenSQLTestsTrait
-
-class GlutenCustomerExtensionSuite extends GlutenSQLTestsTrait {
- // These configs only take effect on ClickHouse backend.
- private val ExtendedColumnarTransformRulesKey =
- "spark.gluten.sql.columnar.extended.columnar.transform.rules"
- private val ExtendedColumnarPostRulesKey =
- "spark.gluten.sql.columnar.extended.columnar.post.rules"
-
- override def sparkConf: SparkConf = {
- super.sparkConf
- .set("spark.sql.adaptive.enabled", "false")
- .set(
- ExtendedColumnarTransformRulesKey,
- "org.apache.spark.sql" +
- ".extension.CustomerColumnarPreRules")
- .set(ExtendedColumnarPostRulesKey, "")
- }
-
- testGluten("test customer column rules") {
- withSQLConf((GlutenConfig.GLUTEN_ENABLED.key, "false")) {
- sql("create table my_parquet(id int) using parquet")
- sql("insert into my_parquet values (1)")
- sql("insert into my_parquet values (2)")
- }
- withSQLConf((GlutenConfig.COLUMNAR_FILESCAN_ENABLED.key, "false")) {
- val df = sql("select * from my_parquet")
- val testFileSourceScanExecTransformer =
df.queryExecution.executedPlan.collect {
- case f: TestFileSourceScanExecTransformer => f
- }
- assert(!testFileSourceScanExecTransformer.isEmpty)
-
assert(testFileSourceScanExecTransformer(0).nodeNamePrefix.equals("TestFile"))
- }
- }
-}
diff --git
a/gluten-ut/spark34/src/test/scala/org/apache/spark/sql/extension/TestFileSourceScanExecTransformer.scala
b/gluten-ut/spark34/src/test/scala/org/apache/spark/sql/extension/TestFileSourceScanExecTransformer.scala
deleted file mode 100644
index c2a775bd7f..0000000000
---
a/gluten-ut/spark34/src/test/scala/org/apache/spark/sql/extension/TestFileSourceScanExecTransformer.scala
+++ /dev/null
@@ -1,75 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.spark.sql.extension
-
-import org.apache.gluten.backendsapi.BackendsApiManager
-import org.apache.gluten.execution.{BasicScanExecTransformer,
FileSourceScanExecTransformerBase}
-import org.apache.gluten.substrait.rel.LocalFilesNode.ReadFileFormat
-
-import org.apache.spark.Partition
-import org.apache.spark.sql.catalyst.TableIdentifier
-import org.apache.spark.sql.catalyst.expressions.{Attribute, Expression}
-import org.apache.spark.sql.connector.read.streaming.SparkDataStream
-import org.apache.spark.sql.execution.datasources.HadoopFsRelation
-import org.apache.spark.sql.types.StructType
-import org.apache.spark.util.collection.BitSet
-
-/** Test for customer column rules */
-case class TestFileSourceScanExecTransformer(
- @transient override val relation: HadoopFsRelation,
- @transient stream: Option[SparkDataStream],
- override val output: Seq[Attribute],
- override val requiredSchema: StructType,
- override val partitionFilters: Seq[Expression],
- override val optionalBucketSet: Option[BitSet],
- override val optionalNumCoalescedBuckets: Option[Int],
- override val dataFilters: Seq[Expression],
- override val tableIdentifier: Option[TableIdentifier],
- override val disableBucketedScan: Boolean = false,
- override val pushDownFilters: Option[Seq[Expression]] = None)
- extends FileSourceScanExecTransformerBase(
- relation,
- stream,
- output,
- requiredSchema,
- partitionFilters,
- optionalBucketSet,
- optionalNumCoalescedBuckets,
- dataFilters,
- tableIdentifier,
- disableBucketedScan) {
-
- override def getPartitions: Seq[Partition] =
- BackendsApiManager.getTransformerApiInstance
- .genPartitionSeq(
- relation,
- requiredSchema,
- selectedPartitions,
- output,
- bucketedScan,
- optionalBucketSet,
- optionalNumCoalescedBuckets,
- disableBucketedScan)
-
- override def getPartitionWithReadFileFormats: Seq[(Partition,
ReadFileFormat)] =
- getPartitions.map((_, fileFormat))
-
- override val nodeNamePrefix: String = "TestFile"
-
- override def withNewPushdownFilters(filters: Seq[Expression]):
BasicScanExecTransformer =
- copy(pushDownFilters = Some(filters))
-}
diff --git
a/gluten-ut/spark35/src/test/scala/org/apache/gluten/utils/clickhouse/ClickHouseTestSettings.scala
b/gluten-ut/spark35/src/test/scala/org/apache/gluten/utils/clickhouse/ClickHouseTestSettings.scala
index 30ee897ab4..4da1c65376 100644
---
a/gluten-ut/spark35/src/test/scala/org/apache/gluten/utils/clickhouse/ClickHouseTestSettings.scala
+++
b/gluten-ut/spark35/src/test/scala/org/apache/gluten/utils/clickhouse/ClickHouseTestSettings.scala
@@ -35,7 +35,7 @@ import
org.apache.spark.sql.execution.datasources.text.{GlutenTextV1Suite, Glute
import
org.apache.spark.sql.execution.datasources.v2.{GlutenDataSourceV2StrategySuite,
GlutenFileTableSuite, GlutenV2PredicateSuite}
import org.apache.spark.sql.execution.exchange.GlutenEnsureRequirementsSuite
import org.apache.spark.sql.execution.joins._
-import
org.apache.spark.sql.extension.{GlutenCollapseProjectExecTransformerSuite,
GlutenCustomerExtensionSuite, GlutenSessionExtensionSuite}
+import
org.apache.spark.sql.extension.{GlutenCollapseProjectExecTransformerSuite,
GlutenSessionExtensionSuite}
import org.apache.spark.sql.gluten.GlutenFallbackSuite
import org.apache.spark.sql.hive.execution.GlutenHiveSQLQueryCHSuite
import org.apache.spark.sql.sources._
@@ -442,7 +442,6 @@ class ClickHouseTestSettings extends BackendTestSettings {
.exclude("CREATE TABLE USING AS SELECT based on the file without write
permission")
.exclude("create a table, drop it and create another one with the same
name")
enableSuite[GlutenCsvFunctionsSuite]
- enableSuite[GlutenCustomerExtensionSuite]
enableSuite[GlutenDDLSourceLoadSuite]
enableSuite[GlutenDSV2CharVarcharTestSuite]
// Excluded. The Gluten tests for char/varchar validation were rewritten
for Velox.
diff --git
a/gluten-ut/spark35/src/test/scala/org/apache/gluten/utils/velox/VeloxTestSettings.scala
b/gluten-ut/spark35/src/test/scala/org/apache/gluten/utils/velox/VeloxTestSettings.scala
index 365f5198f5..ed9f9ccfd9 100644
---
a/gluten-ut/spark35/src/test/scala/org/apache/gluten/utils/velox/VeloxTestSettings.scala
+++
b/gluten-ut/spark35/src/test/scala/org/apache/gluten/utils/velox/VeloxTestSettings.scala
@@ -37,7 +37,7 @@ import
org.apache.spark.sql.execution.datasources.v2.{GlutenDataSourceV2Strategy
import org.apache.spark.sql.execution.exchange.GlutenEnsureRequirementsSuite
import org.apache.spark.sql.execution.joins._
import org.apache.spark.sql.execution.python._
-import
org.apache.spark.sql.extension.{GlutenCollapseProjectExecTransformerSuite,
GlutenSessionExtensionSuite, TestFileSourceScanExecTransformer}
+import
org.apache.spark.sql.extension.{GlutenCollapseProjectExecTransformerSuite,
GlutenSessionExtensionSuite}
import org.apache.spark.sql.gluten.GlutenFallbackSuite
import org.apache.spark.sql.hive.execution.GlutenHiveSQLQuerySuite
import org.apache.spark.sql.sources._
@@ -534,7 +534,6 @@ class VeloxTestSettings extends BackendTestSettings {
.exclude("test with low buffer spill threshold")
enableSuite[GlutenTakeOrderedAndProjectSuite]
enableSuite[GlutenSessionExtensionSuite]
- enableSuite[TestFileSourceScanExecTransformer]
enableSuite[GlutenBucketedReadWithoutHiveSupportSuite]
// Exclude the following suite for plan changed from SMJ to SHJ.
.exclude("avoid shuffle when join 2 bucketed tables")
diff --git
a/gluten-ut/spark35/src/test/scala/org/apache/spark/sql/extension/CustomerColumnarPreRules.scala
b/gluten-ut/spark35/src/test/scala/org/apache/spark/sql/extension/CustomerColumnarPreRules.scala
deleted file mode 100644
index 5de35daaed..0000000000
---
a/gluten-ut/spark35/src/test/scala/org/apache/spark/sql/extension/CustomerColumnarPreRules.scala
+++ /dev/null
@@ -1,47 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.spark.sql.extension
-
-import org.apache.gluten.sql.shims.SparkShimLoader
-
-import org.apache.spark.sql.SparkSession
-import org.apache.spark.sql.catalyst.rules.Rule
-import org.apache.spark.sql.execution.{FileSourceScanExec, SparkPlan}
-
-case class CustomerColumnarPreRules(session: SparkSession) extends
Rule[SparkPlan] {
-
- override def apply(plan: SparkPlan): SparkPlan = plan.transformDown {
- case fileSourceScan: FileSourceScanExec =>
- val transformer = new TestFileSourceScanExecTransformer(
- fileSourceScan.relation,
- SparkShimLoader.getSparkShims.getFileSourceScanStream(fileSourceScan),
- fileSourceScan.output,
- fileSourceScan.requiredSchema,
- fileSourceScan.partitionFilters,
- fileSourceScan.optionalBucketSet,
- fileSourceScan.optionalNumCoalescedBuckets,
- fileSourceScan.dataFilters,
- fileSourceScan.tableIdentifier,
- fileSourceScan.disableBucketedScan
- )
- if (transformer.doValidate().ok()) {
- transformer
- } else {
- plan
- }
- }
-}
diff --git
a/gluten-ut/spark35/src/test/scala/org/apache/spark/sql/extension/GlutenCustomerExtensionSuite.scala
b/gluten-ut/spark35/src/test/scala/org/apache/spark/sql/extension/GlutenCustomerExtensionSuite.scala
deleted file mode 100644
index cb37cec895..0000000000
---
a/gluten-ut/spark35/src/test/scala/org/apache/spark/sql/extension/GlutenCustomerExtensionSuite.scala
+++ /dev/null
@@ -1,56 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.spark.sql.extension
-
-import org.apache.gluten.config.GlutenConfig
-
-import org.apache.spark.SparkConf
-import org.apache.spark.sql.GlutenSQLTestsTrait
-
-class GlutenCustomerExtensionSuite extends GlutenSQLTestsTrait {
- // These configs only take effect on ClickHouse backend.
- private val ExtendedColumnarTransformRulesKey =
- "spark.gluten.sql.columnar.extended.columnar.transform.rules"
- private val ExtendedColumnarPostRulesKey =
- "spark.gluten.sql.columnar.extended.columnar.post.rules"
-
- override def sparkConf: SparkConf = {
- super.sparkConf
- .set("spark.sql.adaptive.enabled", "false")
- .set(
- ExtendedColumnarTransformRulesKey,
- "org.apache.spark.sql" +
- ".extension.CustomerColumnarPreRules")
- .set(ExtendedColumnarPostRulesKey, "")
- }
-
- testGluten("test customer column rules") {
- withSQLConf((GlutenConfig.GLUTEN_ENABLED.key, "false")) {
- sql("create table my_parquet(id int) using parquet")
- sql("insert into my_parquet values (1)")
- sql("insert into my_parquet values (2)")
- }
- withSQLConf((GlutenConfig.COLUMNAR_FILESCAN_ENABLED.key, "false")) {
- val df = sql("select * from my_parquet")
- val testFileSourceScanExecTransformer =
df.queryExecution.executedPlan.collect {
- case f: TestFileSourceScanExecTransformer => f
- }
- assert(testFileSourceScanExecTransformer.nonEmpty)
-
assert(testFileSourceScanExecTransformer.head.nodeNamePrefix.equals("TestFile"))
- }
- }
-}
diff --git
a/gluten-ut/spark35/src/test/scala/org/apache/spark/sql/extension/TestFileSourceScanExecTransformer.scala
b/gluten-ut/spark35/src/test/scala/org/apache/spark/sql/extension/TestFileSourceScanExecTransformer.scala
deleted file mode 100644
index c2a775bd7f..0000000000
---
a/gluten-ut/spark35/src/test/scala/org/apache/spark/sql/extension/TestFileSourceScanExecTransformer.scala
+++ /dev/null
@@ -1,75 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.spark.sql.extension
-
-import org.apache.gluten.backendsapi.BackendsApiManager
-import org.apache.gluten.execution.{BasicScanExecTransformer,
FileSourceScanExecTransformerBase}
-import org.apache.gluten.substrait.rel.LocalFilesNode.ReadFileFormat
-
-import org.apache.spark.Partition
-import org.apache.spark.sql.catalyst.TableIdentifier
-import org.apache.spark.sql.catalyst.expressions.{Attribute, Expression}
-import org.apache.spark.sql.connector.read.streaming.SparkDataStream
-import org.apache.spark.sql.execution.datasources.HadoopFsRelation
-import org.apache.spark.sql.types.StructType
-import org.apache.spark.util.collection.BitSet
-
-/** Test for customer column rules */
-case class TestFileSourceScanExecTransformer(
- @transient override val relation: HadoopFsRelation,
- @transient stream: Option[SparkDataStream],
- override val output: Seq[Attribute],
- override val requiredSchema: StructType,
- override val partitionFilters: Seq[Expression],
- override val optionalBucketSet: Option[BitSet],
- override val optionalNumCoalescedBuckets: Option[Int],
- override val dataFilters: Seq[Expression],
- override val tableIdentifier: Option[TableIdentifier],
- override val disableBucketedScan: Boolean = false,
- override val pushDownFilters: Option[Seq[Expression]] = None)
- extends FileSourceScanExecTransformerBase(
- relation,
- stream,
- output,
- requiredSchema,
- partitionFilters,
- optionalBucketSet,
- optionalNumCoalescedBuckets,
- dataFilters,
- tableIdentifier,
- disableBucketedScan) {
-
- override def getPartitions: Seq[Partition] =
- BackendsApiManager.getTransformerApiInstance
- .genPartitionSeq(
- relation,
- requiredSchema,
- selectedPartitions,
- output,
- bucketedScan,
- optionalBucketSet,
- optionalNumCoalescedBuckets,
- disableBucketedScan)
-
- override def getPartitionWithReadFileFormats: Seq[(Partition,
ReadFileFormat)] =
- getPartitions.map((_, fileFormat))
-
- override val nodeNamePrefix: String = "TestFile"
-
- override def withNewPushdownFilters(filters: Seq[Expression]):
BasicScanExecTransformer =
- copy(pushDownFilters = Some(filters))
-}
diff --git
a/gluten-ut/spark40/src/test/scala/org/apache/gluten/utils/clickhouse/ClickHouseTestSettings.scala
b/gluten-ut/spark40/src/test/scala/org/apache/gluten/utils/clickhouse/ClickHouseTestSettings.scala
index 5a04389186..c5ac28bc7d 100644
---
a/gluten-ut/spark40/src/test/scala/org/apache/gluten/utils/clickhouse/ClickHouseTestSettings.scala
+++
b/gluten-ut/spark40/src/test/scala/org/apache/gluten/utils/clickhouse/ClickHouseTestSettings.scala
@@ -34,7 +34,7 @@ import
org.apache.spark.sql.execution.datasources.text.{GlutenTextV1Suite, Glute
import
org.apache.spark.sql.execution.datasources.v2.{GlutenDataSourceV2StrategySuite,
GlutenFileTableSuite, GlutenV2PredicateSuite}
import org.apache.spark.sql.execution.exchange.{GlutenEnsureRequirementsSuite,
GlutenValidateRequirementsSuite}
import org.apache.spark.sql.execution.joins._
-import
org.apache.spark.sql.extension.{GlutenCollapseProjectExecTransformerSuite,
GlutenCustomerExtensionSuite, GlutenSessionExtensionSuite}
+import
org.apache.spark.sql.extension.{GlutenCollapseProjectExecTransformerSuite,
GlutenSessionExtensionSuite}
import org.apache.spark.sql.gluten.{GlutenFallbackStrategiesSuite,
GlutenFallbackSuite}
import org.apache.spark.sql.hive.execution.GlutenHiveSQLQueryCHSuite
import org.apache.spark.sql.sources._
@@ -441,7 +441,6 @@ class ClickHouseTestSettings extends BackendTestSettings {
.exclude("CREATE TABLE USING AS SELECT based on the file without write
permission")
.exclude("create a table, drop it and create another one with the same
name")
enableSuite[GlutenCsvFunctionsSuite]
- enableSuite[GlutenCustomerExtensionSuite]
enableSuite[GlutenDDLSourceLoadSuite]
enableSuite[GlutenDSV2CharVarcharTestSuite]
enableSuite[GlutenDSV2SQLInsertTestSuite]
diff --git
a/gluten-ut/spark40/src/test/scala/org/apache/gluten/utils/velox/VeloxTestSettings.scala
b/gluten-ut/spark40/src/test/scala/org/apache/gluten/utils/velox/VeloxTestSettings.scala
index 498483cb65..3c557524ee 100644
---
a/gluten-ut/spark40/src/test/scala/org/apache/gluten/utils/velox/VeloxTestSettings.scala
+++
b/gluten-ut/spark40/src/test/scala/org/apache/gluten/utils/velox/VeloxTestSettings.scala
@@ -38,7 +38,7 @@ import
org.apache.spark.sql.execution.exchange.{GlutenEnsureRequirementsSuite, G
import org.apache.spark.sql.execution.joins._
import org.apache.spark.sql.execution.metric.{GlutenCustomMetricsSuite,
GlutenSQLMetricsSuite}
import org.apache.spark.sql.execution.python._
-import
org.apache.spark.sql.extension.{GlutenCollapseProjectExecTransformerSuite,
GlutenSessionExtensionSuite, TestFileSourceScanExecTransformer}
+import
org.apache.spark.sql.extension.{GlutenCollapseProjectExecTransformerSuite,
GlutenSessionExtensionSuite}
import org.apache.spark.sql.gluten.{GlutenFallbackStrategiesSuite,
GlutenFallbackSuite}
import org.apache.spark.sql.hive.execution.GlutenHiveSQLQuerySuite
import org.apache.spark.sql.sources._
@@ -740,7 +740,6 @@ class VeloxTestSettings extends BackendTestSettings {
.exclude("test with low buffer spill threshold")
enableSuite[GlutenTakeOrderedAndProjectSuite]
enableSuite[GlutenSessionExtensionSuite]
- enableSuite[TestFileSourceScanExecTransformer]
enableSuite[GlutenBucketedReadWithoutHiveSupportSuite]
// Exclude the following suite for plan changed from SMJ to SHJ.
.exclude("avoid shuffle when join 2 bucketed tables")
diff --git
a/gluten-ut/spark40/src/test/scala/org/apache/spark/sql/extension/CustomerColumnarPreRules.scala
b/gluten-ut/spark40/src/test/scala/org/apache/spark/sql/extension/CustomerColumnarPreRules.scala
deleted file mode 100644
index 5de35daaed..0000000000
---
a/gluten-ut/spark40/src/test/scala/org/apache/spark/sql/extension/CustomerColumnarPreRules.scala
+++ /dev/null
@@ -1,47 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.spark.sql.extension
-
-import org.apache.gluten.sql.shims.SparkShimLoader
-
-import org.apache.spark.sql.SparkSession
-import org.apache.spark.sql.catalyst.rules.Rule
-import org.apache.spark.sql.execution.{FileSourceScanExec, SparkPlan}
-
-case class CustomerColumnarPreRules(session: SparkSession) extends
Rule[SparkPlan] {
-
- override def apply(plan: SparkPlan): SparkPlan = plan.transformDown {
- case fileSourceScan: FileSourceScanExec =>
- val transformer = new TestFileSourceScanExecTransformer(
- fileSourceScan.relation,
- SparkShimLoader.getSparkShims.getFileSourceScanStream(fileSourceScan),
- fileSourceScan.output,
- fileSourceScan.requiredSchema,
- fileSourceScan.partitionFilters,
- fileSourceScan.optionalBucketSet,
- fileSourceScan.optionalNumCoalescedBuckets,
- fileSourceScan.dataFilters,
- fileSourceScan.tableIdentifier,
- fileSourceScan.disableBucketedScan
- )
- if (transformer.doValidate().ok()) {
- transformer
- } else {
- plan
- }
- }
-}
diff --git
a/gluten-ut/spark40/src/test/scala/org/apache/spark/sql/extension/GlutenCustomerExtensionSuite.scala
b/gluten-ut/spark40/src/test/scala/org/apache/spark/sql/extension/GlutenCustomerExtensionSuite.scala
deleted file mode 100644
index cb37cec895..0000000000
---
a/gluten-ut/spark40/src/test/scala/org/apache/spark/sql/extension/GlutenCustomerExtensionSuite.scala
+++ /dev/null
@@ -1,56 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.spark.sql.extension
-
-import org.apache.gluten.config.GlutenConfig
-
-import org.apache.spark.SparkConf
-import org.apache.spark.sql.GlutenSQLTestsTrait
-
-class GlutenCustomerExtensionSuite extends GlutenSQLTestsTrait {
- // These configs only take effect on ClickHouse backend.
- private val ExtendedColumnarTransformRulesKey =
- "spark.gluten.sql.columnar.extended.columnar.transform.rules"
- private val ExtendedColumnarPostRulesKey =
- "spark.gluten.sql.columnar.extended.columnar.post.rules"
-
- override def sparkConf: SparkConf = {
- super.sparkConf
- .set("spark.sql.adaptive.enabled", "false")
- .set(
- ExtendedColumnarTransformRulesKey,
- "org.apache.spark.sql" +
- ".extension.CustomerColumnarPreRules")
- .set(ExtendedColumnarPostRulesKey, "")
- }
-
- testGluten("test customer column rules") {
- withSQLConf((GlutenConfig.GLUTEN_ENABLED.key, "false")) {
- sql("create table my_parquet(id int) using parquet")
- sql("insert into my_parquet values (1)")
- sql("insert into my_parquet values (2)")
- }
- withSQLConf((GlutenConfig.COLUMNAR_FILESCAN_ENABLED.key, "false")) {
- val df = sql("select * from my_parquet")
- val testFileSourceScanExecTransformer =
df.queryExecution.executedPlan.collect {
- case f: TestFileSourceScanExecTransformer => f
- }
- assert(testFileSourceScanExecTransformer.nonEmpty)
-
assert(testFileSourceScanExecTransformer.head.nodeNamePrefix.equals("TestFile"))
- }
- }
-}
diff --git
a/gluten-ut/spark40/src/test/scala/org/apache/spark/sql/extension/TestFileSourceScanExecTransformer.scala
b/gluten-ut/spark40/src/test/scala/org/apache/spark/sql/extension/TestFileSourceScanExecTransformer.scala
deleted file mode 100644
index 18c5709bf5..0000000000
---
a/gluten-ut/spark40/src/test/scala/org/apache/spark/sql/extension/TestFileSourceScanExecTransformer.scala
+++ /dev/null
@@ -1,74 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.spark.sql.extension
-
-import org.apache.gluten.backendsapi.BackendsApiManager
-import org.apache.gluten.execution.{BasicScanExecTransformer,
FileSourceScanExecTransformerBase}
-import org.apache.gluten.substrait.rel.LocalFilesNode.ReadFileFormat
-
-import org.apache.spark.Partition
-import org.apache.spark.sql.catalyst.TableIdentifier
-import org.apache.spark.sql.catalyst.expressions.{Attribute, Expression}
-import org.apache.spark.sql.connector.read.streaming.SparkDataStream
-import org.apache.spark.sql.execution.datasources.HadoopFsRelation
-import org.apache.spark.sql.types.StructType
-import org.apache.spark.util.collection.BitSet
-
-/** Test for customer column rules */
-case class TestFileSourceScanExecTransformer(
- @transient override val relation: HadoopFsRelation,
- @transient val stream: Option[SparkDataStream],
- override val output: Seq[Attribute],
- override val requiredSchema: StructType,
- override val partitionFilters: Seq[Expression],
- override val optionalBucketSet: Option[BitSet],
- override val optionalNumCoalescedBuckets: Option[Int],
- override val dataFilters: Seq[Expression],
- override val tableIdentifier: Option[TableIdentifier],
- override val disableBucketedScan: Boolean = false,
- override val pushDownFilters: Option[Seq[Expression]] = None)
- extends FileSourceScanExecTransformerBase(
- relation,
- stream,
- output,
- requiredSchema,
- partitionFilters,
- optionalBucketSet,
- optionalNumCoalescedBuckets,
- dataFilters,
- tableIdentifier,
- disableBucketedScan) {
-
- override def getPartitions: Seq[Partition] =
- BackendsApiManager.getTransformerApiInstance.genPartitionSeq(
- relation,
- requiredSchema,
- getPartitionArray,
- output,
- bucketedScan,
- optionalBucketSet,
- optionalNumCoalescedBuckets,
- disableBucketedScan)
-
- override def getPartitionWithReadFileFormats: Seq[(Partition,
ReadFileFormat)] =
- getPartitions.map((_, fileFormat))
-
- override val nodeNamePrefix: String = "TestFile"
-
- override def withNewPushdownFilters(filters: Seq[Expression]):
BasicScanExecTransformer =
- copy(pushDownFilters = Some(filters))
-}
diff --git
a/gluten-ut/spark41/src/test/scala/org/apache/gluten/utils/clickhouse/ClickHouseTestSettings.scala
b/gluten-ut/spark41/src/test/scala/org/apache/gluten/utils/clickhouse/ClickHouseTestSettings.scala
index 5a04389186..c5ac28bc7d 100644
---
a/gluten-ut/spark41/src/test/scala/org/apache/gluten/utils/clickhouse/ClickHouseTestSettings.scala
+++
b/gluten-ut/spark41/src/test/scala/org/apache/gluten/utils/clickhouse/ClickHouseTestSettings.scala
@@ -34,7 +34,7 @@ import
org.apache.spark.sql.execution.datasources.text.{GlutenTextV1Suite, Glute
import
org.apache.spark.sql.execution.datasources.v2.{GlutenDataSourceV2StrategySuite,
GlutenFileTableSuite, GlutenV2PredicateSuite}
import org.apache.spark.sql.execution.exchange.{GlutenEnsureRequirementsSuite,
GlutenValidateRequirementsSuite}
import org.apache.spark.sql.execution.joins._
-import
org.apache.spark.sql.extension.{GlutenCollapseProjectExecTransformerSuite,
GlutenCustomerExtensionSuite, GlutenSessionExtensionSuite}
+import
org.apache.spark.sql.extension.{GlutenCollapseProjectExecTransformerSuite,
GlutenSessionExtensionSuite}
import org.apache.spark.sql.gluten.{GlutenFallbackStrategiesSuite,
GlutenFallbackSuite}
import org.apache.spark.sql.hive.execution.GlutenHiveSQLQueryCHSuite
import org.apache.spark.sql.sources._
@@ -441,7 +441,6 @@ class ClickHouseTestSettings extends BackendTestSettings {
.exclude("CREATE TABLE USING AS SELECT based on the file without write
permission")
.exclude("create a table, drop it and create another one with the same
name")
enableSuite[GlutenCsvFunctionsSuite]
- enableSuite[GlutenCustomerExtensionSuite]
enableSuite[GlutenDDLSourceLoadSuite]
enableSuite[GlutenDSV2CharVarcharTestSuite]
enableSuite[GlutenDSV2SQLInsertTestSuite]
diff --git
a/gluten-ut/spark41/src/test/scala/org/apache/gluten/utils/velox/VeloxTestSettings.scala
b/gluten-ut/spark41/src/test/scala/org/apache/gluten/utils/velox/VeloxTestSettings.scala
index c010f1b026..7cf5a28e01 100644
---
a/gluten-ut/spark41/src/test/scala/org/apache/gluten/utils/velox/VeloxTestSettings.scala
+++
b/gluten-ut/spark41/src/test/scala/org/apache/gluten/utils/velox/VeloxTestSettings.scala
@@ -38,7 +38,7 @@ import
org.apache.spark.sql.execution.exchange.{GlutenEnsureRequirementsSuite, G
import org.apache.spark.sql.execution.joins._
import org.apache.spark.sql.execution.metric.{GlutenCustomMetricsSuite,
GlutenSQLMetricsSuite}
import org.apache.spark.sql.execution.python._
-import
org.apache.spark.sql.extension.{GlutenCollapseProjectExecTransformerSuite,
GlutenSessionExtensionSuite, TestFileSourceScanExecTransformer}
+import
org.apache.spark.sql.extension.{GlutenCollapseProjectExecTransformerSuite,
GlutenSessionExtensionSuite}
import org.apache.spark.sql.gluten.{GlutenFallbackStrategiesSuite,
GlutenFallbackSuite}
import org.apache.spark.sql.hive.execution.GlutenHiveSQLQuerySuite
import org.apache.spark.sql.sources._
@@ -725,7 +725,6 @@ class VeloxTestSettings extends BackendTestSettings {
.exclude("test with low buffer spill threshold")
enableSuite[GlutenTakeOrderedAndProjectSuite]
enableSuite[GlutenSessionExtensionSuite]
- enableSuite[TestFileSourceScanExecTransformer]
enableSuite[GlutenBucketedReadWithoutHiveSupportSuite]
// Exclude the following suite for plan changed from SMJ to SHJ.
.exclude("avoid shuffle when join 2 bucketed tables")
diff --git
a/gluten-ut/spark41/src/test/scala/org/apache/spark/sql/extension/CustomerColumnarPreRules.scala
b/gluten-ut/spark41/src/test/scala/org/apache/spark/sql/extension/CustomerColumnarPreRules.scala
deleted file mode 100644
index 5de35daaed..0000000000
---
a/gluten-ut/spark41/src/test/scala/org/apache/spark/sql/extension/CustomerColumnarPreRules.scala
+++ /dev/null
@@ -1,47 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.spark.sql.extension
-
-import org.apache.gluten.sql.shims.SparkShimLoader
-
-import org.apache.spark.sql.SparkSession
-import org.apache.spark.sql.catalyst.rules.Rule
-import org.apache.spark.sql.execution.{FileSourceScanExec, SparkPlan}
-
-case class CustomerColumnarPreRules(session: SparkSession) extends
Rule[SparkPlan] {
-
- override def apply(plan: SparkPlan): SparkPlan = plan.transformDown {
- case fileSourceScan: FileSourceScanExec =>
- val transformer = new TestFileSourceScanExecTransformer(
- fileSourceScan.relation,
- SparkShimLoader.getSparkShims.getFileSourceScanStream(fileSourceScan),
- fileSourceScan.output,
- fileSourceScan.requiredSchema,
- fileSourceScan.partitionFilters,
- fileSourceScan.optionalBucketSet,
- fileSourceScan.optionalNumCoalescedBuckets,
- fileSourceScan.dataFilters,
- fileSourceScan.tableIdentifier,
- fileSourceScan.disableBucketedScan
- )
- if (transformer.doValidate().ok()) {
- transformer
- } else {
- plan
- }
- }
-}
diff --git
a/gluten-ut/spark41/src/test/scala/org/apache/spark/sql/extension/GlutenCustomerExtensionSuite.scala
b/gluten-ut/spark41/src/test/scala/org/apache/spark/sql/extension/GlutenCustomerExtensionSuite.scala
deleted file mode 100644
index cb37cec895..0000000000
---
a/gluten-ut/spark41/src/test/scala/org/apache/spark/sql/extension/GlutenCustomerExtensionSuite.scala
+++ /dev/null
@@ -1,56 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.spark.sql.extension
-
-import org.apache.gluten.config.GlutenConfig
-
-import org.apache.spark.SparkConf
-import org.apache.spark.sql.GlutenSQLTestsTrait
-
-class GlutenCustomerExtensionSuite extends GlutenSQLTestsTrait {
- // These configs only take effect on ClickHouse backend.
- private val ExtendedColumnarTransformRulesKey =
- "spark.gluten.sql.columnar.extended.columnar.transform.rules"
- private val ExtendedColumnarPostRulesKey =
- "spark.gluten.sql.columnar.extended.columnar.post.rules"
-
- override def sparkConf: SparkConf = {
- super.sparkConf
- .set("spark.sql.adaptive.enabled", "false")
- .set(
- ExtendedColumnarTransformRulesKey,
- "org.apache.spark.sql" +
- ".extension.CustomerColumnarPreRules")
- .set(ExtendedColumnarPostRulesKey, "")
- }
-
- testGluten("test customer column rules") {
- withSQLConf((GlutenConfig.GLUTEN_ENABLED.key, "false")) {
- sql("create table my_parquet(id int) using parquet")
- sql("insert into my_parquet values (1)")
- sql("insert into my_parquet values (2)")
- }
- withSQLConf((GlutenConfig.COLUMNAR_FILESCAN_ENABLED.key, "false")) {
- val df = sql("select * from my_parquet")
- val testFileSourceScanExecTransformer =
df.queryExecution.executedPlan.collect {
- case f: TestFileSourceScanExecTransformer => f
- }
- assert(testFileSourceScanExecTransformer.nonEmpty)
-
assert(testFileSourceScanExecTransformer.head.nodeNamePrefix.equals("TestFile"))
- }
- }
-}
diff --git
a/gluten-ut/spark41/src/test/scala/org/apache/spark/sql/extension/TestFileSourceScanExecTransformer.scala
b/gluten-ut/spark41/src/test/scala/org/apache/spark/sql/extension/TestFileSourceScanExecTransformer.scala
deleted file mode 100644
index 18c5709bf5..0000000000
---
a/gluten-ut/spark41/src/test/scala/org/apache/spark/sql/extension/TestFileSourceScanExecTransformer.scala
+++ /dev/null
@@ -1,74 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.spark.sql.extension
-
-import org.apache.gluten.backendsapi.BackendsApiManager
-import org.apache.gluten.execution.{BasicScanExecTransformer,
FileSourceScanExecTransformerBase}
-import org.apache.gluten.substrait.rel.LocalFilesNode.ReadFileFormat
-
-import org.apache.spark.Partition
-import org.apache.spark.sql.catalyst.TableIdentifier
-import org.apache.spark.sql.catalyst.expressions.{Attribute, Expression}
-import org.apache.spark.sql.connector.read.streaming.SparkDataStream
-import org.apache.spark.sql.execution.datasources.HadoopFsRelation
-import org.apache.spark.sql.types.StructType
-import org.apache.spark.util.collection.BitSet
-
-/** Test for customer column rules */
-case class TestFileSourceScanExecTransformer(
- @transient override val relation: HadoopFsRelation,
- @transient val stream: Option[SparkDataStream],
- override val output: Seq[Attribute],
- override val requiredSchema: StructType,
- override val partitionFilters: Seq[Expression],
- override val optionalBucketSet: Option[BitSet],
- override val optionalNumCoalescedBuckets: Option[Int],
- override val dataFilters: Seq[Expression],
- override val tableIdentifier: Option[TableIdentifier],
- override val disableBucketedScan: Boolean = false,
- override val pushDownFilters: Option[Seq[Expression]] = None)
- extends FileSourceScanExecTransformerBase(
- relation,
- stream,
- output,
- requiredSchema,
- partitionFilters,
- optionalBucketSet,
- optionalNumCoalescedBuckets,
- dataFilters,
- tableIdentifier,
- disableBucketedScan) {
-
- override def getPartitions: Seq[Partition] =
- BackendsApiManager.getTransformerApiInstance.genPartitionSeq(
- relation,
- requiredSchema,
- getPartitionArray,
- output,
- bucketedScan,
- optionalBucketSet,
- optionalNumCoalescedBuckets,
- disableBucketedScan)
-
- override def getPartitionWithReadFileFormats: Seq[(Partition,
ReadFileFormat)] =
- getPartitions.map((_, fileFormat))
-
- override val nodeNamePrefix: String = "TestFile"
-
- override def withNewPushdownFilters(filters: Seq[Expression]):
BasicScanExecTransformer =
- copy(pushDownFilters = Some(filters))
-}
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]