builder.add( Expressions.statement( Expressions.assign( Expressions.arrayIndex(outputValues, Expressions.constant(i)),
@Override protected void implementNotNullAdd(AggContext info, AggAddContext add) { List<Expression> acc = add.accumulator(); List<Expression> aggArgs = add.arguments(); List<Expression> args = new ArrayList<>(aggArgs.size() + 1); args.add(acc.get(0)); args.addAll(aggArgs); add.currentBlock().add( Expressions.statement( Expressions.assign(acc.get(0), Expressions.call(afi.isStatic ? null : acc.get(1), afi.addMethod, args)))); }
public void implementReset(AggContext info, AggResetContext reset) { List<Expression> acc = reset.accumulator(); reset.currentBlock().add( Expressions.statement( Expressions.assign(acc.get(0), Expressions.constant(false)))); reset.currentBlock().add( Expressions.statement( Expressions.assign(acc.get(1), getDefaultValue(acc.get(1).getType())))); }
public void implementReset(AggContext info, AggResetContext reset) { List<Expression> acc = reset.accumulator(); reset.currentBlock().add( Expressions.statement( Expressions.assign(acc.get(0), Expressions.constant(false)))); reset.currentBlock().add( Expressions.statement( Expressions.assign(acc.get(1), getDefaultValue(acc.get(1).getType())))); }
@Override public void implementReset(AggContext info, AggResetContext reset) { reset.currentBlock().add( Expressions.statement( Expressions.assign(reset.accumulator().get(0), Expressions.new_(HashMap.class)))); }
@Override public void implementReset(AggContext info, AggResetContext reset) { reset.currentBlock().add( Expressions.statement( Expressions.assign(reset.accumulator().get(0), Expressions.new_(ArrayList.class)))); }
@Override protected void implementNotNullReset(AggContext info, AggResetContext reset) { // acc[0] = new ArrayList(); reset.currentBlock().add( Expressions.statement( Expressions.assign(reset.accumulator().get(0), Expressions.new_(ArrayList.class)))); }
@Override protected void implementNotNullReset(AggContext info, AggResetContext reset) { // acc[0] = new ArrayList(); reset.currentBlock().add( Expressions.statement( Expressions.assign(reset.accumulator().get(0), Expressions.new_(ArrayList.class)))); }
public final void implementReset(AggContext info, AggResetContext reset) { if (trackNullsPerRow) { List<Expression> acc = reset.accumulator(); Expression flag = acc.get(acc.size() - 1); BlockBuilder block = reset.currentBlock(); block.add( Expressions.statement( Expressions.assign(flag, RexImpTable.getDefaultValue(flag.getType())))); } implementNotNullReset(info, reset); }
@Override protected void implementNotNullReset(AggContext info, AggResetContext reset) { // acc[0] = new ArrayList(); reset.currentBlock().add( Expressions.statement( Expressions.assign(reset.accumulator().get(0), Expressions.new_(ArrayList.class)))); }
@Override protected void implementNotNullReset(AggContext info, AggResetContext reset) { // acc[0] = new ArrayList(); reset.currentBlock().add( Expressions.statement( Expressions.assign(reset.accumulator().get(0), Expressions.new_(ArrayList.class)))); }
protected final void accAdvance(AggAddContext add, Expression acc, Expression next) { add.currentBlock().add( Expressions.statement( Expressions.assign(acc, Types.castIfNecessary(acc.type, next)))); }
protected final void accAdvance(AggAddContext add, Expression acc, Expression next) { add.currentBlock().add( Expressions.statement( Expressions.assign(acc, Types.castIfNecessary(acc.type, next)))); }
public final void implementReset(AggContext info, AggResetContext reset) { if (trackNullsPerRow) { List<Expression> acc = reset.accumulator(); Expression flag = acc.get(acc.size() - 1); BlockBuilder block = reset.currentBlock(); block.add( Expressions.statement( Expressions.assign(flag, RexImpTable.getDefaultValue(flag.getType())))); } implementNotNullReset(info, reset); }
@Override protected void implementNotNullReset(AggContext info, AggResetContext reset) { Expression start = info.returnType() == BigDecimal.class ? Expressions.constant(BigDecimal.ZERO) : Expressions.constant(0); reset.currentBlock().add( Expressions.statement( Expressions.assign(reset.accumulator().get(0), start))); }
protected void implementNotNullReset(AggContext info, AggResetContext reset) { BlockBuilder block = reset.currentBlock(); List<Expression> accumulator = reset.accumulator(); for (int i = 0; i < getStateSize(); i++) { Expression exp = accumulator.get(i); block.add( Expressions.statement( Expressions.assign(exp, RexImpTable.getDefaultValue(exp.getType())))); } }
protected void implementNotNullReset(AggContext info, AggResetContext reset) { BlockBuilder block = reset.currentBlock(); List<Expression> accumulator = reset.accumulator(); for (int i = 0; i < getStateSize(); i++) { Expression exp = accumulator.get(i); block.add( Expressions.statement( Expressions.assign(exp, RexImpTable.getDefaultValue(exp.getType())))); } }
@Override protected void implementNotNullReset(AggContext info, AggResetContext reset) { Expression start = info.returnType() == BigDecimal.class ? Expressions.constant(BigDecimal.ZERO) : Expressions.constant(0); reset.currentBlock().add( Expressions.statement( Expressions.assign(reset.accumulator().get(0), start))); }
@Override protected void implementNotNullReset(AggContext info, AggResetContext reset) { Expression acc = reset.accumulator().get(0); Primitive p = Primitive.of(acc.getType()); boolean isMin = MIN == info.aggregation(); Object inf = p == null ? null : (isMin ? p.max : p.min); reset.currentBlock().add( Expressions.statement( Expressions.assign(acc, Expressions.constant(inf, acc.getType())))); }
@Override protected void implementNotNullReset(AggContext info, AggResetContext reset) { Expression acc = reset.accumulator().get(0); Primitive p = Primitive.of(acc.getType()); boolean isMin = MIN == info.aggregation(); Object inf = p == null ? null : (isMin ? p.max : p.min); reset.currentBlock().add( Expressions.statement( Expressions.assign(acc, Expressions.constant(inf, acc.getType())))); }