[
https://issues.apache.org/jira/browse/PHOENIX-5960?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17241266#comment-17241266
]
ASF GitHub Bot commented on PHOENIX-5960:
-----------------------------------------
virajjasani closed pull request #989:
URL: https://github.com/apache/phoenix/pull/989
----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
For queries about this service, please contact Infrastructure at:
[email protected]
> 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)