// -------------------------------------------------------------------------------------
// set up aggregation function on the StormComponent(Bolt) where join is
// performed
// 1 - discount
final ValueExpression<Double> substract1 = new Subtraction(new ValueSpecification(
_doubleConv, 1.0), new ColumnReference(_doubleConv, 2));
// extendedPrice*(1-discount)
final ValueExpression<Double> product1 = new Multiplication(new ColumnReference(
_doubleConv, 1), substract1);
// ps_supplycost * l_quantity
final ValueExpression<Double> product2 = new Multiplication(new ColumnReference(
_doubleConv, 3), new ColumnReference(_doubleConv, 0));
// all together
final ValueExpression<Double> substract2 = new Subtraction(product1, product2);
final AggregateOperator agg = new AggregateSumOperator(substract2, conf)
.setGroupByColumns(Arrays.asList(5, 4));
new EquiJoinComponent(P_L_PS_O_Sjoin, relationNation, _queryPlan).addOperator(