[ https://issues.apache.org/jira/browse/PHOENIX-5960?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Viraj Jasani updated PHOENIX-5960: ---------------------------------- Attachment: PHOENIX-5960.4.x.000.patch > Creating a view on a non-existent table throws the wrong exception > ------------------------------------------------------------------ > > Key: PHOENIX-5960 > URL: https://issues.apache.org/jira/browse/PHOENIX-5960 > Project: Phoenix > Issue Type: Bug > Affects Versions: 4.15.0 > Reporter: Chinmay Kulkarni > Assignee: Viraj Jasani > Priority: Minor > Labels: beginner, newbie, phoenix-hardening, quality-improvement > Fix For: 5.1.0, 4.16.0 > > Attachments: PHOENIX-5960.4.x.000.patch, PHOENIX-5960.master.000.patch > > Time Spent: 50m > Remaining Estimate: 0h > > Ran across this by accident as a result of a typo in my create view statement: > # CREATE TABLE IF NOT EXISTS *T1* (A INTEGER PRIMARY KEY, B INTEGER); > # CREATE VIEW IF NOT EXISTS V (new_col INTEGER) AS SELECT * FROM *T2*; > View creation fails with the following: > {noformat} > Error: ERROR 509 (42888): The table does not have a primary key. > (state=42888,code=509) > java.sql.SQLException: ERROR 509 (42888): The table does not have a primary > key. > at > org.apache.phoenix.exception.SQLExceptionCode$Factory$1.newException(SQLExceptionCode.java:575) > at > org.apache.phoenix.exception.SQLExceptionInfo.buildException(SQLExceptionInfo.java:195) > at > org.apache.phoenix.compile.CreateTableCompiler.compile(CreateTableCompiler.java:182) > at > org.apache.phoenix.jdbc.PhoenixStatement$ExecutableCreateTableStatement.compilePlan(PhoenixStatement.java:841) > at > org.apache.phoenix.jdbc.PhoenixStatement$ExecutableCreateTableStatement.compilePlan(PhoenixStatement.java:830) > at > org.apache.phoenix.jdbc.PhoenixStatement$2.call(PhoenixStatement.java:407) > at > org.apache.phoenix.jdbc.PhoenixStatement$2.call(PhoenixStatement.java:397) > at org.apache.phoenix.call.CallRunner.run(CallRunner.java:53) > at > org.apache.phoenix.jdbc.PhoenixStatement.executeMutation(PhoenixStatement.java:396) > at > org.apache.phoenix.jdbc.PhoenixStatement.executeMutation(PhoenixStatement.java:384) > at > org.apache.phoenix.jdbc.PhoenixStatement.execute(PhoenixStatement.java:1886) > at sqlline.Commands.execute(Commands.java:814) > at sqlline.Commands.sql(Commands.java:754) > at sqlline.SqlLine.dispatch(SqlLine.java:646) > at sqlline.SqlLine.begin(SqlLine.java:510) > at sqlline.SqlLine.start(SqlLine.java:233) > at sqlline.SqlLine.main(SqlLine.java:175) > {noformat} > Ideally, this should throw a TableNotFoundException. -- This message was sent by Atlassian Jira (v8.3.4#803005)