Expressions.newArrayBounds(Object.class, 1, Expressions.constant(1))); builder.add( Expressions.statement( Expressions.call( Expressions.parameter(ExecutableExpression.class, "this"), StormBuiltInMethod.EXPR_EXECUTE2.method, context, values_))); builder.add( Expressions.return_(null, Expressions.arrayIndex(values_, Expressions.constant(0))));
null, root, inputGetter, correlates); for (int i = 0; i < list.size(); i++) { builder.add( Expressions.statement( Expressions.assign(
@Override public Result implement(EnumerableRelImplementor implementor, Prefer pref) { final BlockBuilder builder = new BlockBuilder(); Expression unionExp = null; for (Ord<RelNode> ord : Ord.zip(inputs)) { EnumerableRel input = (EnumerableRel) ord.e; final Result result = implementor.visitChild(this, ord.i, input, pref); Expression childExp = builder.append( "child" + ord.i, result.block); if (unionExp == null) { unionExp = childExp; } else { unionExp = createUnionExpression(unionExp, childExp, result.format == JavaRowFormat.ARRAY); } } builder.add(unionExp); final PhysType physType = PhysTypeImpl.of( implementor.getTypeFactory(), getRowType(), pref.prefer(JavaRowFormat.CUSTOM)); return implementor.result(physType, builder.toBlock()); } }
@Override public void implementNotNullAdd(WinAggContext info, WinAggAddContext add) { if (justFrameRowCount) { return; } add.currentBlock().add( Expressions.statement( Expressions.postIncrementAssign(add.accumulator().get(0)))); }
@Override public void implementNotNullAdd(AggContext info, AggAddContext add) { // acc[0].add(arg); add.currentBlock().add( Expressions.statement( Expressions.call(add.accumulator().get(0), BuiltInMethod.COLLECTION_ADD.method, add.arguments().get(0)))); } }
@Override public void implementNotNullAdd(AggContext info, AggAddContext add) { add.currentBlock().add( Expressions.statement( Expressions.postIncrementAssign(add.accumulator().get(0)))); } }
@Override public void implementAdd(AggContext info, AggAddContext add) { final SqlJsonObjectAggAggFunction function = (SqlJsonObjectAggAggFunction) info.aggregation(); add.currentBlock().add( Expressions.statement( Expressions.call(m, Iterables.concat( Collections.singletonList(add.accumulator().get(0)), add.arguments(), Collections.singletonList( Expressions.constant(function.getNullClause())))))); }
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 implementAdd(AggContext info, AggAddContext add) { final SqlJsonArrayAggAggFunction function = (SqlJsonArrayAggAggFunction) info.aggregation(); add.currentBlock().add( Expressions.statement( Expressions.call(m, Iterables.concat( Collections.singletonList(add.accumulator().get(0)), add.arguments(), Collections.singletonList( Expressions.constant(function.getNullClause())))))); }
@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); }
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)))); }
@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 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())))); }