private boolean isSimple(Project project) { ImmutableBitSet.Builder b = ImmutableBitSet.builder(); for (int pos : joinKey) { RexNode r = project.getProjects().get(pos); if (!(r instanceof RexInputRef)) { return false; } b.set(((RexInputRef) r).getIndex()); } joinKey = b.build(); return true; }
ImmutableBitSet.Builder tmpMask = ImmutableBitSet.builder(); boolean completeKeyProjected = true; for (int bit : colMask) {
private ImmutableBitSet getEnabledNotNullConstraints(Table tbl) throws HiveException{ List<Boolean> nullConstraints = new ArrayList<>(); final NotNullConstraint nnc = Hive.get().getEnabledNotNullConstraints( tbl.getDbName(), tbl.getTableName()); ImmutableBitSet bitSet = null; if(nnc == null || nnc.getNotNullConstraints().isEmpty()) { return bitSet; } // Build the bitset with not null columns ImmutableBitSet.Builder builder = ImmutableBitSet.builder(); for (String nnCol : nnc.getNotNullConstraints().values()) { int nnPos = -1; for (int i = 0; i < tbl.getCols().size(); i++) { if (tbl.getCols().get(i).getName().equals(nnCol)) { nnPos = i; builder.set(nnPos); break; } } } bitSet = builder.build(); return bitSet; }
public ImmutableBitSet getSortedInputs() throws CalciteSemanticException { ImmutableBitSet.Builder sortedInputsBuilder = ImmutableBitSet.builder(); JoinPredicateInfo joinPredInfo = HiveCalciteUtil.JoinPredicateInfo. constructJoinPredicateInfo(this); List<ImmutableIntList> joinKeysInChildren = new ArrayList<ImmutableIntList>(); joinKeysInChildren.add( ImmutableIntList.copyOf( joinPredInfo.getProjsFromLeftPartOfJoinKeysInChildSchema())); joinKeysInChildren.add( ImmutableIntList.copyOf( joinPredInfo.getProjsFromRightPartOfJoinKeysInChildSchema())); final RelMetadataQuery mq = this.left.getCluster().getMetadataQuery(); for (int i=0; i<this.getInputs().size(); i++) { boolean correctOrderFound = RelCollations.contains( mq.collations(this.getInputs().get(i)), joinKeysInChildren.get(i)); if (correctOrderFound) { sortedInputsBuilder.set(i); } } return sortedInputsBuilder.build(); }
public ImmutableBitSet getSortedInputs() throws CalciteSemanticException { ImmutableBitSet.Builder sortedInputsBuilder = ImmutableBitSet.builder(); JoinPredicateInfo joinPredInfo = HiveCalciteUtil.JoinPredicateInfo. constructJoinPredicateInfo(this); List<ImmutableIntList> joinKeysInChildren = new ArrayList<ImmutableIntList>(); joinKeysInChildren.add( ImmutableIntList.copyOf( joinPredInfo.getProjsFromLeftPartOfJoinKeysInChildSchema())); joinKeysInChildren.add( ImmutableIntList.copyOf( joinPredInfo.getProjsFromRightPartOfJoinKeysInChildSchema())); for (int i=0; i<this.getInputs().size(); i++) { boolean correctOrderFound = RelCollations.contains( RelMetadataQuery.instance().collations(this.getInputs().get(i)), joinKeysInChildren.get(i)); if (correctOrderFound) { sortedInputsBuilder.set(i); } } return sortedInputsBuilder.build(); }
ImmutableBitSet.Builder builder = ImmutableBitSet.builder(); for (String nnCol : nnc.getNotNullConstraints().values()) { int nnPos = -1;
List<String> topChildExprsFields = new ArrayList<>(); List<RexNode> refs = new ArrayList<>(); ImmutableBitSet.Builder refsIndexBuilder = ImmutableBitSet.builder(); for (int i = 0; i < count ; i++) { RexNode expr = rexBuilder.makeInputRef(union, i);
add(rightRCount). build(); ImmutableBitSet.Builder streamingBuilder = ImmutableBitSet.builder(); switch (join.getStreamingSide()) { case LEFT_RELATION:
add(rightRCount). build(); ImmutableBitSet.Builder streamingBuilder = ImmutableBitSet.builder(); switch (join.getStreamingSide()) { case LEFT_RELATION:
add(rightRCount). build(); ImmutableBitSet.Builder streamingBuilder = ImmutableBitSet.builder(); switch (join.getStreamingSide()) { case LEFT_RELATION:
ImmutableBitSet.Builder inputFieldsUsed = ImmutableBitSet.builder(); for (int bit : fieldsUsedPlus) { if (bit >= inputStartPos && bit < inputStartPos + inputFieldCount) {
rightSet = new HashSet<>(); for (ImmutableBitSet colMask : tmpRightSet) { ImmutableBitSet.Builder tmpMask = ImmutableBitSet.builder(); for (int bit : colMask) { tmpMask.set(bit + nFieldsOnLeft);
} else { final ImmutableBitSet.Builder groupSet = ImmutableBitSet.builder(); final List<Integer> targetGroupList = target.getGroupSet().asList(); for (int c : query.getGroupSet()) {
@Override public void onMatch(RelOptRuleCall call) { final Aggregate topAggregate = call.rel(0); final Join join = call.rel(1); final RelNode left = call.rel(2); final Aggregate aggregate = call.rel(3); // Gather columns used by aggregate operator final ImmutableBitSet.Builder topRefs = ImmutableBitSet.builder(); topRefs.addAll(topAggregate.getGroupSet()); for (AggregateCall aggCall : topAggregate.getAggCallList()) { topRefs.addAll(aggCall.getArgList()); if (aggCall.filterArg != -1) { topRefs.set(aggCall.filterArg); } } perform(call, topRefs.build(), topAggregate, join, left, aggregate); } }
HashMultimap<Integer, Integer> inpIndxToOutIndxMap = HashMultimap.create(); ImmutableBitSet.Builder columnsMappedBuilder = ImmutableBitSet.builder(); Mapping m = Mappings.create(MappingType.PARTIAL_FUNCTION, child.getRowType().getFieldCount(), project.getRowType().getFieldCount());
add(rightRCount). build(); ImmutableBitSet.Builder streamingBuilder = ImmutableBitSet.builder(); switch (join.getStreamingSide()) { case LEFT_RELATION:
add(rightRCount). build(); ImmutableBitSet.Builder streamingBuilder = ImmutableBitSet.builder(); switch (join.getStreamingSide()) { case LEFT_RELATION:
add(rightRCount). build(); ImmutableBitSet.Builder streamingBuilder = ImmutableBitSet.builder(); switch (join.getStreamingSide()) { case LEFT_RELATION: