[
https://issues.apache.org/jira/browse/CALCITE-5852?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
hongyu guo updated CALCITE-5852:
--------------------------------
Description:
In Calcite, MERGE INTO statement:
{code:sql}
merge:
MERGE INTO tablePrimary [ [ AS ] alias ]
USING tablePrimary
ON booleanExpression
[ WHEN MATCHED THEN UPDATE SET assign [, assign ]* ]
[ WHEN NOT MATCHED THEN INSERT VALUES '(' value [ , value ]* ')' ]
{code}
SQL-2011 and postgres support for <merge when clause>:
{code:sql}
-- when matched clause
WHEN MATCHED [ AND <search condition> ]
THEN <merge update or delete specification>
-- when not matched clause
WHEN NOT MATCHED [ AND <search condition> ]
THEN <merge insert specification>
{code}
was:
In Calcite, MERGE INTO statement:
{code:sql}
merge:
MERGE INTO tablePrimary [ [ AS ] alias ]
USING tablePrimary
ON booleanExpression
[ WHEN MATCHED THEN UPDATE SET assign [, assign ]* ]
[ WHEN NOT MATCHED THEN INSERT VALUES '(' value [ , value ]* ')' ]
{code}
SQL-2011 and postgres support for <merge when clause>:
{code:sql}
-- when matched clause
WHEN MATCHED [ AND <search condition> ]
THEN <merge update or delete specification>
-- when not matched clause
WHEN NOT MATCHED [ AND <search condition> ]
THEN <merge insert specification>
{code}
So there are 2 part calcite need to do for this case:
* Add <search_condition> for when clause
* Support <merge delete specification> for <when matched clause>
> Enhance MERGE INTO statement
> ----------------------------
>
> Key: CALCITE-5852
> URL: https://issues.apache.org/jira/browse/CALCITE-5852
> Project: Calcite
> Issue Type: Improvement
> Reporter: hongyu guo
> Assignee: hongyu guo
> Priority: Major
>
> In Calcite, MERGE INTO statement:
> {code:sql}
> merge:
> MERGE INTO tablePrimary [ [ AS ] alias ]
> USING tablePrimary
> ON booleanExpression
> [ WHEN MATCHED THEN UPDATE SET assign [, assign ]* ]
> [ WHEN NOT MATCHED THEN INSERT VALUES '(' value [ , value ]* ')' ]
> {code}
> SQL-2011 and postgres support for <merge when clause>:
> {code:sql}
> -- when matched clause
> WHEN MATCHED [ AND <search condition> ]
> THEN <merge update or delete specification>
> -- when not matched clause
> WHEN NOT MATCHED [ AND <search condition> ]
> THEN <merge insert specification>
> {code}
--
This message was sent by Atlassian Jira
(v8.20.10#820010)