You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@phoenix.apache.org by "James Taylor (JIRA)" <ji...@apache.org> on 2016/04/28 02:46:12 UTC

[jira] [Comment Edited] (PHOENIX-2783) Creating secondary index with duplicated columns makes the catalog corrupted

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

James Taylor edited comment on PHOENIX-2783 at 4/28/16 12:45 AM:
-----------------------------------------------------------------

Thanks for the patch, [~gsbiju] & [~sergey.soldatov]. This case is actually allowed, as columns that are part of the primary key constraint may have the same name as key value columns:
{quote}
2.2 Table create statement with duplicate columns of same data type
{noformat}
0: jdbc:phoenix:localhost:2181:/hbase> create table tbl1 (i integer not null primary key, i integer);
Error: ERROR 502 (42702): Column reference ambiguous or duplicate names. In create table columnName=TBL1.I (state=42702,code=502)
{noformat}
{quote}


was (Author: jamestaylor):
Thanks for the patch, [~gsbiju] & [~sergey.soldatov]. This case is actually allowed, as columns that are part of the primary key constraint may have the same name as key value columns:
{quote}
2.2 Table create statement with duplicate columns of same data type
{noformat}
0: jdbc:phoenix:localhost:2181:/hbase> create table tbl1 (i integer not null primary key, i integer);
Error: ERROR 502 (42702): Column reference ambiguous or duplicate names. In create table columnName=TBL1.I (state=42702,code=502)
{noformat}
{code}

> Creating secondary index with duplicated columns makes the catalog corrupted
> ----------------------------------------------------------------------------
>
>                 Key: PHOENIX-2783
>                 URL: https://issues.apache.org/jira/browse/PHOENIX-2783
>             Project: Phoenix
>          Issue Type: Bug
>    Affects Versions: 4.7.0
>            Reporter: Sergey Soldatov
>            Assignee: Sergey Soldatov
>         Attachments: PHOENIX-2783-1.patch, PHOENIX-2783-2.patch, PHOENIX-2783-3.patch, PHOENIX-2783-4.patch, PHOENIX-2783-INIT.patch
>
>
> Simple example
> {noformat}
> create table x (t1 varchar primary key, t2 varchar, t3 varchar);
> create index idx on x (t2) include (t1,t3,t3);
> {noformat}
> cause an exception that duplicated column was detected, but the client updates the catalog before throwing it and makes it unusable. All following attempt to use table x cause an exception ArrayIndexOutOfBounds. This problem was discussed on the user list recently. 
> The cause of the problem is that check for duplicated columns happen in PTableImpl after MetaDataClient complete the server createTable. 
> The simple way to fix is to add a similar check in MetaDataClient before createTable is called. 
> Possible someone can suggest a more elegant way to fix it? 



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)