You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@ignite.apache.org by "Maksim Zhuravkov (Jira)" <ji...@apache.org> on 2023/03/23 18:06:00 UTC

[jira] [Updated] (IGNITE-19116) Sql. UPDATE integer SET j = j + 1 fails with NPE

     [ https://issues.apache.org/jira/browse/IGNITE-19116?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Maksim Zhuravkov updated IGNITE-19116:
--------------------------------------
    Summary: Sql. UPDATE integer SET j = j + 1 fails with NPE  (was: Sql. UPDATE integer SET j = j + 1 WHERE i = 1 fails with NPE)

> Sql. UPDATE integer SET j = j + 1 fails with NPE
> ------------------------------------------------
>
>                 Key: IGNITE-19116
>                 URL: https://issues.apache.org/jira/browse/IGNITE-19116
>             Project: Ignite
>          Issue Type: Bug
>          Components: sql
>    Affects Versions: 3.0.0-beta2
>            Reporter: Maksim Zhuravkov
>            Priority: Major
>              Labels: ignite-3
>
> UPDATE statement fails with NPE
> {code:java}
>   @Test
>     public void test() {
>         sql("CREATE TABLE integers(i INTEGER PRIMARY KEY, j INTEGER)");
>         sql("UPDATE integer SET j = j + 1 WHERE i = 1");
>     }
> {code}
> Error:
> {code:java}
> java.lang.NullPointerException
> 	at org.apache.ignite.internal.sql.engine.prepare.IgniteSqlValidator.createSourceSelectForUpdate(IgniteSqlValidator.java:175)
> 	at org.apache.calcite.sql.validate.SqlValidatorImpl.performUnconditionalRewrites(SqlValidatorImpl.java:1476)
> 	at org.apache.ignite.internal.sql.engine.prepare.IgniteSqlValidator.performUnconditionalRewrites(IgniteSqlValidator.java:383)
> 	at org.apache.calcite.sql.validate.SqlValidatorImpl.validateScopedExpression(SqlValidatorImpl.java:1046)
> 	at org.apache.calcite.sql.validate.SqlValidatorImpl.validate(SqlValidatorImpl.java:759)
> 	at org.apache.ignite.internal.sql.engine.prepare.IgniteSqlValidator.validate(IgniteSqlValidator.java:135)
> 	at org.apache.ignite.internal.sql.engine.prepare.IgnitePlanner.validate(IgnitePlanner.java:189)
> {code}
> It seems that getCatalogReader().getTable(targetTable.names) returns null.
> {code:java}
> final SqlValidatorTable table = getCatalogReader().getTable(targetTable.names);
>  ...
> table.unwrap(IgniteTable.class).descriptor().selectForUpdateRowType((IgniteTypeFactory) typeFactory)
> {code}



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