[
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)