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