Brian Esserlieu created PHOENIX-3056:
----------------------------------------
Summary: Incorrect error message when deleting a record from table
with async index creation in progress
Key: PHOENIX-3056
URL: https://issues.apache.org/jira/browse/PHOENIX-3056
Project: Phoenix
Issue Type: Bug
Affects Versions: 4.7.0
Reporter: Brian Esserlieu
Priority: Minor
Repro:
DROP TABLE IF EXISTS TEST_TABLE;
CREATE TABLE IF NOT EXISTS TEST_TABLE (
pk1 VARCHAR NOT NULL,
pk2 VARCHAR NOT NULL,
pk3 VARCHAR
CONSTRAINT PK PRIMARY KEY
(
pk1,
pk2,
pk3
)
) MULTI_TENANT=true,IMMUTABLE_ROWS=true;
CREATE INDEX TEST_INDEX ON TEST_TABLE (pk3, pk2) ASYNC;
upsert into TEST_TABLE (pk1, pk2, pk3) values ('a', '1', 'value1');
upsert into TEST_TABLE (pk1, pk2, pk3) values ('a', '2', 'value2');
select * from test_table;
delete from TEST_TABLE where pk1 = 'a';
When I run the above I get the following error on the delete statement:
"Error: ERROR 1027 (42Y86): All columns referenced in a WHERE clause must be
available in every index for a table with immutable rows. tableName=TEST_TABLE
SQLState: 42Y86
ErrorCode: 1027
Error occurred in:
delete from TEST_TABLE where pk1 = 'a'"
Notice the SQL works simply by removing the ASYNC keyword from the index
creation statement.
The error message should reflect that the index is being created so deletes are
blocked until that completes.
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)