You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@phoenix.apache.org by "Sergey Soldatov (JIRA)" <ji...@apache.org> on 2016/07/01 19:13:11 UTC

[jira] [Created] (PHOENIX-3042) Using local index on the expression in where statement for join query fails.

Sergey Soldatov created PHOENIX-3042:
----------------------------------------

             Summary: Using local index on the expression in where statement for join query fails. 
                 Key: PHOENIX-3042
                 URL: https://issues.apache.org/jira/browse/PHOENIX-3042
             Project: Phoenix
          Issue Type: Bug
    Affects Versions: 4.8.0
            Reporter: Sergey Soldatov


A simple scenario:
{noformat}
CREATE TABLE customer_phx ( c_customer_sk varchar primary key, c_first_name varchar, c_last_name varchar );
UPSERT INTO customer_phx values ( '1', 'David', 'Smith');
CREATE LOCAL INDEX CUSTINDEX ON customer_phx (c_customer_sk || c_first_name asc) include (c_customer_sk);
select c.c_customer_sk from  customer_phx c left outer join customer_phx c2 on c.c_customer_sk = c2.c_customer_sk where c.c_customer_sk || c.c_first_name = '1David';
{noformat}
It fails with an Exception :
{noformat}
Error: ERROR 504 (42703): Undefined column. columnName=C_FIRST_NAME (state=42703,code=504)
org.apache.phoenix.schema.ColumnNotFoundException: ERROR 504 (42703): Undefined column. columnName=C_FIRST_NAME
	at org.apache.phoenix.compile.WhereCompiler$WhereExpressionCompiler.resolveColumn(WhereCompiler.java:190)
	at org.apache.phoenix.compile.WhereCompiler$WhereExpressionCompiler.visit(WhereCompiler.java:169)
	at org.apache.phoenix.compile.WhereCompiler$WhereExpressionCompiler.visit(WhereCompiler.java:156)
	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.StringConcatParseNode.accept(StringConcatParseNode.java:46)
	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:130)
	at org.apache.phoenix.compile.WhereCompiler.compile(WhereCompiler.java:100)
	at org.apache.phoenix.compile.QueryCompiler.compileSingleFlatQuery(QueryCompiler.java:556)
	at org.apache.phoenix.compile.QueryCompiler.compileJoinQuery(QueryCompiler.java:324)
	at org.apache.phoenix.compile.QueryCompiler.compileSelect(QueryCompiler.java:200)
	at org.apache.phoenix.compile.QueryCompiler.compile(QueryCompiler.java:157)
	at org.apache.phoenix.jdbc.PhoenixStatement$ExecutableSelectStatement.compilePlan(PhoenixStatement.java:404)
	at org.apache.phoenix.jdbc.PhoenixStatement$ExecutableSelectStatement.compilePlan(PhoenixStatement.java:378)
	at org.apache.phoenix.jdbc.PhoenixStatement$1.call(PhoenixStatement.java:271)
	at org.apache.phoenix.jdbc.PhoenixStatement$1.call(PhoenixStatement.java:266)
	at org.apache.phoenix.call.CallRunner.run(CallRunner.java:53)
	at org.apache.phoenix.jdbc.PhoenixStatement.executeQuery(PhoenixStatement.java:265)
	at org.apache.phoenix.jdbc.PhoenixStatement.execute(PhoenixStatement.java:1444)
	at sqlline.Commands.execute(Commands.java:822)
	at sqlline.Commands.sql(Commands.java:732)
	at sqlline.SqlLine.dispatch(SqlLine.java:807)
	at sqlline.SqlLine.begin(SqlLine.java:681)
	at sqlline.SqlLine.start(SqlLine.java:398)
	at sqlline.SqlLine.main(SqlLine.java:292)
{noformat}
Meanwhile using the same where statement without join works just fine.
Any ideas [~jamestaylor], [~ramkrishna.s.vasudevan@gmail.com] ?



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