You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
[SPARK-52405] Extend V2JDBCTest to test multiple partition reading
### What changes were proposed in this pull request?
This PR is just extending the existing V2JDBCTest that is used for testing different pushdowns for JDBC connectors.
JDBC Options support `numPartitions`, `lowerBound`, `upperBound`, and `partitionColumn` options. The idea is to test reading data from JDBC data sources when these options are used. Using these options will disable some of the pushdowns, for example Offset with Limit or Sort with Limit. Other pushdowns shouldn't be regressed (like Limit or Aggregation) and these are all tested.
### Why are the changes needed?
Testing if there is a correctness issue when using multiple partitions for reading the data from JDBC data sources.
### Does this PR introduce _any_ user-facing change?
No, since this is test only PR.
### How was this patch tested?
### Was this patch authored or co-authored using generative AI tooling?
Closesapache#51098 from PetarVasiljevic-DB/test_jdbc_parallel_read.
Authored-by: Petar Vasiljevic <petar.vasiljevic@databricks.com>
Signed-off-by: Wenchen Fan <wenchen@databricks.com>
Copy file name to clipboardExpand all lines: connector/docker-integration-tests/src/test/scala/org/apache/spark/sql/jdbc/v2/MsSqlServerIntegrationSuite.scala
+37-18Lines changed: 37 additions & 18 deletions
Original file line number
Diff line number
Diff line change
@@ -57,25 +57,44 @@ class MsSqlServerIntegrationSuite extends DockerJDBCIntegrationV2Suite with V2JD
57
57
queryNode.rdd
58
58
}
59
59
60
+
// Following tests are disabled for both single and multiple partition read
60
61
overridedefexcluded:Seq[String] =Seq(
61
-
"simple scan with OFFSET",
62
-
"simple scan with LIMIT and OFFSET",
63
-
"simple scan with paging: top N and OFFSET",
64
-
"scan with aggregate push-down: VAR_POP with DISTINCT",
65
-
"scan with aggregate push-down: COVAR_POP with DISTINCT",
66
-
"scan with aggregate push-down: COVAR_POP without DISTINCT",
67
-
"scan with aggregate push-down: COVAR_SAMP with DISTINCT",
68
-
"scan with aggregate push-down: COVAR_SAMP without DISTINCT",
69
-
"scan with aggregate push-down: CORR with DISTINCT",
70
-
"scan with aggregate push-down: CORR without DISTINCT",
71
-
"scan with aggregate push-down: REGR_INTERCEPT with DISTINCT",
72
-
"scan with aggregate push-down: REGR_INTERCEPT without DISTINCT",
73
-
"scan with aggregate push-down: REGR_SLOPE with DISTINCT",
74
-
"scan with aggregate push-down: REGR_SLOPE without DISTINCT",
75
-
"scan with aggregate push-down: REGR_R2 with DISTINCT",
76
-
"scan with aggregate push-down: REGR_R2 without DISTINCT",
77
-
"scan with aggregate push-down: REGR_SXY with DISTINCT",
78
-
"scan with aggregate push-down: REGR_SXY without DISTINCT")
62
+
"simple scan with OFFSET (false)",
63
+
"simple scan with OFFSET (true)",
64
+
"simple scan with LIMIT and OFFSET (false)",
65
+
"simple scan with LIMIT and OFFSET (true)",
66
+
"simple scan with paging: top N and OFFSET (false)",
67
+
"simple scan with paging: top N and OFFSET (true)",
68
+
"scan with aggregate push-down: VAR_POP with DISTINCT (false)",
69
+
"scan with aggregate push-down: VAR_POP with DISTINCT (true)",
70
+
"scan with aggregate push-down: COVAR_POP with DISTINCT (false)",
71
+
"scan with aggregate push-down: COVAR_POP with DISTINCT (true)",
72
+
"scan with aggregate push-down: COVAR_POP without DISTINCT (false)",
73
+
"scan with aggregate push-down: COVAR_POP without DISTINCT (true)",
74
+
"scan with aggregate push-down: COVAR_SAMP with DISTINCT (false)",
75
+
"scan with aggregate push-down: COVAR_SAMP with DISTINCT (true)",
76
+
"scan with aggregate push-down: COVAR_SAMP without DISTINCT (false)",
77
+
"scan with aggregate push-down: COVAR_SAMP without DISTINCT (true)",
78
+
"scan with aggregate push-down: CORR with DISTINCT (false)",
79
+
"scan with aggregate push-down: CORR with DISTINCT (true)",
80
+
"scan with aggregate push-down: CORR without DISTINCT (false)",
81
+
"scan with aggregate push-down: CORR without DISTINCT (true)",
82
+
"scan with aggregate push-down: REGR_INTERCEPT with DISTINCT (false)",
83
+
"scan with aggregate push-down: REGR_INTERCEPT with DISTINCT (true)",
84
+
"scan with aggregate push-down: REGR_INTERCEPT without DISTINCT (false)",
85
+
"scan with aggregate push-down: REGR_INTERCEPT without DISTINCT (true)",
86
+
"scan with aggregate push-down: REGR_SLOPE with DISTINCT (false)",
87
+
"scan with aggregate push-down: REGR_SLOPE with DISTINCT (true)",
88
+
"scan with aggregate push-down: REGR_SLOPE without DISTINCT (false)",
89
+
"scan with aggregate push-down: REGR_SLOPE without DISTINCT (true)",
90
+
"scan with aggregate push-down: REGR_R2 with DISTINCT (false)",
91
+
"scan with aggregate push-down: REGR_R2 with DISTINCT (true)",
92
+
"scan with aggregate push-down: REGR_R2 without DISTINCT (false)",
93
+
"scan with aggregate push-down: REGR_R2 without DISTINCT (true)",
94
+
"scan with aggregate push-down: REGR_SXY with DISTINCT (false)",
95
+
"scan with aggregate push-down: REGR_SXY with DISTINCT (true)",
96
+
"scan with aggregate push-down: REGR_SXY without DISTINCT (false)",
97
+
"scan with aggregate push-down: REGR_SXY without DISTINCT (true)")
Copy file name to clipboardExpand all lines: connector/docker-integration-tests/src/test/scala/org/apache/spark/sql/jdbc/v2/MySQLIntegrationSuite.scala
Copy file name to clipboardExpand all lines: connector/docker-integration-tests/src/test/scala/org/apache/spark/sql/jdbc/v2/OracleIntegrationSuite.scala
0 commit comments