Tanuj Khurana created PHOENIX-7509:
--------------------------------------
Summary: Metadata Cache should handle tables which have
LAST_DDL_TIMESTAMP column null in syscat
Key: PHOENIX-7509
URL: https://issues.apache.org/jira/browse/PHOENIX-7509
Project: Phoenix
Issue Type: Bug
Reporter: Tanuj Khurana
PHOENIX-6883 re-designed the Phoenix metadata cache. It relies upon the
LAST_DDL_TIMESTAMP column. However, in some scenarios where the table
pre-existed before this column was introduced and there hasn't been any DDL
change on that table this column will have a null value. If the ddl timestamp
validation is enabled, then we get a NPE when querying such tables.
In my test, I got the below NPE
{code:java}
2025-01-16 13:50:06,084 ERROR ValidateLastDDLTimestampUtil - Error in
validating DDL timestamp for Tenant: null, {Schema: TEST, Table: N000001},
org.apache.phoenix.exception.PhoenixIOException
at
org.apache.phoenix.util.ClientUtil.parseServerException(ClientUtil.java:70)
at
org.apache.phoenix.util.ValidateLastDDLTimestampUtil.validateLastDDLTimestamp(ValidateLastDDLTimestampUtil.java:121)
at
org.apache.phoenix.util.ValidateLastDDLTimestampUtil.validateLastDDLTimestamp(ValidateLastDDLTimestampUtil.java:130)
at
org.apache.phoenix.jdbc.PhoenixStatement$1.call(PhoenixStatement.java:390)
at
org.apache.phoenix.jdbc.PhoenixStatement$1.call(PhoenixStatement.java:352)
at org.apache.phoenix.call.CallRunner.run(CallRunner.java:53)
at
org.apache.phoenix.jdbc.PhoenixStatement.executeQuery(PhoenixStatement.java:352)
at
org.apache.phoenix.jdbc.PhoenixStatement.executeQuery(PhoenixStatement.java:334)
at
org.apache.phoenix.jdbc.PhoenixStatement.executeQuery(PhoenixStatement.java:2295)
at
org.apache.phoenix.end2end.PhoenixStandaloneClient.testConnection(PhoenixStandaloneClient.java:25)
at
org.apache.phoenix.end2end.PhoenixStandaloneClient.main(PhoenixStandaloneClient.java:15)
Caused by: java.lang.NullPointerException
at
org.apache.phoenix.util.ValidateLastDDLTimestampUtil.getValidateDDLTimestampRequest(ValidateLastDDLTimestampUtil.java:173)
at
org.apache.phoenix.util.ValidateLastDDLTimestampUtil.validateLastDDLTimestamp(ValidateLastDDLTimestampUtil.java:118)
... 9 more {code}
--
This message was sent by Atlassian Jira
(v8.20.10#820010)