Search in sources :

Example 36 with Union

use of org.apache.beam.vendor.calcite.v1_28_0.org.apache.calcite.rel.core.Union in project calcite by apache.

the class RelBuilder method setOp.

private RelBuilder setOp(boolean all, SqlKind kind, int n) {
    List<RelNode> inputs = new ArrayList<>();
    for (int i = 0; i < n; i++) {
        inputs.add(0, build());
    }
    switch(kind) {
        case UNION:
        case INTERSECT:
        case EXCEPT:
            if (n < 1) {
                throw new IllegalArgumentException("bad INTERSECT/UNION/EXCEPT input count");
            }
            break;
        default:
            throw new AssertionError("bad setOp " + kind);
    }
    if (n == 1) {
        return push(inputs.get(0));
    }
    if (config.simplifyValues() && kind == UNION && inputs.stream().allMatch(r -> r instanceof Values)) {
        List<RelDataType> inputTypes = Util.transform(inputs, RelNode::getRowType);
        RelDataType rowType = getTypeFactory().leastRestrictive(inputTypes);
        requireNonNull(rowType, () -> "leastRestrictive(" + inputTypes + ")");
        final List<List<RexLiteral>> tuples = new ArrayList<>();
        for (RelNode input : inputs) {
            tuples.addAll(((Values) input).tuples);
        }
        final List<List<RexLiteral>> tuples2 = all ? tuples : Util.distinctList(tuples);
        return values(tuples2, rowType);
    }
    return push(struct.setOpFactory.createSetOp(kind, inputs, all));
}
Also used : Values(org.apache.calcite.rel.core.Values) Mappings(org.apache.calcite.util.mapping.Mappings) Arrays(java.util.Arrays) UnaryOperator(java.util.function.UnaryOperator) RESOURCE(org.apache.calcite.util.Static.RESOURCE) Contexts(org.apache.calcite.plan.Contexts) Union(org.apache.calcite.rel.core.Union) BigDecimal(java.math.BigDecimal) CorrelationId(org.apache.calcite.rel.core.CorrelationId) SqlValidatorUtil(org.apache.calcite.sql.validate.SqlValidatorUtil) Map(java.util.Map) TableFunctionReturnTypeInference(org.apache.calcite.sql.type.TableFunctionReturnTypeInference) EnumSet(java.util.EnumSet) RexWindowBound(org.apache.calcite.rex.RexWindowBound) ImmutableBitSet(org.apache.calcite.util.ImmutableBitSet) Uncollect(org.apache.calcite.rel.core.Uncollect) SqlKind(org.apache.calcite.sql.SqlKind) Minus(org.apache.calcite.rel.core.Minus) SqlCountAggFunction(org.apache.calcite.sql.fun.SqlCountAggFunction) SqlQuantifyOperator(org.apache.calcite.sql.fun.SqlQuantifyOperator) Set(java.util.Set) RelFieldCollation(org.apache.calcite.rel.RelFieldCollation) RelMetadataQuery(org.apache.calcite.rel.metadata.RelMetadataQuery) SqlStdOperatorTable(org.apache.calcite.sql.fun.SqlStdOperatorTable) RelCollation(org.apache.calcite.rel.RelCollation) RexCorrelVariable(org.apache.calcite.rex.RexCorrelVariable) RexCall(org.apache.calcite.rex.RexCall) RelOptTableImpl(org.apache.calcite.prepare.RelOptTableImpl) Iterables(com.google.common.collect.Iterables) Holder(org.apache.calcite.util.Holder) Correlate(org.apache.calcite.rel.core.Correlate) RepeatUnion(org.apache.calcite.rel.core.RepeatUnion) Ord(org.apache.calcite.linq4j.Ord) Filter(org.apache.calcite.rel.core.Filter) ListTransientTable(org.apache.calcite.schema.impl.ListTransientTable) RelDataTypeFieldImpl(org.apache.calcite.rel.type.RelDataTypeFieldImpl) Join(org.apache.calcite.rel.core.Join) TreeSet(java.util.TreeSet) RelOptTable(org.apache.calcite.plan.RelOptTable) ArrayList(java.util.ArrayList) RexFieldCollation(org.apache.calcite.rex.RexFieldCollation) SqlToRelConverter(org.apache.calcite.sql2rel.SqlToRelConverter) Optionality(org.apache.calcite.util.Optionality) Lists(com.google.common.collect.Lists) ViewExpanders(org.apache.calcite.plan.ViewExpanders) RelColumnMapping(org.apache.calcite.rel.metadata.RelColumnMapping) StreamSupport(java.util.stream.StreamSupport) SqlWindow(org.apache.calcite.sql.SqlWindow) RelDataType(org.apache.calcite.rel.type.RelDataType) NlsString(org.apache.calcite.util.NlsString) Aggregate(org.apache.calcite.rel.core.Aggregate) SqlReturnTypeInference(org.apache.calcite.sql.type.SqlReturnTypeInference) RelHomogeneousShuttle(org.apache.calcite.rel.RelHomogeneousShuttle) RexWindowBounds(org.apache.calcite.rex.RexWindowBounds) RelOptSchema(org.apache.calcite.plan.RelOptSchema) RelDistribution(org.apache.calcite.rel.RelDistribution) RexCallBinding(org.apache.calcite.rex.RexCallBinding) JoinRelType(org.apache.calcite.rel.core.JoinRelType) AggregateCall(org.apache.calcite.rel.core.AggregateCall) Preconditions(com.google.common.base.Preconditions) SqlAggFunction(org.apache.calcite.sql.SqlAggFunction) ImmutableSortedMultiset(com.google.common.collect.ImmutableSortedMultiset) ArrayDeque(java.util.ArrayDeque) Convention(org.apache.calcite.plan.Convention) RelDataTypeFactory(org.apache.calcite.rel.type.RelDataTypeFactory) SortedSet(java.util.SortedSet) LogicalFilter(org.apache.calcite.rel.logical.LogicalFilter) RelFactories(org.apache.calcite.rel.core.RelFactories) Match(org.apache.calcite.rel.core.Match) AbstractList(java.util.AbstractList) MonotonicNonNull(org.checkerframework.checker.nullness.qual.MonotonicNonNull) RexUtil(org.apache.calcite.rex.RexUtil) SqlLikeOperator(org.apache.calcite.sql.fun.SqlLikeOperator) SqlUtil(org.apache.calcite.sql.SqlUtil) RexNode(org.apache.calcite.rex.RexNode) RelHint(org.apache.calcite.rel.hint.RelHint) Locale(java.util.Locale) Intersect(org.apache.calcite.rel.core.Intersect) RelOptPredicateList(org.apache.calcite.plan.RelOptPredicateList) RelOptCluster(org.apache.calcite.plan.RelOptCluster) TableFunctionScan(org.apache.calcite.rel.core.TableFunctionScan) Litmus(org.apache.calcite.util.Litmus) ImmutableSet(com.google.common.collect.ImmutableSet) ImmutableIntList(org.apache.calcite.util.ImmutableIntList) ImmutableMap(com.google.common.collect.ImmutableMap) RexLiteral(org.apache.calcite.rex.RexLiteral) Context(org.apache.calcite.plan.Context) Nullness.castNonNull(org.apache.calcite.linq4j.Nullness.castNonNull) ImmutableNullableList(org.apache.calcite.util.ImmutableNullableList) Collectors(java.util.stream.Collectors) Sets(com.google.common.collect.Sets) RexInputRef(org.apache.calcite.rex.RexInputRef) Objects(java.util.Objects) List(java.util.List) Sort(org.apache.calcite.rel.core.Sort) RelDataTypeField(org.apache.calcite.rel.type.RelDataTypeField) Spool(org.apache.calcite.rel.core.Spool) RexSimplify(org.apache.calcite.rex.RexSimplify) Hook(org.apache.calcite.runtime.Hook) Project(org.apache.calcite.rel.core.Project) TableScan(org.apache.calcite.rel.core.TableScan) Multiset(com.google.common.collect.Multiset) Hintable(org.apache.calcite.rel.hint.Hintable) TransientTable(org.apache.calcite.schema.TransientTable) HashMap(java.util.HashMap) Deque(java.util.Deque) RelOptUtil(org.apache.calcite.plan.RelOptUtil) Function(java.util.function.Function) HashSet(java.util.HashSet) Snapshot(org.apache.calcite.rel.core.Snapshot) ImmutableList(com.google.common.collect.ImmutableList) Value(org.immutables.value.Value) Pair(org.apache.calcite.util.Pair) Mapping(org.apache.calcite.util.mapping.Mapping) Objects.requireNonNull(java.util.Objects.requireNonNull) SqlOperator(org.apache.calcite.sql.SqlOperator) RexExecutor(org.apache.calcite.rex.RexExecutor) Nullable(org.checkerframework.checker.nullness.qual.Nullable) RelCollations(org.apache.calcite.rel.RelCollations) LogicalProject(org.apache.calcite.rel.logical.LogicalProject) SqlTypeName(org.apache.calcite.sql.type.SqlTypeName) RexBuilder(org.apache.calcite.rex.RexBuilder) Experimental(org.apache.calcite.linq4j.function.Experimental) RexSubQuery(org.apache.calcite.rex.RexSubQuery) RelNode(org.apache.calcite.rel.RelNode) UNION(org.apache.calcite.sql.SqlKind.UNION) BitSet(java.util.BitSet) RexShuttle(org.apache.calcite.rex.RexShuttle) Util(org.apache.calcite.util.Util) Collections(java.util.Collections) TableSpool(org.apache.calcite.rel.core.TableSpool) RelNode(org.apache.calcite.rel.RelNode) ArrayList(java.util.ArrayList) Values(org.apache.calcite.rel.core.Values) RelDataType(org.apache.calcite.rel.type.RelDataType) ArrayList(java.util.ArrayList) AbstractList(java.util.AbstractList) RelOptPredicateList(org.apache.calcite.plan.RelOptPredicateList) ImmutableIntList(org.apache.calcite.util.ImmutableIntList) ImmutableNullableList(org.apache.calcite.util.ImmutableNullableList) List(java.util.List) ImmutableList(com.google.common.collect.ImmutableList) RelHint(org.apache.calcite.rel.hint.RelHint)

