public void flatten( List<RelNode> rels, int systemFieldCount, int[] start, List<Pair<RelNode, Integer>> relOffsetList) { for (RelNode rel : rels) { if (leaves.contains(rel)) { relOffsetList.add( Pair.of(rel, start[0])); start[0] += rel.getRowType().getFieldCount(); } else { if (rel instanceof JoinRel || rel instanceof AggregateRel) { start[0] += systemFieldCount; } flatten( rel.getInputs(), systemFieldCount, start, relOffsetList); } } }
public void flatten( List<RelNode> rels, int systemFieldCount, int[] start, List<Pair<RelNode, Integer>> relOffsetList) { for (RelNode rel : rels) { if (leaves.contains(rel)) { relOffsetList.add( Pair.of(rel, start[0])); start[0] += rel.getRowType().getFieldCount(); } else { if (rel instanceof JoinRel || rel instanceof AggregateRel) { start[0] += systemFieldCount; } flatten( rel.getInputs(), systemFieldCount, start, relOffsetList); } } }
public void flatten( List<RelNode> rels, int systemFieldCount, int[] start, List<Pair<RelNode, Integer>> relOffsetList) { for (RelNode rel : rels) { if (leaves.contains(rel)) { relOffsetList.add( Pair.of(rel, start[0])); start[0] += rel.getRowType().getFieldCount(); } else { if (rel instanceof JoinRel || rel instanceof AggregateRel) { start[0] += systemFieldCount; } flatten( rel.getInputs(), systemFieldCount, start, relOffsetList); } } }
/** * Creates a LookupContext with multiple input relational expressions. * * @param bb Context for translating this subquery * @param rels Relational expressions * @param systemFieldCount Number of system fields */ LookupContext(Blackboard bb, List<RelNode> rels, int systemFieldCount) { bb.flatten(rels, systemFieldCount, new int[]{0}, relOffsetList); }
/** * Creates a LookupContext with multiple input relational expressions. * * @param bb Context for translating this subquery * @param rels Relational expressions * @param systemFieldCount Number of system fields */ LookupContext(Blackboard bb, List<RelNode> rels, int systemFieldCount) { bb.flatten(rels, systemFieldCount, new int[]{0}, relOffsetList); }
/** * Creates a LookupContext with multiple input relational expressions. * * @param bb Context for translating this subquery * @param rels Relational expressions * @param systemFieldCount Number of system fields */ LookupContext(Blackboard bb, List<RelNode> rels, int systemFieldCount) { bb.flatten(rels, systemFieldCount, new int[]{0}, relOffsetList); }