mq.areColumnsUnique(left, joinInfo.leftSet()); final Boolean rightUnique = mq.areColumnsUnique(right, joinInfo.rightSet());
return; if (!joinInfo.leftSet().equals( ImmutableBitSet.range(aggregate.getGroupCount()))) {
mq.areColumnsUnique(left, joinInfo.leftSet(), ignoreNulls); final Boolean rightUnique = mq.areColumnsUnique(right, joinInfo.rightSet(), ignoreNulls);
private static boolean isAggregateKeyApplicable(ImmutableBitSet aggregateKeys, Join join) { JoinInfo joinInfo = join.analyzeCondition(); return (join.getJoinType() == JoinRelType.LEFT && joinInfo.leftSet().contains(aggregateKeys)) || (join.getJoinType() == JoinRelType.RIGHT && joinInfo.rightSet().shift(join.getInput(0).getRowType().getFieldCount()) .contains(aggregateKeys)); }
mq.areColumnsUnique(left, joinInfo.leftSet(), ignoreNulls); final Boolean rightUnique = mq.areColumnsUnique(right, joinInfo.rightSet(), ignoreNulls);
joinInfo.leftSet());
joinInfo.leftSet());
mq.areColumnsUnique(left, joinInfo.leftSet(), ignoreNulls); if ((leftJoinColsUnique == null) || (rightUnique == null)) { return null;
mq.areColumnsUnique(left, joinInfo.leftSet(), ignoreNulls); if ((leftJoinColsUnique == null) || (rightUnique == null)) { return null;
mq, join.getLeft(), joinInfo.leftSet())) { return false;
mq, join.getLeft(), joinInfo.leftSet())) { return false;