Skip to content

Commit

Permalink
follow up
Browse files Browse the repository at this point in the history
  • Loading branch information
allisonwang-db committed Jun 20, 2024
1 parent 714699b commit 5fc1035
Show file tree
Hide file tree
Showing 3 changed files with 20 additions and 24 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -111,7 +111,7 @@ statement
(RESTRICT | CASCADE)? #dropNamespace
| SHOW namespaces ((FROM | IN) multipartIdentifier)?
(LIKE? pattern=stringLit)? #showNamespaces
| createTableHeader (LEFT_PAREN createOrReplaceTableColTypeList RIGHT_PAREN)? tableProvider?
| createTableHeader (LEFT_PAREN colDefinitionList RIGHT_PAREN)? tableProvider?
createTableClauses
(AS? query)? #createTable
| CREATE TABLE (IF errorCapturingNot EXISTS)? target=tableIdentifier
Expand All @@ -121,7 +121,7 @@ statement
createFileFormat |
locationSpec |
(TBLPROPERTIES tableProps=propertyList))* #createTableLike
| replaceTableHeader (LEFT_PAREN createOrReplaceTableColTypeList RIGHT_PAREN)? tableProvider?
| replaceTableHeader (LEFT_PAREN colDefinitionList RIGHT_PAREN)? tableProvider?
createTableClauses
(AS? query)? #replaceTable
| ANALYZE TABLE identifierReference partitionSpec? COMPUTE STATISTICS
Expand Down Expand Up @@ -1213,14 +1213,6 @@ colType
: colName=errorCapturingIdentifier dataType (errorCapturingNot NULL)? commentSpec?
;

createOrReplaceTableColTypeList
: createOrReplaceTableColType (COMMA createOrReplaceTableColType)*
;

createOrReplaceTableColType
: colName=errorCapturingIdentifier dataType colDefinitionOption*
;

colDefinitionList
: colDefinition (COMMA colDefinition)*
;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3269,24 +3269,24 @@ class AstBuilder extends DataTypeAstBuilder with SQLConfHelper with Logging {
/**
* Create top level table schema.
*/
protected def createSchema(ctx: CreateOrReplaceTableColTypeListContext): StructType = {
val columns = Option(ctx).toArray.flatMap(visitCreateOrReplaceTableColTypeList)
protected def createSchema(ctx: ColDefinitionListContext): StructType = {
val columns = Option(ctx).toArray.flatMap(visitColDefinitionList)
StructType(columns.map(_.toV1Column))
}

/**
* Get CREATE TABLE column definitions.
*/
override def visitCreateOrReplaceTableColTypeList(
ctx: CreateOrReplaceTableColTypeListContext): Seq[ColumnDefinition] = withOrigin(ctx) {
ctx.createOrReplaceTableColType().asScala.map(visitCreateOrReplaceTableColType).toSeq
override def visitColDefinitionList(
ctx: ColDefinitionListContext): Seq[ColumnDefinition] = withOrigin(ctx) {
ctx.colDefinition().asScala.map(visitColDefinition).toSeq
}

/**
* Get a CREATE TABLE column definition.
*/
override def visitCreateOrReplaceTableColType(
ctx: CreateOrReplaceTableColTypeContext): ColumnDefinition = withOrigin(ctx) {
override def visitColDefinition(
ctx: ColDefinitionContext): ColumnDefinition = withOrigin(ctx) {
import ctx._

val name: String = colName.getText
Expand Down Expand Up @@ -4113,8 +4113,7 @@ class AstBuilder extends DataTypeAstBuilder with SQLConfHelper with Logging {
val (identifierContext, temp, ifNotExists, external) =
visitCreateTableHeader(ctx.createTableHeader)

val columns = Option(ctx.createOrReplaceTableColTypeList())
.map(visitCreateOrReplaceTableColTypeList).getOrElse(Nil)
val columns = Option(ctx.colDefinitionList()).map(visitColDefinitionList).getOrElse(Nil)
val provider = Option(ctx.tableProvider).map(_.multipartIdentifier.getText)
val (partTransforms, partCols, bucketSpec, properties, options, location,
comment, serdeInfo, clusterBySpec) = visitCreateTableClauses(ctx.createTableClauses())
Expand Down Expand Up @@ -4195,8 +4194,7 @@ class AstBuilder extends DataTypeAstBuilder with SQLConfHelper with Logging {
val orCreate = ctx.replaceTableHeader().CREATE() != null
val (partTransforms, partCols, bucketSpec, properties, options, location, comment, serdeInfo,
clusterBySpec) = visitCreateTableClauses(ctx.createTableClauses())
val columns = Option(ctx.createOrReplaceTableColTypeList())
.map(visitCreateOrReplaceTableColTypeList).getOrElse(Nil)
val columns = Option(ctx.colDefinitionList()).map(visitColDefinitionList).getOrElse(Nil)
val provider = Option(ctx.tableProvider).map(_.multipartIdentifier.getText)

if (provider.isDefined && serdeInfo.isDefined) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -343,7 +343,7 @@ class SparkSqlAstBuilder extends AstBuilder {
visitCreateTableClauses(ctx.createTableClauses())
val provider = Option(ctx.tableProvider).map(_.multipartIdentifier.getText).getOrElse(
throw QueryParsingErrors.createTempTableNotSpecifyProviderError(ctx))
val schema = Option(ctx.createOrReplaceTableColTypeList()).map(createSchema)
val schema = Option(ctx.colDefinitionList()).map(createSchema)

logWarning(s"CREATE TEMPORARY TABLE ... USING ... is deprecated, please use " +
"CREATE TEMPORARY VIEW ... USING ... instead")
Expand Down Expand Up @@ -661,8 +661,14 @@ class SparkSqlAstBuilder extends AstBuilder {
* CREATE [OR REPLACE] [TEMPORARY] FUNCTION [IF NOT EXISTS] [db_name.]function_name
* ([param_name param_type [COMMENT param_comment], ...])
* RETURNS {ret_type | TABLE (ret_name ret_type [COMMENT ret_comment], ...])}
* [routine_characteristics]
* RETURN {expression | TABLE ( query )};
* [routine_characteristic]
* RETURN {expression | query };
*
* routine_characteristic
* { LANGUAGE {SQL | IDENTIFIER} |
* [NOT] DETERMINISTIC |
* COMMENT function_comment |
* [CONTAINS SQL | READS SQL DATA] }
* }}}
*/
override def visitCreateUserDefinedFunction(ctx: CreateUserDefinedFunctionContext): LogicalPlan =
Expand Down

0 comments on commit 5fc1035

Please sign in to comment.