use of io.crate.planner.operators.Union in project crate by crate.
the class MoveOrderBeneathUnion method apply.
@Override
public LogicalPlan apply(Order order, Captures captures, TableStats tableStats, TransactionContext txnCtx, NodeContext nodeCtx) {
Union union = captures.get(unionCapture);
List<LogicalPlan> unionSources = union.sources();
assert unionSources.size() == 2 : "A UNION must have exactly 2 unionSources";
Order lhsOrder = updateSources(order, unionSources.get(0));
Order rhsOrder = updateSources(order, unionSources.get(1));
return union.replaceSources(List.of(lhsOrder, rhsOrder));
}
use of io.crate.planner.operators.Union in project crate by crate.
the class MoveFilterBeneathUnion method apply.
@Override
public LogicalPlan apply(Filter filter, Captures captures, TableStats tableStats, TransactionContext txnCtx, NodeContext nodeCtx) {
Union union = captures.get(unionCapture);
LogicalPlan lhs = union.sources().get(0);
LogicalPlan rhs = union.sources().get(1);
return union.replaceSources(List.of(createNewFilter(filter, lhs), createNewFilter(filter, rhs)));
}
Aggregations