Xinyi Yan created PHOENIX-5976:
----------------------------------
Summary: Cannot drop a column when the index is involved
Key: PHOENIX-5976
URL: https://issues.apache.org/jira/browse/PHOENIX-5976
Project: Phoenix
Issue Type: Improvement
Reporter: Xinyi Yan
This is how to reproduce it on the 4.x branch:
{code:java}
// create table
stmt.execute("CREATE TABLE IF NOT EXISTS DUMMY (ID CHAR(10) NOT NULL,KEY_PREFIX
CHAR(3) NOT NULL," +
" CONSTRAINT PK PRIMARY KEY (ID,KEY_PREFIX))");
// create view
stmt.execute(
"CREATE VIEW IF NOT EXISTS DUMMY_VIEW (PK1 DATE NOT NULL,PK2 CHAR(15)
NOT NULL," +
"NON_PK1 CHAR(15),NON_PK2 CHAR(15) CONSTRAINT PKVIEW PRIMARY
KEY (PK1,PK2)) " +
"AS SELECT * FROM DUMMY WHERE KEY_PREFIX = '123'");
// create index
stmt.execute("CREATE INDEX DUMMY_INDEX ON DUMMY_VIEW (PK2, PK1) INCLUDE
(NON_PK1, NON_PK2)");
// drop column
stmt.execute("ALTER VIEW DUMMY_VIEW DROP COLUMN IF EXISTS NON_PK1");
{code}
{code:java}
org.apache.hadoop.hbase.DoNotRetryIOException: ERROR 504 (42703): ERROR 504
(42703): Undefined column. columnName=0:NON_PK2
DUMMY_VIEWorg.apache.hadoop.hbase.DoNotRetryIOException: ERROR 504 (42703):
ERROR 504 (42703): Undefined column. columnName=0:NON_PK2 DUMMY_VIEW at
org.apache.phoenix.util.ServerUtil.createIOException(ServerUtil.java:114) at
org.apache.phoenix.util.ServerUtil.throwIOException(ServerUtil.java:88) at
org.apache.phoenix.coprocessor.MetaDataEndpointImpl.mutateColumn(MetaDataEndpointImpl.java:2823)
at
org.apache.phoenix.coprocessor.MetaDataEndpointImpl.dropColumn(MetaDataEndpointImpl.java:3026)
at
org.apache.phoenix.coprocessor.generated.MetaDataProtos$MetaDataService.callMethod(MetaDataProtos.java:17253)
at org.apache.hadoop.hbase.regionserver.HRegion.execService(HRegion.java:8523)
at
org.apache.hadoop.hbase.regionserver.RSRpcServices.execServiceOnRegion(RSRpcServices.java:2282)
at
org.apache.hadoop.hbase.regionserver.RSRpcServices.execService(RSRpcServices.java:2264)
at
org.apache.hadoop.hbase.protobuf.generated.ClientProtos$ClientService$2.callBlockingMethod(ClientProtos.java:36808)
at org.apache.hadoop.hbase.ipc.RpcServer.call(RpcServer.java:2399) at
org.apache.hadoop.hbase.ipc.CallRunner.run(CallRunner.java:124) at
org.apache.hadoop.hbase.ipc.RpcExecutor$Handler.run(RpcExecutor.java:311) at
org.apache.hadoop.hbase.ipc.RpcExecutor$Handler.run(RpcExecutor.java:291)Caused
by: org.apache.phoenix.schema.ColumnNotFoundException: ERROR 504 (42703):
Undefined column. columnName=0:NON_PK2 at
org.apache.phoenix.schema.PColumnFamilyImpl.getPColumnForColumnNameBytes(PColumnFamilyImpl.java:86)
at org.apache.phoenix.util.MetaDataUtil.getColumn(MetaDataUtil.java:982) at
org.apache.phoenix.coprocessor.DropColumnMutator.validateAndAddMetadata(DropColumnMutator.java:184)
at
org.apache.phoenix.coprocessor.MetaDataEndpointImpl.mutateColumn(MetaDataEndpointImpl.java:2719)
... 10 more
{code}
--
This message was sent by Atlassian Jira
(v8.3.4#803005)