@Override public ExpressionPostAggregator decorate(final Map<String, AggregatorFactory> aggregators) { return new ExpressionPostAggregator( name, expression, ordering, macroTable, aggregators.entrySet().stream().collect( Collectors.toMap( entry -> entry.getKey(), entry -> entry.getValue()::finalizeComputation ) ) ); }
expressionPostAggregator = new ExpressionPostAggregator("add", "roku + rows", null, TestExprMacroTable.INSTANCE); Assert.assertEquals(9.0, arithmeticPostAggregator.compute(metricValues)); Assert.assertEquals(9.0, expressionPostAggregator.compute(metricValues)); expressionPostAggregator = new ExpressionPostAggregator("add", "roku - rows", null, TestExprMacroTable.INSTANCE); Assert.assertEquals(3.0, arithmeticPostAggregator.compute(metricValues)); Assert.assertEquals(3.0, expressionPostAggregator.compute(metricValues)); expressionPostAggregator = new ExpressionPostAggregator("add", "roku * rows", null, TestExprMacroTable.INSTANCE); Assert.assertEquals(18.0, arithmeticPostAggregator.compute(metricValues)); Assert.assertEquals(18.0, expressionPostAggregator.compute(metricValues)); expressionPostAggregator = new ExpressionPostAggregator("add", "roku / rows", null, TestExprMacroTable.INSTANCE); Assert.assertEquals(2.0, arithmeticPostAggregator.compute(metricValues)); Assert.assertEquals(2.0, expressionPostAggregator.compute(metricValues));
public static ExpressionPostAggregator EXPRESSION_POST_AGG(final String name, final String expression) { return new ExpressionPostAggregator(name, expression, null, CalciteTests.createExprMacroTable()); }
} else { final String postAggregatorName = outputNamePrefix + outputNameCounter++; final PostAggregator postAggregator = new ExpressionPostAggregator( postAggregatorName, postAggregatorExpression.getExpression(),
Collections.singletonList(new ExpressionPostAggregator( QueryRunnerTestHelper.hyperUniqueFinalizingPostAggMetric, "uniques + 1",
Collections.singletonList(new ExpressionPostAggregator( QueryRunnerTestHelper.hyperUniqueFinalizingPostAggMetric, "uniques + 1",
ImmutableList.of(new DefaultDimensionSpec("k1", "k1")), ImmutableList.of(new LongSumAggregatorFactory("k2", "k2")), ImmutableList.of(new ExpressionPostAggregator("k1", "1 + 1", null, TestExprMacroTable.INSTANCE)), Granularities.NONE, false
new ExpressionPostAggregator("rows_times_10", "rows * 10.0", null, TestExprMacroTable.INSTANCE)
.setPostAggregatorSpecs( ImmutableList.of( new ExpressionPostAggregator("post", "alias + 'x'", null, TestExprMacroTable.INSTANCE)
@Override public ExpressionPostAggregator decorate(final Map<String, AggregatorFactory> aggregators) { return new ExpressionPostAggregator( name, expression, ordering, macroTable, aggregators.entrySet().stream().collect( Collectors.toMap( entry -> entry.getKey(), entry -> entry.getValue()::finalizeComputation ) ) ); }
} else { final String postAggregatorName = outputNamePrefix + outputNameCounter++; final PostAggregator postAggregator = new ExpressionPostAggregator( postAggregatorName, postAggregatorExpression.getExpression(),