Description
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.
@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()); }
Instead of going through the index table, the query ends up using the data table.