Tejas,

This is because we use the same rule to parse top level and nested data
fields. For example:

create table tbl_x(
  id bigint,
  nested struct<col1:string,col2:string>
)

Shows both syntaxes. We should split this rule in a top-level and nested
rule.

Could you open a ticket?

Thanks,
Herman



On Thu, Sep 29, 2016 at 6:54 PM, Tejas Patil <tejas.patil...@gmail.com>
wrote:

> Is there any reason why Spark SQL supports "<column name>" ":" "<data
> type>" while specifying columns ? eg. sql("CREATE TABLE t1 (column1:INT)")
> works fine.
>
> Here is relevant snippet in the grammar [0]:
>
> ```
> colType
>     : identifier ':'? dataType (COMMENT STRING)?
>     ;
> ```
>
> I do not see MySQL[1], Hive[2], Presto[3] and PostgreSQL [4] supporting
> ":" while specifying columns. They all use space as a delimiter.
>
> [0] : https://github.com/apache/spark/blob/master/sql/
> catalyst/src/main/antlr4/org/apache/spark/sql/catalyst/
> parser/SqlBase.g4#L596
> [1] : http://dev.mysql.com/doc/refman/5.7/en/create-table.html
> [2] : https://cwiki.apache.org/confluence/display/Hive/LanguageManual+DDL#
> LanguageManualDDL-CreateTable
> [3] : https://prestodb.io/docs/current/sql/create-table.html
> [4] : https://www.postgresql.org/docs/9.1/static/sql-createtable.html
>
> Thanks,
> Tejas
>
>

Reply via email to