Ankit Singhal created PHOENIX-2973: -------------------------------------- Summary: Table can not be dropped if Local Index is created on view on multi-tenant table Key: PHOENIX-2973 URL: https://issues.apache.org/jira/browse/PHOENIX-2973 Project: Phoenix Issue Type: Bug Reporter: Ankit Singhal Assignee: Rajeshbabu Chintaguntla
Table can not be dropped(even with CASCADE option) if Local Index is created on view on multi-tenant table. Create multi-tenant table. {code} bin/sqlline.py "localhost" CREATE TABLE MT_BASE (PK1 VARCHAR not null, PK2 VARCHAR not null, MYCF1.COL1 varchar,MYCF2.COL2 varchar CONSTRAINT pk PRIMARY KEY(PK1,PK2)) MULTI_TENANT=true; UPSERT INTO MT_BASE values ('a','b','c','d'); CREATE VIEW acme AS SELECT * FROM MT_BASE; {code} Create local index with TenantId=a {code} bin/sqlline.py "localhost;TenantId=a" CREATE VIEW acme AS SELECT * FROM MT_BASE; create local index idx_acme on acme (COL1); {code} Try dropping a table,following exception will come {code} bin/sqlline.py "localhost" 0: jdbc:phoenix:localhost> drop table mt_base cascade; Error: ERROR 1012 (42M03): Table undefined. tableName=MT_BASE (state=42M03,code=1012) org.apache.phoenix.schema.TableNotFoundException: ERROR 1012 (42M03): Table undefined. tableName=MT_BASE at org.apache.phoenix.schema.MetaDataClient.dropTable(MetaDataClient.java:2555) at org.apache.phoenix.schema.MetaDataClient.dropTable(MetaDataClient.java:2475) at org.apache.phoenix.jdbc.PhoenixStatement$ExecutableDropTableStatement$1.execute(PhoenixStatement.java:888) at org.apache.phoenix.jdbc.PhoenixStatement$3.call(PhoenixStatement.java:343) at org.apache.phoenix.jdbc.PhoenixStatement$3.call(PhoenixStatement.java:1) at org.apache.phoenix.call.CallRunner.run(CallRunner.java:53) at org.apache.phoenix.jdbc.PhoenixStatement.executeMutation(PhoenixStatement.java:330) at org.apache.phoenix.jdbc.PhoenixStatement.execute(PhoenixStatement.java:1440) at sqlline.Commands.execute(Commands.java:822) at sqlline.Commands.sql(Commands.java:732) at sqlline.SqlLine.dispatch(SqlLine.java:807) at sqlline.SqlLine.begin(SqlLine.java:681) at sqlline.SqlLine.start(SqlLine.java:398) at sqlline.SqlLine.main(SqlLine.java:292) {code} Table can be drop only when all the views are dropped separately by opening connection with each tenantId. -- This message was sent by Atlassian JIRA (v6.3.4#6332)