[ 
https://issues.apache.org/jira/browse/PHOENIX-3056?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15366495#comment-15366495
 ] 

Lars Hofhansl commented on PHOENIX-3056:
----------------------------------------

bq. Issuing delete markers will work, though, as when the index becomes active, 
the delete markers have later timestamps than the rows being built so will 
overlay them.

Only if we tightly control major compactions.
If a compaction runs after the delete marker is placed but before the affected 
Cells are written we may lose the delete.


> 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
>            Assignee: James Taylor
>            Priority: Minor
>             Fix For: 4.8.0
>
>         Attachments: PHOENIX-3056_wip.patch
>
>
> 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