[ 
https://issues.apache.org/jira/browse/CALCITE-7208?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=18023908#comment-18023908
 ] 

Sergey Nuyanzin commented on CALCITE-7208:
------------------------------------------

I was thinking of core parser since ideally we want to have it in Flink as well 
as part of 
(https://cwiki.apache.org/confluence/display/FLINK/FLIP-546%3A+Introduce+CREATE+OR+ALTER+for+Materialized+Tables)
  where reasoning for syntax is similar to Snowflake's one.
Also same {{CREATE OR ALTER}} is available 
for other vendors like 
MSSQL 
(https://learn.microsoft.com/en-us/sql/t-sql/statements/create-procedure-transact-sql?view=sql-server-ver16),
 
Firebird 
(https://www.firebirdsql.org/file/documentation/chunk/en/refdocs/fblangref50/fblangref50-ddl-procedure.html#fblangref50-ddl-proc-crtoralter)

> Allow CREATE OR ALTER in parser
> -------------------------------
>
>                 Key: CALCITE-7208
>                 URL: https://issues.apache.org/jira/browse/CALCITE-7208
>             Project: Calcite
>          Issue Type: Improvement
>          Components: core
>            Reporter: Sergey Nuyanzin
>            Priority: Major
>
> Currently there is 
> {code:sql}
>     <CREATE> { s = span(); }
>     [
>         <OR> <REPLACE> {
>             replace = true;
>         }
>     ]
> {code}
> in parser
> https://github.com/apache/calcite/blob/9014934d8c24a5242a6840efe20134e820426c24/core/src/main/codegen/templates/Parser.jj#L4441-L4446
> . 
> And this disallows to have custom implementation in parser for other than 
> {{CREATE OR REPLACE}} operations like {{CREATE OR ALTER}} (e.g. Snowflake 
> dialect https://docs.snowflake.com/en/sql-reference/sql/create-or-alter) .
> I see 2 options: either add one more {{lookahead}} and allow downstream 
> project to have it or add it in Calcite and instead of {{boolean}} 
> {{replace}} started having enum for that



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to