You are viewing a plain text version of this content. The canonical link for it is here.
Posted to reviews@spark.apache.org by GitBox <gi...@apache.org> on 2019/08/13 02:50:01 UTC

[GitHub] [spark] lidinghao commented on a change in pull request #25390: [SPARK-28662] [SQL] Create Hive Partitioned Table DDL should fail when partition column type missed

lidinghao commented on a change in pull request #25390: [SPARK-28662] [SQL] Create Hive Partitioned Table  DDL should fail  when partition column type missed
URL: https://github.com/apache/spark/pull/25390#discussion_r313013957
 
 

 ##########
 File path: sql/core/src/main/scala/org/apache/spark/sql/execution/SparkSqlParser.scala
 ##########
 @@ -985,7 +985,15 @@ class SparkSqlAstBuilder(conf: SQLConf) extends AstBuilder(conf) {
         } else {
           CreateTable(tableDescWithPartitionColNames, mode, Some(q))
         }
-      case None => CreateTable(tableDesc, mode, None)
+      case None =>
 
 Review comment:
   Hi, Yuanjian, I have tried some solutions which fix this case in SqlBase.g4 before and after this PR submitted, but the result isn't good, here is  the summary of all the solutions.
   
   If we try to  fix this in SqlBase.g4 , i.e. during syntax analysis phase,  we have to  change createHiveTable syntax description to make Antlr split the analysis path into two branch,  one for CTAS  which accept syntax  that define partition column without data type and must have a AS query sub-clause at end of the DDL sentence.  Another  branch for  CT which accept syntax  that define partition column with data type and cannot  have a AS query sub-clause at end of the DDL sentence. 
   
   When user use a illegal CT DDL with partition columns data type missed, the syntax analyzer will match this  with first branch, and give a misleading  error messages for user. And if user use CTAS DDL  but has partition columns data type defined,  the syntax analyzer will match this  with second branch, also give misleading error messages.
   
   If we fix this in SparkSqlParser,   i.e. during semantic analysis phase,  we can not only hand the illegal CTAS&CT DDL case as Antlr,  but also give user a explicit and useful error message.

----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
 
For queries about this service, please contact Infrastructure at:
users@infra.apache.org


With regards,
Apache Git Services

---------------------------------------------------------------------
To unsubscribe, e-mail: reviews-unsubscribe@spark.apache.org
For additional commands, e-mail: reviews-help@spark.apache.org