Example 37 with Union

use of org.apache.beam.vendor.calcite.v1_28_0.org.apache.calcite.rel.core.Union in project calcite by apache.

the class RelMdUniqueKeys method getProjectUniqueKeys.

private static Set<ImmutableBitSet> getProjectUniqueKeys(SingleRel rel, RelMetadataQuery mq, boolean ignoreNulls, List<RexNode> projExprs) {
    // LogicalProject maps a set of rows to a different set;
    // Without knowledge of the mapping function(whether it
    // preserves uniqueness), it is only safe to derive uniqueness
    // info from the child of a project when the mapping is f(a) => a.
    // 
    // Further more, the unique bitset coming from the child needs
    // to be mapped to match the output of the project.
    // Single input can be mapped to multiple outputs
    ImmutableMultimap.Builder<Integer, Integer> inToOutPosBuilder = ImmutableMultimap.builder();
    ImmutableBitSet.Builder mappedInColumnsBuilder = ImmutableBitSet.builder();
    // Build an input to output position map.
    for (int i = 0; i < projExprs.size(); i++) {
        RexNode projExpr = projExprs.get(i);
        if (projExpr instanceof RexInputRef) {
            int inputIndex = ((RexInputRef) projExpr).getIndex();
            inToOutPosBuilder.put(inputIndex, i);
            mappedInColumnsBuilder.set(inputIndex);
        }
    }
    ImmutableBitSet inColumnsUsed = mappedInColumnsBuilder.build();
    if (inColumnsUsed.isEmpty()) {
        // return empty set.
        return ImmutableSet.of();
    }
    Set<ImmutableBitSet> childUniqueKeySet = mq.getUniqueKeys(rel.getInput(), ignoreNulls);
    if (childUniqueKeySet == null) {
        return ImmutableSet.of();
    }
    Map<Integer, ImmutableBitSet> mapInToOutPos = Maps.transformValues(inToOutPosBuilder.build().asMap(), ImmutableBitSet::of);
    ImmutableSet.Builder<ImmutableBitSet> resultBuilder = ImmutableSet.builder();
    // projected.
    for (ImmutableBitSet colMask : childUniqueKeySet) {
        if (!inColumnsUsed.contains(colMask)) {
            // colMask contains a column that is not projected as RexInput => the key is not unique
            continue;
        }
        // colMask is mapped to output project, however, the column can be mapped more than once:
        // select id, id, id, unique2, unique2
        // the resulting unique keys would be {{0},{3}}, {{0},{4}}, {{0},{1},{4}}, ...
        Iterable<List<ImmutableBitSet>> product = Linq4j.product(Util.transform(colMask, in -> Util.filter(requireNonNull(mapInToOutPos.get(in), () -> "no entry for column " + in + " in mapInToOutPos: " + mapInToOutPos).powerSet(), bs -> !bs.isEmpty())));
        resultBuilder.addAll(Util.transform(product, ImmutableBitSet::union));
    }
    return resultBuilder.build();
}
Also used : Project(org.apache.calcite.rel.core.Project) TableScan(org.apache.calcite.rel.core.TableScan) RexProgram(org.apache.calcite.rex.RexProgram) Correlate(org.apache.calcite.rel.core.Correlate) Filter(org.apache.calcite.rel.core.Filter) Join(org.apache.calcite.rel.core.Join) Union(org.apache.calcite.rel.core.Union) HashSet(java.util.HashSet) RexNode(org.apache.calcite.rex.RexNode) Intersect(org.apache.calcite.rel.core.Intersect) Map(java.util.Map) Objects.requireNonNull(java.util.Objects.requireNonNull) TableModify(org.apache.calcite.rel.core.TableModify) ImmutableMultimap(com.google.common.collect.ImmutableMultimap) SingleRel(org.apache.calcite.rel.SingleRel) Nullable(org.checkerframework.checker.nullness.qual.Nullable) ImmutableBitSet(org.apache.calcite.util.ImmutableBitSet) ImmutableSet(com.google.common.collect.ImmutableSet) Minus(org.apache.calcite.rel.core.Minus) Linq4j(org.apache.calcite.linq4j.Linq4j) Set(java.util.Set) RelNode(org.apache.calcite.rel.RelNode) Aggregate(org.apache.calcite.rel.core.Aggregate) JoinInfo(org.apache.calcite.rel.core.JoinInfo) Maps(com.google.common.collect.Maps) RexInputRef(org.apache.calcite.rex.RexInputRef) List(java.util.List) Sort(org.apache.calcite.rel.core.Sort) Calc(org.apache.calcite.rel.core.Calc) Util(org.apache.calcite.util.Util) ImmutableBitSet(org.apache.calcite.util.ImmutableBitSet) ImmutableSet(com.google.common.collect.ImmutableSet) RexInputRef(org.apache.calcite.rex.RexInputRef) List(java.util.List) ImmutableMultimap(com.google.common.collect.ImmutableMultimap) RexNode(org.apache.calcite.rex.RexNode)

