keysInInputs.intersect(ImmutableBitSet.range(numberLeftInputs)); ImmutableBitSet rightReferencedInputs = keysInInputs.intersect(ImmutableBitSet.range(numberLeftInputs, newInputs.size())); if (join.getJoinType() != JoinRelType.INNER && (leftReferencedInputs.cardinality() > 1 || rightReferencedInputs.cardinality() > 1)) {
for (int c : columnsMapped.intersect(rCols)) { if (input.getRowType().getFieldList().get(c).getType().isNullable() && Strong.isNull(r, ImmutableBitSet.of(c))) {
ImmutableBitSet.of(projectMap.keySet()); final ImmutableBitSet constrainedTargetColumns = targetColumns.intersect(constrainedColumns);
for (int c : columnsMapped.intersect(rCols)) { if (input.getRowType().getFieldList().get(c).getType().isNullable() && Strong.isNull(r, ImmutableBitSet.of(c))) {
keysInInputs.intersect(ImmutableBitSet.range(numberLeftInputs)); ImmutableBitSet rightReferencedInputs = keysInInputs.intersect(ImmutableBitSet.range(numberLeftInputs, newInputs.size())); if (join.getJoinType() != JoinRelType.INNER && (leftReferencedInputs.cardinality() > 1 || rightReferencedInputs.cardinality() > 1)) {
final ImmutableBitSet callsToKeep = projectBits.intersect( ImmutableBitSet.range(aggregate.getGroupCount(), fieldCount) );
ImmutableBitSet.range(offset, offset + fieldCount); final ImmutableBitSet belowAggregateKeyNotShifted = belowAggregateColumns.intersect(fieldSet); for (Ord<Integer> c : Ord.zip(belowAggregateKeyNotShifted)) { map.put(c.e, belowOffset + c.i);
ImmutableBitSet.range(offset, offset + fieldCount); final ImmutableBitSet belowAggregateKeyNotShifted = belowAggregateColumns.intersect(fieldSet); for (Ord<Integer> c : Ord.zip(belowAggregateKeyNotShifted)) { map.put(c.e, belowOffset + c.i);
/** * Gets the bit-set to the column ordinals in the source for columns that * intersect in the target. * * @param sourceRowType The source upon which to ordinate the bit set. * @param indexToField The map of ordinals to target fields. */ public static ImmutableBitSet getOrdinalBitSet( RelDataType sourceRowType, Map<Integer, RelDataTypeField> indexToField) { ImmutableBitSet source = ImmutableBitSet.of( Lists.transform(sourceRowType.getFieldList(), RelDataTypeField::getIndex)); ImmutableBitSet target = ImmutableBitSet.of(indexToField.keySet()); return source.intersect(target); }
/** * Gets the bit-set to the column ordinals in the source for columns that * intersect in the target. * * @param sourceRowType The source upon which to ordinate the bit set. * @param indexToField The map of ordinals to target fields. */ public static ImmutableBitSet getOrdinalBitSet( RelDataType sourceRowType, Map<Integer, RelDataTypeField> indexToField) { ImmutableBitSet source = ImmutableBitSet.of( Lists.transform(sourceRowType.getFieldList(), RelDataTypeField::getIndex)); ImmutableBitSet target = ImmutableBitSet.of(indexToField.keySet()); return source.intersect(target); }
ImmutableBitSet left = RelOptUtil.InputFinder.bits(equalsOperands.get(0)); ImmutableBitSet right = RelOptUtil.InputFinder.bits(equalsOperands.get(1)); if (!left.isEmpty() && !right.isEmpty() && left.intersect(right).isEmpty()) { return call;
ImmutableBitSet left = RelOptUtil.InputFinder.bits(equalsOperands.get(0)); ImmutableBitSet right = RelOptUtil.InputFinder.bits(equalsOperands.get(1)); if (!left.isEmpty() && !right.isEmpty() && left.intersect(right).isEmpty()) { return call;
ImmutableBitSet.of(projectMap.keySet()); final ImmutableBitSet constrainedTargetColumns = targetColumns.intersect(constrainedColumns);
ImmutableBitSet.of(projectMap.keySet()); final ImmutableBitSet constrainedTargetColumns = targetColumns.intersect(constrainedColumns);
final ImmutableBitSet callsToKeep = projectBits.intersect( ImmutableBitSet.range(aggregate.getGroupCount(), fieldCount) );
ImmutableBitSet.range(offset, offset + fieldCount); final ImmutableBitSet belowAggregateKeyNotShifted = belowAggregateColumns.intersect(fieldSet); for (Ord<Integer> c : Ord.zip(belowAggregateKeyNotShifted)) { map.put(c.e, belowOffset + c.i);
ImmutableBitSet.range(offset, offset + fieldCount); final ImmutableBitSet belowAggregateKeyNotShifted = belowAggregateColumns.intersect(fieldSet); for (Ord<Integer> c : Ord.zip(belowAggregateKeyNotShifted)) { map.put(c.e, belowOffset + c.i);
ImmutableBitSet.range(offset, offset + fieldCount); final ImmutableBitSet belowAggregateKeyNotShifted = belowAggregateColumns.intersect(fieldSet); for (Ord<Integer> c : Ord.zip(belowAggregateKeyNotShifted)) { map.put(c.e, belowOffset + c.i);