From fb6493e8f85f08c55901c9e817c82babb79ee176 Mon Sep 17 00:00:00 2001 From: "Zhu, Lipeng" Date: Thu, 14 Mar 2019 18:54:48 +0800 Subject: [PATCH 1/2] update mssql server dialect to support the binary type --- .../org/apache/spark/sql/jdbc/MsSqlServerDialect.scala | 1 + .../test/scala/org/apache/spark/sql/jdbc/JDBCSuite.scala | 8 ++++++++ 2 files changed, 9 insertions(+) diff --git a/sql/core/src/main/scala/org/apache/spark/sql/jdbc/MsSqlServerDialect.scala b/sql/core/src/main/scala/org/apache/spark/sql/jdbc/MsSqlServerDialect.scala index da787b4859a73..29500cf2afbc0 100644 --- a/sql/core/src/main/scala/org/apache/spark/sql/jdbc/MsSqlServerDialect.scala +++ b/sql/core/src/main/scala/org/apache/spark/sql/jdbc/MsSqlServerDialect.scala @@ -38,6 +38,7 @@ private object MsSqlServerDialect extends JdbcDialect { case TimestampType => Some(JdbcType("DATETIME", java.sql.Types.TIMESTAMP)) case StringType => Some(JdbcType("NVARCHAR(MAX)", java.sql.Types.NVARCHAR)) case BooleanType => Some(JdbcType("BIT", java.sql.Types.BIT)) + case BinaryType => Some(JdbcType("VARBINARY(MAX)", java.sql.Types.VARBINARY)) case _ => None } diff --git a/sql/core/src/test/scala/org/apache/spark/sql/jdbc/JDBCSuite.scala b/sql/core/src/test/scala/org/apache/spark/sql/jdbc/JDBCSuite.scala index a4dc537d31b7e..43fb25b4d99c8 100644 --- a/sql/core/src/test/scala/org/apache/spark/sql/jdbc/JDBCSuite.scala +++ b/sql/core/src/test/scala/org/apache/spark/sql/jdbc/JDBCSuite.scala @@ -885,6 +885,14 @@ class JDBCSuite extends QueryTest Some(TimestampType)) } + test("MsSqlServerDialect jdbc type mapping") { + val msSqlServerDialect = JdbcDialects.get("jdbc:sqlserver") + assert(msSqlServerDialect.getJDBCType(TimestampType).map(_.databaseTypeDefinition).get == "DATETIME") + assert(msSqlServerDialect.getJDBCType(StringType).map(_.databaseTypeDefinition).get == "NVARCHAR(MAX)") + assert(msSqlServerDialect.getJDBCType(BooleanType).map(_.databaseTypeDefinition).get == "BIT") + assert(msSqlServerDialect.getJDBCType(BinaryType).map(_.databaseTypeDefinition).get == "VARBINARY(MAX)") + } + test("table exists query by jdbc dialect") { val MySQL = JdbcDialects.get("jdbc:mysql://127.0.0.1/db") val Postgres = JdbcDialects.get("jdbc:postgresql://127.0.0.1/db") From ebe4b93955d7c5f00634c7f6515368af31d08d50 Mon Sep 17 00:00:00 2001 From: "Zhu, Lipeng" Date: Fri, 15 Mar 2019 09:53:25 +0800 Subject: [PATCH 2/2] File line length exceeds 100 characters --- .../scala/org/apache/spark/sql/jdbc/JDBCSuite.scala | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/sql/core/src/test/scala/org/apache/spark/sql/jdbc/JDBCSuite.scala b/sql/core/src/test/scala/org/apache/spark/sql/jdbc/JDBCSuite.scala index 43fb25b4d99c8..5f27e75addcff 100644 --- a/sql/core/src/test/scala/org/apache/spark/sql/jdbc/JDBCSuite.scala +++ b/sql/core/src/test/scala/org/apache/spark/sql/jdbc/JDBCSuite.scala @@ -887,10 +887,14 @@ class JDBCSuite extends QueryTest test("MsSqlServerDialect jdbc type mapping") { val msSqlServerDialect = JdbcDialects.get("jdbc:sqlserver") - assert(msSqlServerDialect.getJDBCType(TimestampType).map(_.databaseTypeDefinition).get == "DATETIME") - assert(msSqlServerDialect.getJDBCType(StringType).map(_.databaseTypeDefinition).get == "NVARCHAR(MAX)") - assert(msSqlServerDialect.getJDBCType(BooleanType).map(_.databaseTypeDefinition).get == "BIT") - assert(msSqlServerDialect.getJDBCType(BinaryType).map(_.databaseTypeDefinition).get == "VARBINARY(MAX)") + assert(msSqlServerDialect.getJDBCType(TimestampType).map(_.databaseTypeDefinition).get == + "DATETIME") + assert(msSqlServerDialect.getJDBCType(StringType).map(_.databaseTypeDefinition).get == + "NVARCHAR(MAX)") + assert(msSqlServerDialect.getJDBCType(BooleanType).map(_.databaseTypeDefinition).get == + "BIT") + assert(msSqlServerDialect.getJDBCType(BinaryType).map(_.databaseTypeDefinition).get == + "VARBINARY(MAX)") } test("table exists query by jdbc dialect") {