Example 38 with Union

use of org.apache.beam.vendor.calcite.v1_28_0.org.apache.calcite.rel.core.Union in project calcite by apache.

the class MutableRels method toMutable.

public static MutableRel toMutable(RelNode rel) {
    if (rel instanceof HepRelVertex) {
        return toMutable(((HepRelVertex) rel).getCurrentRel());
    }
    if (rel instanceof RelSubset) {
        RelSubset subset = (RelSubset) rel;
        RelNode best = subset.getBest();
        if (best == null) {
            best = requireNonNull(subset.getOriginal(), () -> "subset.getOriginal() is null for " + subset);
        }
        return toMutable(best);
    }
    if (rel instanceof TableScan) {
        return MutableScan.of((TableScan) rel);
    }
    if (rel instanceof Values) {
        return MutableValues.of((Values) rel);
    }
    if (rel instanceof Project) {
        final Project project = (Project) rel;
        final MutableRel input = toMutable(project.getInput());
        return MutableProject.of(input, project.getProjects(), project.getRowType().getFieldNames());
    }
    if (rel instanceof Filter) {
        final Filter filter = (Filter) rel;
        final MutableRel input = toMutable(filter.getInput());
        return MutableFilter.of(input, filter.getCondition());
    }
    if (rel instanceof Aggregate) {
        final Aggregate aggregate = (Aggregate) rel;
        final MutableRel input = toMutable(aggregate.getInput());
        return MutableAggregate.of(input, aggregate.getGroupSet(), aggregate.getGroupSets(), aggregate.getAggCallList());
    }
    if (rel instanceof Sort) {
        final Sort sort = (Sort) rel;
        final MutableRel input = toMutable(sort.getInput());
        return MutableSort.of(input, sort.getCollation(), sort.offset, sort.fetch);
    }
    if (rel instanceof Calc) {
        final Calc calc = (Calc) rel;
        final MutableRel input = toMutable(calc.getInput());
        return MutableCalc.of(input, calc.getProgram());
    }
    if (rel instanceof Exchange) {
        final Exchange exchange = (Exchange) rel;
        final MutableRel input = toMutable(exchange.getInput());
        return MutableExchange.of(input, exchange.getDistribution());
    }
    if (rel instanceof Collect) {
        final Collect collect = (Collect) rel;
        final MutableRel input = toMutable(collect.getInput());
        return MutableCollect.of(collect.getRowType(), input, collect.getFieldName());
    }
    if (rel instanceof Uncollect) {
        final Uncollect uncollect = (Uncollect) rel;
        final MutableRel input = toMutable(uncollect.getInput());
        return MutableUncollect.of(uncollect.getRowType(), input, uncollect.withOrdinality);
    }
    if (rel instanceof Window) {
        final Window window = (Window) rel;
        final MutableRel input = toMutable(window.getInput());
        return MutableWindow.of(window.getRowType(), input, window.groups, window.getConstants());
    }
    if (rel instanceof Match) {
        final Match match = (Match) rel;
        final MutableRel input = toMutable(match.getInput());
        return MutableMatch.of(match.getRowType(), input, match.getPattern(), match.isStrictStart(), match.isStrictEnd(), match.getPatternDefinitions(), match.getMeasures(), match.getAfter(), match.getSubsets(), match.isAllRows(), match.getPartitionKeys(), match.getOrderKeys(), match.getInterval());
    }
    if (rel instanceof TableModify) {
        final TableModify modify = (TableModify) rel;
        final MutableRel input = toMutable(modify.getInput());
        return MutableTableModify.of(modify.getRowType(), input, modify.getTable(), modify.getCatalogReader(), modify.getOperation(), modify.getUpdateColumnList(), modify.getSourceExpressionList(), modify.isFlattened());
    }
    if (rel instanceof Sample) {
        final Sample sample = (Sample) rel;
        final MutableRel input = toMutable(sample.getInput());
        return MutableSample.of(input, sample.getSamplingParameters());
    }
    if (rel instanceof TableFunctionScan) {
        final TableFunctionScan tableFunctionScan = (TableFunctionScan) rel;
        final List<MutableRel> inputs = toMutables(tableFunctionScan.getInputs());
        return MutableTableFunctionScan.of(tableFunctionScan.getCluster(), tableFunctionScan.getRowType(), inputs, tableFunctionScan.getCall(), tableFunctionScan.getElementType(), tableFunctionScan.getColumnMappings());
    }
    // is a sub-class of Join.
    if (rel instanceof Join) {
        final Join join = (Join) rel;
        final MutableRel left = toMutable(join.getLeft());
        final MutableRel right = toMutable(join.getRight());
        return MutableJoin.of(join.getRowType(), left, right, join.getCondition(), join.getJoinType(), join.getVariablesSet());
    }
    if (rel instanceof Correlate) {
        final Correlate correlate = (Correlate) rel;
        final MutableRel left = toMutable(correlate.getLeft());
        final MutableRel right = toMutable(correlate.getRight());
        return MutableCorrelate.of(correlate.getRowType(), left, right, correlate.getCorrelationId(), correlate.getRequiredColumns(), correlate.getJoinType());
    }
    if (rel instanceof Union) {
        final Union union = (Union) rel;
        final List<MutableRel> inputs = toMutables(union.getInputs());
        return MutableUnion.of(union.getRowType(), inputs, union.all);
    }
    if (rel instanceof Minus) {
        final Minus minus = (Minus) rel;
        final List<MutableRel> inputs = toMutables(minus.getInputs());
        return MutableMinus.of(minus.getRowType(), inputs, minus.all);
    }
    if (rel instanceof Intersect) {
        final Intersect intersect = (Intersect) rel;
        final List<MutableRel> inputs = toMutables(intersect.getInputs());
        return MutableIntersect.of(intersect.getRowType(), inputs, intersect.all);
    }
    throw new RuntimeException("cannot translate " + rel + " to MutableRel");
}
Also used : Uncollect(org.apache.calcite.rel.core.Uncollect) Collect(org.apache.calcite.rel.core.Collect) Values(org.apache.calcite.rel.core.Values) Union(org.apache.calcite.rel.core.Union) Match(org.apache.calcite.rel.core.Match) LogicalMatch(org.apache.calcite.rel.logical.LogicalMatch) HepRelVertex(org.apache.calcite.plan.hep.HepRelVertex) Intersect(org.apache.calcite.rel.core.Intersect) LogicalSort(org.apache.calcite.rel.logical.LogicalSort) Sort(org.apache.calcite.rel.core.Sort) LogicalTableModify(org.apache.calcite.rel.logical.LogicalTableModify) TableModify(org.apache.calcite.rel.core.TableModify) RelSubset(org.apache.calcite.plan.volcano.RelSubset) LogicalWindow(org.apache.calcite.rel.logical.LogicalWindow) Window(org.apache.calcite.rel.core.Window) TableScan(org.apache.calcite.rel.core.TableScan) Correlate(org.apache.calcite.rel.core.Correlate) LogicalCorrelate(org.apache.calcite.rel.logical.LogicalCorrelate) Sample(org.apache.calcite.rel.core.Sample) Join(org.apache.calcite.rel.core.Join) LogicalCalc(org.apache.calcite.rel.logical.LogicalCalc) Calc(org.apache.calcite.rel.core.Calc) Exchange(org.apache.calcite.rel.core.Exchange) LogicalExchange(org.apache.calcite.rel.logical.LogicalExchange) Project(org.apache.calcite.rel.core.Project) RelNode(org.apache.calcite.rel.RelNode) LogicalTableFunctionScan(org.apache.calcite.rel.logical.LogicalTableFunctionScan) TableFunctionScan(org.apache.calcite.rel.core.TableFunctionScan) Filter(org.apache.calcite.rel.core.Filter) Aggregate(org.apache.calcite.rel.core.Aggregate) Minus(org.apache.calcite.rel.core.Minus)

