Github user gatorsmile commented on a diff in the pull request:

    https://github.com/apache/spark/pull/20133#discussion_r159431206
  
    --- Diff: 
sql/core/src/main/scala/org/apache/spark/sql/execution/SparkSqlParser.scala ---
    @@ -1104,28 +1118,36 @@ class SparkSqlAstBuilder(conf: SQLConf) extends 
AstBuilder(conf) {
             "CREATE TEMPORARY TABLE is not supported yet. " +
               "Please use CREATE TEMPORARY VIEW as an alternative.", ctx)
         }
    -    if (ctx.skewSpec != null) {
    +    if (ctx.skewSpec.size > 0) {
           operationNotAllowed("CREATE TABLE ... SKEWED BY", ctx)
         }
     
    +    checkDuplicateClauses(ctx.TBLPROPERTIES, "TBLPROPERTIES", ctx)
    +    checkDuplicateClauses(ctx.PARTITIONED, "PARTITIONED BY", ctx)
    +    checkDuplicateClauses(ctx.COMMENT, "COMMENT", ctx)
    +    checkDuplicateClauses(ctx.bucketSpec(), "CLUSTERED BY", ctx)
    +    checkDuplicateClauses(ctx.createFileFormat, "STORED AS/BY", ctx)
    +    checkDuplicateClauses(ctx.rowFormat, "ROW FORMAT", ctx)
    +    checkDuplicateClauses(ctx.locationSpec, "LOCATION", ctx)
    +
         val dataCols = Option(ctx.columns).map(visitColTypeList).getOrElse(Nil)
         val partitionCols = 
Option(ctx.partitionColumns).map(visitColTypeList).getOrElse(Nil)
    -    val properties = 
Option(ctx.tablePropertyList).map(visitPropertyKeyValues).getOrElse(Map.empty)
    +    val properties = 
Option(ctx.tableProps).map(visitPropertyKeyValues).getOrElse(Map.empty)
    --- End diff --
    
    The last one, if we have multiple clauses. However, we blocks this in the 
above checks. 


---

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

Reply via email to