phoenix-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "James Taylor (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (PHOENIX-1709) And expression of primary key RVCs can not compile
Date Mon, 09 Mar 2015 06:11:38 GMT

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

James Taylor commented on PHOENIX-1709:
---------------------------------------

Thanks, [~daniel.M]. Great work! Your fix for (1) is fine, but I'm worried your fix for (2)
may be masking other issues (or might occur in other places in the code). Would it be possible
for you to add a test for that where I've added mine - in WhereOptimizerTest.testAndWithRVC()?
You can create multi-tenant tables and tenant specific connections in those tests - I think
there are examples there or in QueryCompilerTest. I want to make sure no other issues are
lurking.

> And expression of primary key RVCs can not compile
> --------------------------------------------------
>
>                 Key: PHOENIX-1709
>                 URL: https://issues.apache.org/jira/browse/PHOENIX-1709
>             Project: Phoenix
>          Issue Type: Bug
>            Reporter: James Taylor
>            Assignee: James Taylor
>         Attachments: PHOENIX-1709.patch, PHOENIX-1709_v2.patch, PHOENIX-1709_v3.patch
>
>
>   1 . create table t (a integer not null, b integer not null, c integer
> constraint pk primary key (a,b));
>   2. select c from t where a in (1,2) and b = 3 and (a,b) in ( (1,2) , (1,3));
>   I got exception on compile :
>   java.lang.IllegalArgumentException
>    at
> com.google.common.base.Preconditions.checkArgument(Preconditions.java:76)
>    at
> org.apache.phoenix.compile.WhereOptimizer$KeyExpressionVisitor$KeySlot.inter
> sect(WhereOptimizer.java:955)
>    at
> org.apache.phoenix.compile.WhereOptimizer$KeyExpressionVisitor.intersectSlot
> s(WhereOptimizer.java:506)
>    at
> org.apache.phoenix.compile.WhereOptimizer$KeyExpressionVisitor.andKeySlots(W
> hereOptimizer.java:551)
>    at
> org.apache.phoenix.compile.WhereOptimizer$KeyExpressionVisitor.visitLeave(Wh
> ereOptimizer.java:725)
>    at
> org.apache.phoenix.compile.WhereOptimizer$KeyExpressionVisitor.visitLeave(Wh
> ereOptimizer.java:349)
>    at
> org.apache.phoenix.expression.AndExpression.accept(AndExpression.java:100)
>    at
> org.apache.phoenix.compile.WhereOptimizer.pushKeyExpressionsToScan(WhereOpti
> mizer.java:117)
>    at
> org.apache.phoenix.compile.WhereCompiler.compile(WhereCompiler.java:105)
>    at
> org.apache.phoenix.compile.QueryCompiler.compileSingleQuery(QueryCompiler.ja
> va:324)
>    at
> org.apache.phoenix.compile.QueryCompiler.compile(QueryCompiler.java:132)
>    at
> org.apache.phoenix.jdbc.PhoenixStatement$ExecutableSelectStatement.compilePl
> an(PhoenixStatement.java:296)
>    at
> org.apache.phoenix.jdbc.PhoenixStatement$ExecutableSelectStatement.compilePl
> an(PhoenixStatement.java:284)
>    at
> org.apache.phoenix.jdbc.PhoenixStatement$1.call(PhoenixStatement.java:208)
>    at
> org.apache.phoenix.jdbc.PhoenixStatement$1.call(PhoenixStatement.java:204)
>    at
> org.apache.phoenix.util.PhoenixContextExecutor.call(PhoenixContextExecutor.j
> ava:54)
>    at
> org.apache.phoenix.jdbc.PhoenixStatement.executeQuery(PhoenixStatement.java:
> 204)
>    at
> org.apache.phoenix.jdbc.PhoenixStatement.execute(PhoenixStatement.java:967)
>    at sqlline.SqlLine$Commands.execute(SqlLine.java:3673)
>    at sqlline.SqlLine$Commands.sql(SqlLine.java:3584)
>    at sqlline.SqlLine.dispatch(SqlLine.java:821)
>    at sqlline.SqlLine.begin(SqlLine.java:699)
>    at sqlline.SqlLine.mainWithInputRedirection(SqlLine.java:441)
>    at sqlline.SqlLine.main(SqlLine.java:424)



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

Mime
View raw message