Repository: spark Updated Branches: refs/heads/branch-2.0 27e274c3e -> 2280ad8a3
[SPARK-15749][SQL] make the error message more meaningful ## What changes were proposed in this pull request? For table test1 (C1 varchar (10), C2 varchar (10)), when I insert a row using ``` sqlContext.sql("insert into test1 values ('abc', 'def', 1)") ``` I got error message ``` Exception in thread "main" java.lang.RuntimeException: RelationC1#0,C2#1 JDBCRelation(test1) requires that the query in the SELECT clause of the INSERT INTO/OVERWRITE statement generates the same number of columns as its schema. ``` The error message is a little confusing. In my simple insert statement, it doesn't have a SELECT clause. I will change the error message to a more general one ``` Exception in thread "main" java.lang.RuntimeException: RelationC1#0,C2#1 JDBCRelation(test1) requires that the data to be inserted have the same number of columns as the target table. ``` ## How was this patch tested? I tested the patch using my simple unit test, but it's a very trivial change and I don't think I need to check in any test. Author: Huaxin Gao <huax...@us.ibm.com> Closes #13492 from huaxingao/spark-15749. (cherry picked from commit 62d2fa5e996d428caaea005041b17ec115473762) Signed-off-by: Andrew Or <and...@databricks.com> Project: http://git-wip-us.apache.org/repos/asf/spark/repo Commit: http://git-wip-us.apache.org/repos/asf/spark/commit/2280ad8a Tree: http://git-wip-us.apache.org/repos/asf/spark/tree/2280ad8a Diff: http://git-wip-us.apache.org/repos/asf/spark/diff/2280ad8a Branch: refs/heads/branch-2.0 Commit: 2280ad8a3ddfff0b7cc10de6eadb2cc93423bbcf Parents: 27e274c Author: Huaxin Gao <huax...@us.ibm.com> Authored: Thu Jun 16 14:37:10 2016 -0700 Committer: Andrew Or <and...@databricks.com> Committed: Thu Jun 16 14:37:19 2016 -0700 ---------------------------------------------------------------------- .../org/apache/spark/sql/execution/datasources/rules.scala | 5 +++-- .../test/scala/org/apache/spark/sql/sources/InsertSuite.scala | 2 +- 2 files changed, 4 insertions(+), 3 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/spark/blob/2280ad8a/sql/core/src/main/scala/org/apache/spark/sql/execution/datasources/rules.scala ---------------------------------------------------------------------- diff --git a/sql/core/src/main/scala/org/apache/spark/sql/execution/datasources/rules.scala b/sql/core/src/main/scala/org/apache/spark/sql/execution/datasources/rules.scala index 7ac62fb..543389e 100644 --- a/sql/core/src/main/scala/org/apache/spark/sql/execution/datasources/rules.scala +++ b/sql/core/src/main/scala/org/apache/spark/sql/execution/datasources/rules.scala @@ -78,8 +78,9 @@ private[sql] object PreInsertCastAndRename extends Rule[LogicalPlan] { // schema of the relation. if (l.output.size != child.output.size) { sys.error( - s"$l requires that the query in the SELECT clause of the INSERT INTO/OVERWRITE " + - s"statement generates the same number of columns as its schema.") + s"$l requires that the data to be inserted have the same number of columns as the " + + s"target table: target table has ${l.output.size} column(s) but " + + s"the inserted data has ${child.output.size} column(s).") } castAndRenameChildOutput(i, l.output, child) } http://git-wip-us.apache.org/repos/asf/spark/blob/2280ad8a/sql/core/src/test/scala/org/apache/spark/sql/sources/InsertSuite.scala ---------------------------------------------------------------------- diff --git a/sql/core/src/test/scala/org/apache/spark/sql/sources/InsertSuite.scala b/sql/core/src/test/scala/org/apache/spark/sql/sources/InsertSuite.scala index bade41b..d717955 100644 --- a/sql/core/src/test/scala/org/apache/spark/sql/sources/InsertSuite.scala +++ b/sql/core/src/test/scala/org/apache/spark/sql/sources/InsertSuite.scala @@ -95,7 +95,7 @@ class InsertSuite extends DataSourceTest with SharedSQLContext { """.stripMargin) }.getMessage assert( - message.contains("generates the same number of columns as its schema"), + message.contains("requires that the data to be inserted have the same number of columns"), "SELECT clause generating a different number of columns should not be not allowed." ) } --------------------------------------------------------------------- To unsubscribe, e-mail: commits-unsubscr...@spark.apache.org For additional commands, e-mail: commits-h...@spark.apache.org