phoenix-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "James Taylor (JIRA)" <j...@apache.org>
Subject [jira] [Updated] (PHOENIX-3056) Incorrect error message when deleting a record from table with async index creation in progress
Date Thu, 07 Jul 2016 17:39:11 GMT

     [ https://issues.apache.org/jira/browse/PHOENIX-3056?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]

James Taylor updated PHOENIX-3056:
----------------------------------
    Attachment: PHOENIX-3056_wip.patch

Here's a patch that fill fix the issue, but needs a bit more on the testing side (see the
TODO). Without the fix, deletes from a table will fail if there are any immutable indexes
which are being built.

> 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)

Mime
View raw message