Lars Hofhansl created PHOENIX-5109:
--------------------------------------

             Summary: Hinted local index with uncovered column in the WHERE 
clause throws an exception.
                 Key: PHOENIX-5109
                 URL: https://issues.apache.org/jira/browse/PHOENIX-5109
             Project: Phoenix
          Issue Type: Bug
            Reporter: Lars Hofhansl


Example:
{{create table test (pk integer primary key, v1 float, v2 float, v3 integer);}}
{{create local index l1 on test(v1);}}
{{select /*+ INDEX(test l1) */ * from test where v2 = 1;}}

{code}
0: jdbc:phoenix:localhost> select /*+ INDEX(test l1) */ * from test where v2 = 
1;
Error: ERROR 504 (42703): Undefined column. columnName=TEST.V2 
(state=42703,code=504)
org.apache.phoenix.schema.ColumnNotFoundException: ERROR 504 (42703): Undefined 
column. columnName=TEST.V2
        at 
org.apache.phoenix.compile.WhereCompiler$WhereExpressionCompiler.resolveColumn(WhereCompiler.java:202)
        at 
org.apache.phoenix.compile.WhereCompiler$WhereExpressionCompiler.visit(WhereCompiler.java:177)
        at 
org.apache.phoenix.compile.WhereCompiler$WhereExpressionCompiler.visit(WhereCompiler.java:164)
        at 
org.apache.phoenix.parse.ColumnParseNode.accept(ColumnParseNode.java:56)
        at 
org.apache.phoenix.parse.CompoundParseNode.acceptChildren(CompoundParseNode.java:64)
        at org.apache.phoenix.parse.CastParseNode.accept(CastParseNode.java:60)
        at 
org.apache.phoenix.parse.CompoundParseNode.acceptChildren(CompoundParseNode.java:64)
        at 
org.apache.phoenix.parse.ComparisonParseNode.accept(ComparisonParseNode.java:45)
        at 
org.apache.phoenix.compile.WhereCompiler.compile(WhereCompiler.java:138)
        at 
org.apache.phoenix.compile.WhereCompiler.compile(WhereCompiler.java:108)
        at 
org.apache.phoenix.compile.QueryCompiler.compileSingleFlatQuery(QueryCompiler.java:559)
        at 
org.apache.phoenix.compile.QueryCompiler.compileSingleQuery(QueryCompiler.java:510)
        at 
org.apache.phoenix.compile.QueryCompiler.compileSelect(QueryCompiler.java:195)
        at 
org.apache.phoenix.compile.QueryCompiler.compile(QueryCompiler.java:155)
        at 
org.apache.phoenix.compile.QueryCompiler.compileSubquery(QueryCompiler.java:499)
        at 
org.apache.phoenix.compile.QueryCompiler.compileJoinQuery(QueryCompiler.java:221)
        at 
org.apache.phoenix.compile.QueryCompiler.compileJoinQuery(QueryCompiler.java:295)
        at 
org.apache.phoenix.compile.QueryCompiler.compileJoinQuery(QueryCompiler.java:230)
        at 
org.apache.phoenix.compile.QueryCompiler.compileSelect(QueryCompiler.java:193)
        at 
org.apache.phoenix.compile.QueryCompiler.compile(QueryCompiler.java:155)
        at 
org.apache.phoenix.optimize.QueryOptimizer.addPlan(QueryOptimizer.java:399)
        at 
org.apache.phoenix.optimize.QueryOptimizer.getHintedQueryPlan(QueryOptimizer.java:279)
        at 
org.apache.phoenix.optimize.QueryOptimizer.getApplicablePlansForSingleFlatQuery(QueryOptimizer.java:220)
        at 
org.apache.phoenix.optimize.QueryOptimizer.getApplicablePlans(QueryOptimizer.java:133)
        at 
org.apache.phoenix.optimize.QueryOptimizer.optimize(QueryOptimizer.java:111)
        at 
org.apache.phoenix.optimize.QueryOptimizer.optimize(QueryOptimizer.java:97)
        at 
org.apache.phoenix.jdbc.PhoenixStatement$1.call(PhoenixStatement.java:309)
        at 
org.apache.phoenix.jdbc.PhoenixStatement$1.call(PhoenixStatement.java:291)
        at org.apache.phoenix.call.CallRunner.run(CallRunner.java:53)
        at 
org.apache.phoenix.jdbc.PhoenixStatement.executeQuery(PhoenixStatement.java:290)
        at 
org.apache.phoenix.jdbc.PhoenixStatement.executeQuery(PhoenixStatement.java:283)
        at 
org.apache.phoenix.jdbc.PhoenixStatement.execute(PhoenixStatement.java:1830)
        at sqlline.Commands.execute(Commands.java:822)
        at sqlline.Commands.sql(Commands.java:732)
        at sqlline.SqlLine.dispatch(SqlLine.java:813)
        at sqlline.SqlLine.begin(SqlLine.java:686)
        at sqlline.SqlLine.start(SqlLine.java:398)
        at sqlline.SqlLine.main(SqlLine.java:291)
{code}



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

Reply via email to