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] [Created] (IGNITE-19116) Sql. UPDATE integer SET j = j + 1 WHERE i = 1 fails with NPE

Maksim Zhuravkov created IGNITE-19116:
-----------------------------------------

             Summary: Sql. UPDATE integer SET j = j + 1 WHERE i = 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


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)