This is an automated email from the ASF dual-hosted git repository.

srowen pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/spark.git


The following commit(s) were added to refs/heads/master by this push:
     new 8ee09f2  [SPARK-27159][SQL] update mssql server dialect to support 
binary type
8ee09f2 is described below

commit 8ee09f26d51dd0acdbada9c4d3d2baee05a7f786
Author: Zhu, Lipeng <lip...@ebay.com>
AuthorDate: Fri Mar 15 20:21:59 2019 -0500

    [SPARK-27159][SQL] update mssql server dialect to support binary type
    
    ## What changes were proposed in this pull request?
    
    Change the binary type mapping from default blob to varbinary(max) for 
mssql server.
    
https://docs.microsoft.com/en-us/sql/t-sql/data-types/binary-and-varbinary-transact-sql?view=sql-server-2017
    
![image](https://user-images.githubusercontent.com/698621/54351715-0e8c8780-468b-11e9-8931-7ecb85c5ad6b.png)
    
    ## How was this patch tested?
    
    Unit test.
    
    Closes #24091 from lipzhu/SPARK-27159.
    
    Authored-by: Zhu, Lipeng <lip...@ebay.com>
    Signed-off-by: Sean Owen <sean.o...@databricks.com>
---
 .../scala/org/apache/spark/sql/jdbc/MsSqlServerDialect.scala |  1 +
 .../src/test/scala/org/apache/spark/sql/jdbc/JDBCSuite.scala | 12 ++++++++++++
 2 files changed, 13 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 da787b4..29500cf 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 a4dc537..5f27e75 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,18 @@ 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")


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscr...@spark.apache.org
For additional commands, e-mail: commits-h...@spark.apache.org

Reply via email to