aboutsummaryrefslogtreecommitdiff
path: root/sql/core/src/test/scala
diff options
context:
space:
mode:
Diffstat (limited to 'sql/core/src/test/scala')
-rw-r--r--sql/core/src/test/scala/org/apache/spark/sql/jdbc/JDBCSuite.scala21
1 files changed, 21 insertions, 0 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 995b1200a2..2d8ee338a9 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
@@ -739,6 +739,27 @@ class JDBCSuite extends SparkFunSuite
map(_.databaseTypeDefinition).get == "VARCHAR2(255)")
}
+ test("SPARK-16625: General data types to be mapped to Oracle") {
+
+ def getJdbcType(dialect: JdbcDialect, dt: DataType): String = {
+ dialect.getJDBCType(dt).orElse(JdbcUtils.getCommonJDBCType(dt)).
+ map(_.databaseTypeDefinition).get
+ }
+
+ val oracleDialect = JdbcDialects.get("jdbc:oracle://127.0.0.1/db")
+ assert(getJdbcType(oracleDialect, BooleanType) == "NUMBER(1)")
+ assert(getJdbcType(oracleDialect, IntegerType) == "NUMBER(10)")
+ assert(getJdbcType(oracleDialect, LongType) == "NUMBER(19)")
+ assert(getJdbcType(oracleDialect, FloatType) == "NUMBER(19, 4)")
+ assert(getJdbcType(oracleDialect, DoubleType) == "NUMBER(19, 4)")
+ assert(getJdbcType(oracleDialect, ByteType) == "NUMBER(3)")
+ assert(getJdbcType(oracleDialect, ShortType) == "NUMBER(5)")
+ assert(getJdbcType(oracleDialect, StringType) == "VARCHAR2(255)")
+ assert(getJdbcType(oracleDialect, BinaryType) == "BLOB")
+ assert(getJdbcType(oracleDialect, DateType) == "DATE")
+ assert(getJdbcType(oracleDialect, TimestampType) == "TIMESTAMP")
+ }
+
private def assertEmptyQuery(sqlString: String): Unit = {
assert(sql(sqlString).collect().isEmpty)
}