public RelNode visit(LogicalAggregate aggregate) { return visitChild(aggregate, 0, aggregate.getInput()); }
public RelNode visit(LogicalAggregate aggregate) { return visitChild(aggregate, 0, aggregate.getInput()); }
@Override public void onMatch(RelOptRuleCall call) { LogicalAggregate aggr = (LogicalAggregate) call.getRelList().get(0); RelNode input = aggr.getInput(); RelBuilder relBuilder = call.builder(); RexBuilder rexBuilder = aggr.getCluster().getRexBuilder();
@Override public RelNode convert(RelNode rel) { LogicalAggregate agg = (LogicalAggregate) rel; // AVG() will be transformed into SUM()/COUNT() by AggregateReduceFunctionsRule. // Here only let the transformed plan pass. if (containsAvg(agg)) { return null; } RelTraitSet traitSet = agg.getTraitSet().replace(OLAPRel.CONVENTION); try { return new OLAPAggregateRel(agg.getCluster(), traitSet, convert(agg.getInput(), OLAPRel.CONVENTION), agg.indicator, agg.getGroupSet(), agg.getGroupSets(), agg.getAggCallList()); } catch (InvalidRelException e) { throw new IllegalStateException("Can't create OLAPAggregateRel!", e); } }
final RelNode oldInput = rel.getInput(); final Frame frame = getInvoke(oldInput, rel); if (frame == null) {
@Override public RelNode visit(LogicalAggregate aggregate) { return aggregate.getInput().accept(this); }
public RelNode visit(LogicalAggregate aggregate) { aggCount++; return visitChild(aggregate, 0, aggregate.getInput()); }
public RelNode visit(LogicalAggregate aggregate) { return visitChild(aggregate, 0, aggregate.getInput()); }
public RelNode visit(LogicalAggregate aggregate) { return visitChild(aggregate, 0, aggregate.getInput()); }
@Override public RelNode visit(LogicalAggregate aggregate) { for(AggregateCall aggregateCall : aggregate.getAggCallList()) { if(aggregateCall.getAggregation() instanceof SqlSingleValueAggFunction) { // see DRILL-1937 unsupportedOperatorCollector.setException(SqlUnsupportedException.ExceptionType.FUNCTION, "Dremio doesn't currently support non-scalar sub-queries used in an expression"); throw new UnsupportedOperationException(); } } return visitChild(aggregate, 0, aggregate.getInput()); }
public void rewriteRel(LogicalAggregate rel) { RelDataType inputType = rel.getInput().getRowType(); for (RelDataTypeField field : inputType.getFieldList()) { if (field.getType().isStruct()) { // TODO jvs 10-Feb-2005 throw Util.needToImplement("aggregation on structured types"); } } rewriteGeneric(rel); }
public void rewriteRel(LogicalAggregate rel) { RelDataType inputType = rel.getInput().getRowType(); for (RelDataTypeField field : inputType.getFieldList()) { if (field.getType().isStruct()) { // TODO jvs 10-Feb-2005 throw Util.needToImplement("aggregation on structured types"); } } rewriteGeneric(rel); }
public RelNode convert(RelNode rel) { final LogicalAggregate agg = (LogicalAggregate) rel; final RelTraitSet traitSet = agg.getTraitSet().replace(BindableConvention.INSTANCE); try { return new BindableAggregate(rel.getCluster(), traitSet, convert(agg.getInput(), traitSet), agg.indicator, agg.getGroupSet(), agg.getGroupSets(), agg.getAggCallList()); } catch (InvalidRelException e) { RelOptPlanner.LOGGER.debug(e.toString()); return null; } } }
public RelNode convert(RelNode rel) { final LogicalAggregate agg = (LogicalAggregate) rel; final RelTraitSet traitSet = agg.getTraitSet().replace(BindableConvention.INSTANCE); try { return new BindableAggregate(rel.getCluster(), traitSet, convert(agg.getInput(), traitSet), agg.indicator, agg.getGroupSet(), agg.getGroupSets(), agg.getAggCallList()); } catch (InvalidRelException e) { RelOptPlanner.LOGGER.debug(e.toString()); return null; } } }
@Override public RelNode convert(RelNode rel) { LogicalAggregate agg = (LogicalAggregate) rel; // AVG() will be transformed into SUM()/COUNT() by AggregateReduceFunctionsRule. // Here only let the transformed plan pass. if (containsAvg(agg)) { return null; } RelTraitSet traitSet = agg.getTraitSet().replace(OLAPRel.CONVENTION); try { return new OLAPAggregateRel(agg.getCluster(), traitSet, convert(agg.getInput(), OLAPRel.CONVENTION), agg.indicator, agg.getGroupSet(), agg.getGroupSets(), agg.getAggCallList()); } catch (InvalidRelException e) { throw new IllegalStateException("Can't create OLAPAggregateRel!", e); } }
public RelNode convert(RelNode rel) { final LogicalAggregate agg = (LogicalAggregate) rel; final RelTraitSet traitSet = agg.getTraitSet().replace(EnumerableConvention.INSTANCE); try { return new EnumerableAggregate( rel.getCluster(), traitSet, convert(agg.getInput(), EnumerableConvention.INSTANCE), agg.indicator, agg.getGroupSet(), agg.getGroupSets(), agg.getAggCallList()); } catch (InvalidRelException e) { EnumerableRules.LOGGER.debug(e.toString()); return null; } } }
@Override public RelNode visit(LogicalAggregate aggregate) { final RelNode input = aggregate.getInput().accept(this); return new LogicalAggregate( cluster, copyOf(aggregate.getTraitSet()), input, aggregate.indicator, aggregate.getGroupSet(), aggregate.getGroupSets(), copyOf(aggregate.getAggCallList()) ); }
public RelNode convert(RelNode rel) { final LogicalAggregate agg = (LogicalAggregate) rel; final RelTraitSet traitSet = agg.getTraitSet().replace(out); try { return new ElasticsearchAggregate( rel.getCluster(), traitSet, convert(agg.getInput(), traitSet.simplify()), agg.indicator, agg.getGroupSet(), agg.getGroupSets(), agg.getAggCallList()); } catch (InvalidRelException e) { return null; } } }
public void onMatch(RelOptRuleCall call) { RelTraitSet empty = call.getPlanner().emptyTraitSet(); LogicalAggregate rel = call.rel(0); assert rel.getGroupSet().cardinality() == 1; int aggIndex = rel.getGroupSet().iterator().next(); RelTrait collation = RelCollations.of( new RelFieldCollation(aggIndex, RelFieldCollation.Direction.ASCENDING, RelFieldCollation.NullDirection.FIRST)); RelTraitSet desiredTraits = empty.replace(PHYSICAL).replace(collation); RelNode convertedInput = convert(rel.getInput(), desiredTraits); call.transformTo( new PhysAgg(rel.getCluster(), empty.replace(PHYSICAL), convertedInput, rel.indicator, rel.getGroupSet(), rel.getGroupSets(), rel.getAggCallList())); } }
public void onMatch(RelOptRuleCall call) { RelTraitSet empty = call.getPlanner().emptyTraitSet(); LogicalAggregate rel = call.rel(0); assert rel.getGroupSet().cardinality() == 1; int aggIndex = rel.getGroupSet().iterator().next(); RelTrait collation = RelCollations.of( new RelFieldCollation(aggIndex, RelFieldCollation.Direction.ASCENDING, RelFieldCollation.NullDirection.FIRST)); RelTraitSet desiredTraits = empty.replace(PHYSICAL).replace(collation); RelNode convertedInput = convert(rel.getInput(), desiredTraits); call.transformTo( new PhysAgg(rel.getCluster(), empty.replace(PHYSICAL), convertedInput, rel.indicator, rel.getGroupSet(), rel.getGroupSets(), rel.getAggCallList())); } }