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

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

sorry, didn't notice your response

I would agree, however the main problem here we faced is this code in the 
Calcite's core
{code:sql}
<CREATE> { s = span(); }
    [
        <OR> <REPLACE> {
            replace = true;
        }
    ]
{code}

and it doesn't allow to have expressions like {{CREATE OR ALTER}}

I'm also ok to not add {{CREATE OR ALTER}} support in core, however then would 
propose putting at least {{LOOKAHEAD}}
in order to allow downstream projects to implement it

Does it make sense?

> 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