Example 39 with Union

use of org.apache.beam.vendor.calcite.v1_28_0.org.apache.calcite.rel.core.Union in project druid by apache.

the class DruidUnionRule method onMatch.

@Override
public void onMatch(final RelOptRuleCall call) {
    final Union unionRel = call.rel(0);
    final DruidRel<?> someDruidRel = call.rel(1);
    final List<RelNode> inputs = unionRel.getInputs();
    // Can only do UNION ALL.
    if (unionRel.all) {
        call.transformTo(DruidUnionRel.create(someDruidRel.getPlannerContext(), unionRel.getRowType(), inputs, -1));
    } else {
        plannerContext.setPlanningError("SQL requires 'UNION' but only 'UNION ALL' is supported.");
    }
}
Also used : RelNode(org.apache.calcite.rel.RelNode) Union(org.apache.calcite.rel.core.Union)

Example 40 with Union

use of org.apache.beam.vendor.calcite.v1_28_0.org.apache.calcite.rel.core.Union in project druid by apache.

the class DruidUnionRule method matches.

@Override
public boolean matches(RelOptRuleCall call) {
    // Make DruidUnionRule and DruidUnionDataSourceRule mutually exclusive.
    final Union unionRel = call.rel(0);
    final DruidRel<?> firstDruidRel = call.rel(1);
    final DruidRel<?> secondDruidRel = call.rel(2);
    return !DruidUnionDataSourceRule.isCompatible(unionRel, firstDruidRel, secondDruidRel, null);
}
Also used : Union(org.apache.calcite.rel.core.Union)

