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

Samarth Jain commented on PHOENIX-1298:
---------------------------------------

Thanks for the quick turnaround on this [~jamestaylor]

However, I still see that the test case mentioned here fails. I had updated the 
test case (you probably didn't refresh the page) to illustrate that the problem 
is not necessarily with RVCs, but with indexes on fixed width columns in 
general. 

{code}
@Test
    public void testQueryPlanForQueryUsingIndexOnFixedWidthColumn() throws 
Exception {
        Connection conn = DriverManager.getConnection(getUrl());
        conn.createStatement().execute("CREATE TABLE T (k VARCHAR NOT NULL 
PRIMARY KEY, v1 CHAR(15), v2 VARCHAR)");
        conn.createStatement().execute("CREATE INDEX IDX ON T(v1)");
        PhoenixStatement stmt = 
conn.createStatement().unwrap(PhoenixStatement.class);
        String query = "select * from t where v1 = '1'";
        QueryPlan plan = stmt.optimizeQuery(query);
        assertEquals("IDX", 
plan.getTableRef().getTable().getTableName().getString());
    }
{code}

> Queries on fixed width type columns that have an index declared on them don't 
> use that index
> --------------------------------------------------------------------------------------------
>
>                 Key: PHOENIX-1298
>                 URL: https://issues.apache.org/jira/browse/PHOENIX-1298
>             Project: Phoenix
>          Issue Type: Bug
>    Affects Versions: 5.0.0, 4.2, 3.2
>            Reporter: Samarth Jain
>            Assignee: Samarth Jain
>             Fix For: 5.0.0, 4.2, 3.2
>
>         Attachments: PHOENIX-1298.patch
>
>
> Happens when the index is on a column whose data type is fixed width. If V1 
> is made of type VARCHAR, then the test passes.
> {code}
> @Test
>     public void testRVCUsingPkColsReturnedByPlanShouldUseIndex() throws 
> Exception {
>         Connection conn = DriverManager.getConnection(getUrl());
>         conn.createStatement().execute("CREATE TABLE T (k VARCHAR NOT NULL 
> PRIMARY KEY, v1 CHAR(15), v2 VARCHAR)");
>         conn.createStatement().execute("CREATE INDEX IDX ON T(v1)");
>         PhoenixStatement stmt = 
> conn.createStatement().unwrap(PhoenixStatement.class);
>         String query = "select * from t where v1 = '1'";
>         QueryPlan plan = stmt.optimizeQuery(query);
>         assertEquals("IDX", 
> plan.getTableRef().getTable().getTableName().getString());
>     }
>  
> {code}
> Instead of going through the index table, the query ends up using the data 
> table.



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

Reply via email to