[ https://issues.apache.org/jira/browse/PHOENIX-5581?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Chinmay Kulkarni updated PHOENIX-5581: -------------------------------------- Fix Version/s: (was: 5.1.0) (was: 4.15.0) > Cannot create a grandchild view with condition on newly added view column > when the base table has an index > ---------------------------------------------------------------------------------------------------------- > > Key: PHOENIX-5581 > URL: https://issues.apache.org/jira/browse/PHOENIX-5581 > Project: Phoenix > Issue Type: Bug > Reporter: Swaroopa Kadam > Priority: Major > > CREATE TABLE IF NOT EXISTS TEST (ID INTEGER NOT NULL PRIMARY KEY, HOST > VARCHAR(10)); > CREATE INDEX I ON TEST(HOST); > -- create updatable view (equality condition in where clause) > CREATE VIEW V1 (col1 INTEGER) AS SELECT * FROM TEST WHERE ID=15; > CREATE VIEW GRAND_CHILD_V1 AS SELECT * FROM V1 WHERE col1 > 2; > -- Note that the where clause of the grandchild view is a condition on the > new view column > > The last step fails with the following exception: > > *Error: ERROR 504 (42703): Undefined column. columnName=V1#I.0:COL1 > (state=42703,code=504)* > org.apache.phoenix.schema.ColumnNotFoundException: ERROR 504 (42703): > Undefined column. columnName=V1#I.0:COL1 > at > org.apache.phoenix.schema.PTableImpl.getColumnForColumnName(PTableImpl.java:1076) > at > org.apache.phoenix.compile.FromCompiler$SingleTableColumnResolver.resolveColumn(FromCompiler.java:528) > at > org.apache.phoenix.compile.ExpressionCompiler.resolveColumn(ExpressionCompiler.java:368) > at > org.apache.phoenix.compile.WhereCompiler$WhereExpressionCompiler.resolveColumn(WhereCompiler.java:191) > at > org.apache.phoenix.compile.WhereCompiler$WhereExpressionCompiler.visit(WhereCompiler.java:177) > at > org.apache.phoenix.compile.WhereCompiler$WhereExpressionCompiler.visit(WhereCompiler.java:164) > at org.apache.phoenix.parse.ColumnParseNode.accept(ColumnParseNode.java:56) > at > org.apache.phoenix.parse.CompoundParseNode.acceptChildren(CompoundParseNode.java:64) > at org.apache.phoenix.parse.CastParseNode.accept(CastParseNode.java:60) > at > org.apache.phoenix.parse.CompoundParseNode.acceptChildren(CompoundParseNode.java:64) > at > org.apache.phoenix.parse.ComparisonParseNode.accept(ComparisonParseNode.java:45) > at > org.apache.phoenix.parse.CompoundParseNode.acceptChildren(CompoundParseNode.java:64) > at org.apache.phoenix.parse.AndParseNode.accept(AndParseNode.java:47) > at org.apache.phoenix.compile.WhereCompiler.compile(WhereCompiler.java:94) > at org.apache.phoenix.util.IndexUtil.rewriteViewStatement(IndexUtil.java:549) > at org.apache.phoenix.util.ViewUtil.addIndexesFromParent(ViewUtil.java:328) > at > org.apache.phoenix.util.ViewUtil.addDerivedColumnsAndIndexesFromParent(ViewUtil.java:576) > at > org.apache.phoenix.schema.MetaDataClient.addColumnsAndIndexesFromAncestors(MetaDataClient.java:868) > at > org.apache.phoenix.schema.MetaDataClient.addTableToCache(MetaDataClient.java:4487) > at > org.apache.phoenix.schema.MetaDataClient.addTableToCache(MetaDataClient.java:4483) > at > org.apache.phoenix.schema.MetaDataClient.createTableInternal(MetaDataClient.java:3013) > at > org.apache.phoenix.schema.MetaDataClient.createTable(MetaDataClient.java:1058) > at > org.apache.phoenix.compile.CreateTableCompiler$1.execute(CreateTableCompiler.java:217) > at org.apache.phoenix.jdbc.PhoenixStatement$2.call(PhoenixStatement.java:411) > at org.apache.phoenix.jdbc.PhoenixStatement$2.call(PhoenixStatement.java:394) > at org.apache.phoenix.call.CallRunner.run(CallRunner.java:53) > at > org.apache.phoenix.jdbc.PhoenixStatement.executeMutation(PhoenixStatement.java:393) > at > org.apache.phoenix.jdbc.PhoenixStatement.executeMutation(PhoenixStatement.java:381) > at > org.apache.phoenix.jdbc.PhoenixStatement.execute(PhoenixStatement.java:1843) > > *However, the header rows for the grandchild view are still created in > SYSTEM.CATALOG.* -- This message was sent by Atlassian Jira (v8.3.4#803005)