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)