Skip to content

Commit ce5de44

Browse files
authored
chore: Enable partial CI checks for native_datafusion scan (apache#1479)
1 parent f34519f commit ce5de44

File tree

8 files changed

+63
-0
lines changed

8 files changed

+63
-0
lines changed

.github/workflows/pr_build.yml

Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -76,6 +76,41 @@ jobs:
7676
# upload test reports only for java 17
7777
upload-test-reports: ${{ matrix.java_version == '17' }}
7878

79+
linux-test-native-datafusion-scan:
80+
env:
81+
COMET_PARQUET_SCAN_IMPL: "native_datafusion"
82+
strategy:
83+
matrix:
84+
os: [ubuntu-latest]
85+
java_version: [17]
86+
test-target: [rust, java]
87+
spark-version: ['3.5']
88+
scala-version: ['2.12']
89+
is_push_event:
90+
- ${{ github.event_name == 'push' }}
91+
fail-fast: false
92+
name: ${{ matrix.os }}/java ${{ matrix.java_version }}-spark-${{matrix.spark-version}}-scala-${{matrix.scala-version}}/${{ matrix.test-target }}-native-datafusion
93+
runs-on: ${{ matrix.os }}
94+
container:
95+
image: amd64/rust
96+
steps:
97+
- uses: actions/checkout@v4
98+
- name: Setup Rust & Java toolchain
99+
uses: ./.github/actions/setup-builder
100+
with:
101+
rust-version: ${{env.RUST_VERSION}}
102+
jdk-version: ${{ matrix.java_version }}
103+
- if: matrix.test-target == 'rust'
104+
name: Rust test steps
105+
uses: ./.github/actions/rust-test
106+
- if: matrix.test-target == 'java'
107+
name: Java test steps
108+
uses: ./.github/actions/java-test
109+
with:
110+
maven_opts: -Pspark-${{ matrix.spark-version }},scala-${{ matrix.scala-version }}
111+
# upload test reports only for java 17
112+
upload-test-reports: ${{ matrix.java_version == '17' }}
113+
79114
linux-test-with-spark4_0:
80115
strategy:
81116
matrix:

common/src/main/scala/org/apache/comet/CometConf.scala

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -101,6 +101,11 @@ object CometConf extends ShimCometConf {
101101
.getOrElse("COMET_PARQUET_SCAN_IMPL", SCAN_NATIVE_COMET)
102102
.toLowerCase(Locale.ROOT))
103103

104+
def isExperimentalNativeScan: Boolean = COMET_NATIVE_SCAN_IMPL.get() match {
105+
case SCAN_NATIVE_DATAFUSION | SCAN_NATIVE_ICEBERG_COMPAT => true
106+
case SCAN_NATIVE_COMET => false
107+
}
108+
104109
val COMET_PARQUET_PARALLEL_IO_ENABLED: ConfigEntry[Boolean] =
105110
conf("spark.comet.parquet.read.parallel.io.enabled")
106111
.doc(

spark/src/test/scala/org/apache/comet/CometArrayExpressionSuite.scala

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -234,7 +234,10 @@ class CometArrayExpressionSuite extends CometTestBase with AdaptiveSparkPlanHelp
234234
}
235235

236236
test("array_intersect") {
237+
// https://github.com/apache/datafusion-comet/issues/1441
238+
assume(!CometConf.isExperimentalNativeScan)
237239
withSQLConf(CometConf.COMET_EXPR_ALLOW_INCOMPATIBLE.key -> "true") {
240+
238241
Seq(true, false).foreach { dictionaryEnabled =>
239242
withTempDir { dir =>
240243
val path = new Path(dir.toURI.toString, "test.parquet")

spark/src/test/scala/org/apache/comet/CometCastSuite.scala

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -900,6 +900,8 @@ class CometCastSuite extends CometTestBase with AdaptiveSparkPlanHelper {
900900
}
901901

902902
test("cast TimestampType to LongType") {
903+
// https://github.com/apache/datafusion-comet/issues/1441
904+
assume(!CometConf.isExperimentalNativeScan)
903905
assume(CometSparkSessionExtensions.isSpark33Plus)
904906
castTest(generateTimestampsExtended(), DataTypes.LongType)
905907
}
@@ -923,16 +925,22 @@ class CometCastSuite extends CometTestBase with AdaptiveSparkPlanHelper {
923925
}
924926

925927
test("cast TimestampType to StringType") {
928+
// https://github.com/apache/datafusion-comet/issues/1441
929+
assume(!CometConf.isExperimentalNativeScan)
926930
castTest(generateTimestamps(), DataTypes.StringType)
927931
}
928932

929933
test("cast TimestampType to DateType") {
934+
// https://github.com/apache/datafusion-comet/issues/1441
935+
assume(!CometConf.isExperimentalNativeScan)
930936
castTest(generateTimestamps(), DataTypes.DateType)
931937
}
932938

933939
// Complex Types
934940

935941
test("cast StructType to StringType") {
942+
// https://github.com/apache/datafusion-comet/issues/1441
943+
assume(!CometConf.isExperimentalNativeScan)
936944
Seq(true, false).foreach { dictionaryEnabled =>
937945
withTempDir { dir =>
938946
val path = new Path(dir.toURI.toString, "test.parquet")

spark/src/test/scala/org/apache/comet/CometExpressionSuite.scala

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1266,6 +1266,8 @@ class CometExpressionSuite extends CometTestBase with AdaptiveSparkPlanHelper {
12661266
}
12671267

12681268
test("round") {
1269+
// https://github.com/apache/datafusion-comet/issues/1441
1270+
assume(!CometConf.isExperimentalNativeScan)
12691271
Seq(true, false).foreach { dictionaryEnabled =>
12701272
withTempDir { dir =>
12711273
val path = new Path(dir.toURI.toString, "test.parquet")
@@ -1494,6 +1496,8 @@ class CometExpressionSuite extends CometTestBase with AdaptiveSparkPlanHelper {
14941496
}
14951497

14961498
test("hex") {
1499+
// https://github.com/apache/datafusion-comet/issues/1441
1500+
assume(!CometConf.isExperimentalNativeScan)
14971501
Seq(true, false).foreach { dictionaryEnabled =>
14981502
withTempDir { dir =>
14991503
val path = new Path(dir.toURI.toString, "hex.parquet")
@@ -2676,6 +2680,8 @@ class CometExpressionSuite extends CometTestBase with AdaptiveSparkPlanHelper {
26762680
}
26772681

26782682
test("test integral divide") {
2683+
// https://github.com/apache/datafusion-comet/issues/1441
2684+
assume(!CometConf.isExperimentalNativeScan)
26792685
Seq(true, false).foreach { dictionaryEnabled =>
26802686
withTempDir { dir =>
26812687
val path1 = new Path(dir.toURI.toString, "test1.parquet")

spark/src/test/scala/org/apache/comet/exec/CometExecSuite.scala

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -818,6 +818,8 @@ class CometExecSuite extends CometTestBase {
818818
}
819819

820820
test("explain native plan") {
821+
// https://github.com/apache/datafusion-comet/issues/1441
822+
assume(!CometConf.isExperimentalNativeScan)
821823
// there are no assertions in this test to prove that the explain feature
822824
// wrote the expected output to stdout, but we at least test that enabling
823825
// the config does not cause any exceptions.

spark/src/test/scala/org/apache/comet/exec/CometJoinSuite.scala

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -201,6 +201,8 @@ class CometJoinSuite extends CometTestBase {
201201
}
202202

203203
test("HashJoin struct key") {
204+
// https://github.com/apache/datafusion-comet/issues/1441
205+
assume(!CometConf.isExperimentalNativeScan)
204206
withSQLConf(
205207
"spark.sql.join.forceApplyShuffledHashJoin" -> "true",
206208
SQLConf.PREFER_SORTMERGEJOIN.key -> "false",

spark/src/test/scala/org/apache/comet/parquet/ParquetReadSuite.scala

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -337,6 +337,8 @@ abstract class ParquetReadSuite extends CometTestBase {
337337
}
338338

339339
test("test multiple pages with different sizes and nulls") {
340+
// https://github.com/apache/datafusion-comet/issues/1441
341+
assume(!CometConf.isExperimentalNativeScan)
340342
def makeRawParquetFile(
341343
path: Path,
342344
dictionaryEnabled: Boolean,

0 commit comments

Comments
 (0)