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)

Reply via email to