Repository: spark
Updated Branches:
  refs/heads/branch-1.4 a9b1b8025 -> 9d8404bf8


[SPARK-12941][SQL][BRANCH-1.4] Spark-SQL JDBC Oracle dialect fails to map 
string datatypes to Oracle VARCHAR datatype

Adding a getJDBCType() method to the JdbcDialects.scala which would create a 
VARCHAR type for Oracle create table operations.Currently the type TEXT is 
throwing exceptions which is incompatible to Oracle

Author: thomastechs <thomas.sebast...@tcs.com>

Closes #10912 from thomastechs/thomastechs-12941-branch.


Project: http://git-wip-us.apache.org/repos/asf/spark/repo
Commit: http://git-wip-us.apache.org/repos/asf/spark/commit/9d8404bf
Tree: http://git-wip-us.apache.org/repos/asf/spark/tree/9d8404bf
Diff: http://git-wip-us.apache.org/repos/asf/spark/diff/9d8404bf

Branch: refs/heads/branch-1.4
Commit: 9d8404bf8a09348f57c4479e2b39c174dc2867d6
Parents: a9b1b80
Author: thomastechs <thomas.sebast...@tcs.com>
Authored: Mon Feb 29 12:38:30 2016 -0800
Committer: Yin Huai <yh...@databricks.com>
Committed: Mon Feb 29 12:38:30 2016 -0800

----------------------------------------------------------------------
 .../src/main/scala/org/apache/spark/sql/jdbc/JdbcDialects.scala | 5 +++++
 .../src/test/scala/org/apache/spark/sql/jdbc/JDBCSuite.scala    | 5 +++++
 2 files changed, 10 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/spark/blob/9d8404bf/sql/core/src/main/scala/org/apache/spark/sql/jdbc/JdbcDialects.scala
----------------------------------------------------------------------
diff --git 
a/sql/core/src/main/scala/org/apache/spark/sql/jdbc/JdbcDialects.scala 
b/sql/core/src/main/scala/org/apache/spark/sql/jdbc/JdbcDialects.scala
index 8ae87d8..1901343 100644
--- a/sql/core/src/main/scala/org/apache/spark/sql/jdbc/JdbcDialects.scala
+++ b/sql/core/src/main/scala/org/apache/spark/sql/jdbc/JdbcDialects.scala
@@ -247,4 +247,9 @@ case object OracleDialect extends JdbcDialect {
       None
     }
   }
+
+  override def getJDBCType(dt: DataType): Option[JdbcType] = dt match {
+    case StringType => Some(JdbcType("VARCHAR2(255)", java.sql.Types.VARCHAR))
+    case _ => None
+  }
 }

http://git-wip-us.apache.org/repos/asf/spark/blob/9d8404bf/sql/core/src/test/scala/org/apache/spark/sql/jdbc/JDBCSuite.scala
----------------------------------------------------------------------
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 de13633..f36cea0 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
@@ -445,4 +445,9 @@ class JDBCSuite extends SparkFunSuite with BeforeAndAfter {
     assert(agg.getCatalystType(1, "", 1, null) == Some(StringType))
   }
 
+  test("OracleDialect type mapping") {
+    val oracleDialect = JdbcDialects.get("jdbc:oracle://127.0.0.1/db")
+    assert(oracleDialect.getJDBCType(StringType).
+      map(_.databaseTypeDefinition).get == "VARCHAR2(255)")
+  }
 }


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

Reply via email to