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

James Taylor updated PHOENIX-1436:
----------------------------------
    Attachment: PHOENIX-1436_v2.patch

Attaching patch that fixes issue. Unit tests (including this new one) pass with 
this fix.

[~rajesh23] - you added the line I've removed here: 
https://github.com/apache/phoenix/commit/fdfcbfe338e654b2b13cf6fc6057877bd6093497.
 That line isn't correct, as if one index uses more row key columns than 
another, it should have precedence. Only if they're the same, would you want to 
execute the additional logic that you added.

Please review.

> the choice of index by phoneix is not correct where do querying
> ---------------------------------------------------------------
>
>                 Key: PHOENIX-1436
>                 URL: https://issues.apache.org/jira/browse/PHOENIX-1436
>             Project: Phoenix
>          Issue Type: Bug
>    Affects Versions: 4.1
>         Environment: phoenix4.1
> HBase 0.98.6
> hadoop 1.2.1
>            Reporter: xufeng
>            Assignee: rajeshbabu
>             Fix For: 5.0.0, 4.3, 3.3
>
>         Attachments: PHOENIX-1436.patch, PHOENIX-1436_v2.patch
>
>
> 1.create INDEX_TEST_TABLE:
> create table index_test_table (a varchar not null,b varchar not null,c 
> varchar not null,d varchar,e varchar, f varchar constraint pk primary 
> key(a,b,c));
> 2.upsert some data into table.
> 3.create index on 'D' and 'F'
>  create index INDEX_TEST_TABLE_INDEX_D on INDEX_TEST_TABLE(A,D) 
> include(B,C,E,F);
>  5 rows affected (0.747 seconds) 
> 0: jdbc:phoenix:10.20.14.35:2181> create index INDEX_TEST_TABLE_INDEX_F on 
> INDEX_TEST_TABLE(A,F) include(B,C,D,E); 
> 5 rows affected (0.748 seconds)
> 4.query data on 'D'
> explain select * from INDEX_TEST_TABLE where A in ('1','2','3','4','5') and D 
> in ('1111','2222','3333');
> 5. it is ok:
> CLIENT PARALLEL 1-WAY SKIP SCAN ON 15 KEYS OVER INDEX_TEST_TABLE_INDEX_D 
> ['1','1111'] - ['5','3333']
> 6. but query data on 'F'
> explain select * from INDEX_TEST_TABLE where A in ('1','2','3','4','5') and F 
> in ('1111','2222','3333');
> 7. also use the index on 'D' and set filter on 'F'
> CLIENT PARALLEL 1-WAY SKIP SCAN ON 5 KEYS OVER INDEX_TEST_TABLE_INDEX_D ['1'] 
> - ['5'] |
> SERVER FILTER BY F IN ('1111','2222','3333') |
> is this a bug in 4.1 version??



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

Reply via email to