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)