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)