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

Maksim Zhuravkov commented on IGNITE-27398:
-------------------------------------------

Looks like this is caused by the fact that `IgniteSqlValidator` expands select 
list by adding virtual columns in `addToSelectList`.

> Sql. Remove workaround for UPDATE queries virtual columns validation bug 
> introduced in calcite 1.41
> ---------------------------------------------------------------------------------------------------
>
>                 Key: IGNITE-27398
>                 URL: https://issues.apache.org/jira/browse/IGNITE-27398
>             Project: Ignite
>          Issue Type: Improvement
>          Components: sql ai3
>            Reporter: Maksim Zhuravkov
>            Priority: Major
>              Labels: ignite-3
>
> Calcite 1.41 introduced an assertion that checks that the number of columns 
> in update list and the number of columns in a target table match. 
> Unfortunately, that check does not take into account virtual columns, so it 
> breaks validation of every single UPDATE query, because a table in apache 
> ignite has a virtual column that returns a partition identifier for a every 
> row.
> Code that raise that assertion error:
> {noformat}
> if (sourceSelect.getSelectList().size() 
>    != targetTable.getRowType().getFieldCount() + 
> call.getSourceExpressionList().size()) {
>     throw new AssertionError(
>        "Unexpected select list size. Select list should contain both target 
> table columns and "
>        + "set expressions");
> }
> {noformat}
> Remove the workaround, by removing convertUpdateFixed. 
> ---
> Calcite issue that might have introduced the bug is [CALCITE-7220] 
> RelToSqlConverter throws exception for UPDATE with self-referencing column in 
> SET - https://issues.apache.org/jira/browse/CALCITE-7220
> There was some fix later in that area of code later, but it didn't resolve 
> the issue [CALCITE-7276] SqlToRelConverter throws exception for UPDATE if 
> identifier expansion disabled - 
> https://issues.apache.org/jira/browse/CALCITE-7276.



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

Reply via email to