Aggregations

Union (org.apache.calcite.rel.core.Union)41 RelNode (org.apache.calcite.rel.RelNode)28 Aggregate (org.apache.calcite.rel.core.Aggregate)15 Sort (org.apache.calcite.rel.core.Sort)13 ArrayList (java.util.ArrayList)12 RexNode (org.apache.calcite.rex.RexNode)12 Join (org.apache.calcite.rel.core.Join)11 Filter (org.apache.calcite.rel.core.Filter)10 Project (org.apache.calcite.rel.core.Project)10 RelBuilder (org.apache.calcite.tools.RelBuilder)10 TableScan (org.apache.calcite.rel.core.TableScan)9 RelMetadataQuery (org.apache.calcite.rel.metadata.RelMetadataQuery)9 RexBuilder (org.apache.calcite.rex.RexBuilder)9 ImmutableBitSet (org.apache.calcite.util.ImmutableBitSet)9 Intersect (org.apache.calcite.rel.core.Intersect)8 Minus (org.apache.calcite.rel.core.Minus)8 Correlate (org.apache.calcite.rel.core.Correlate)7 RelDataTypeField (org.apache.calcite.rel.type.RelDataTypeField)7 Map (java.util.Map)6 Calc (org.apache.calcite.rel.core.Calc)6