subselectNode.setStrategy(strategyInstance.getStategy());
subselectNode.setSubselectAggregationService(strategyInstance.getSubselectAggregationService());
// initialize aggregations in the subselect
SubSelectStrategyFactoryDesc factoryDesc = subSelectStrategyCollection.getSubqueries().get(subselectNode);
if (factoryDesc.getAggregationServiceFactoryDesc() != null) {
for (AggregationServiceAggExpressionDesc aggExpressionDesc : factoryDesc.getAggregationServiceFactoryDesc().getExpressions()) {
aggExpressionDesc.assignFuture(subselectEntry.getValue().getSubselectAggregationService());
}
if (factoryDesc.getAggregationServiceFactoryDesc().getGroupKeyExpressions() != null) {
for (ExprAggregateNodeGroupKey groupKeyExpr : factoryDesc.getAggregationServiceFactoryDesc().getGroupKeyExpressions()) {
groupKeyExpr.assignFuture(subselectEntry.getValue().getSubselectAggregationService());
}
}
}