diff options
author | Takeshi YAMAMURO <linguin.m.s@gmail.com> | 2015-12-28 21:28:32 -0800 |
---|---|---|
committer | Yin Huai <yhuai@databricks.com> | 2015-12-28 21:28:32 -0800 |
commit | 73862a1eb9744c3c32458c9c6f6431c23783786a (patch) | |
tree | 062bc9c5865ef0cfa916de5ee49aec3e615ed03c | |
parent | 1a91be807802ec88c068f1090dafe8fbfb1c6d5c (diff) | |
download | spark-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.scala | 1 | ||||
-rw-r--r-- | sql/core/src/test/scala/org/apache/spark/sql/jdbc/JDBCSuite.scala | 4 |
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") { |