aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTakeshi YAMAMURO <linguin.m.s@gmail.com>2015-12-28 21:28:32 -0800
committerYin Huai <yhuai@databricks.com>2015-12-28 21:28:32 -0800
commit73862a1eb9744c3c32458c9c6f6431c23783786a (patch)
tree062bc9c5865ef0cfa916de5ee49aec3e615ed03c
parent1a91be807802ec88c068f1090dafe8fbfb1c6d5c (diff)
downloadspark-73862a1eb9744c3c32458c9c6f6431c23783786a.tar.gz
spark-73862a1eb9744c3c32458c9c6f6431c23783786a.tar.bz2
spark-73862a1eb9744c3c32458c9c6f6431c23783786a.zip
[SPARK-11394][SQL] Throw IllegalArgumentException for unsupported types in postgresql
If DataFrame has BYTE types, throws an exception: org.postgresql.util.PSQLException: ERROR: type "byte" does not exist Author: Takeshi YAMAMURO <linguin.m.s@gmail.com> Closes #9350 from maropu/FixBugInPostgreJdbc.
-rw-r--r--sql/core/src/main/scala/org/apache/spark/sql/jdbc/PostgresDialect.scala1
-rw-r--r--sql/core/src/test/scala/org/apache/spark/sql/jdbc/JDBCSuite.scala4
2 files changed, 5 insertions, 0 deletions
diff --git a/sql/core/src/main/scala/org/apache/spark/sql/jdbc/PostgresDialect.scala b/sql/core/src/main/scala/org/apache/spark/sql/jdbc/PostgresDialect.scala
index 3cf80f576e..ad9e31690b 100644
--- a/sql/core/src/main/scala/org/apache/spark/sql/jdbc/PostgresDialect.scala
+++ b/sql/core/src/main/scala/org/apache/spark/sql/jdbc/PostgresDialect.scala
@@ -64,6 +64,7 @@ private object PostgresDialect extends JdbcDialect {
getJDBCType(et).map(_.databaseTypeDefinition)
.orElse(JdbcUtils.getCommonJDBCType(et).map(_.databaseTypeDefinition))
.map(typeName => JdbcType(s"$typeName[]", java.sql.Types.ARRAY))
+ case ByteType => throw new IllegalArgumentException(s"Unsupported type in postgresql: $dt");
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 7975c5df6c..4044a10ce7 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
@@ -482,6 +482,10 @@ class JDBCSuite extends SparkFunSuite
val Postgres = JdbcDialects.get("jdbc:postgresql://127.0.0.1/db")
assert(Postgres.getCatalystType(java.sql.Types.OTHER, "json", 1, null) === Some(StringType))
assert(Postgres.getCatalystType(java.sql.Types.OTHER, "jsonb", 1, null) === Some(StringType))
+ val errMsg = intercept[IllegalArgumentException] {
+ Postgres.getJDBCType(ByteType)
+ }
+ assert(errMsg.getMessage contains "Unsupported type in postgresql: ByteType")
}
test("DerbyDialect jdbc type mapping") {