@Override
public Void visitGroupId(GroupIdNode node, Integer indent)
{
List<List<Symbol>> inputGroupingSetSymbols = node.getGroupingSets().stream()
.map(set -> set.stream()
.map(symbol -> node.getGroupingColumns().get(symbol))
.collect(Collectors.toList()))
.collect(Collectors.toList());
print(indent, "- GroupId%s => [%s]", inputGroupingSetSymbols, formatOutputs(node.getOutputSymbols()));
printPlanNodesStatsAndCost(indent + 2, node);
printStats(indent + 2, node.getId());
for (Map.Entry<Symbol, Symbol> mapping : node.getGroupingColumns().entrySet()) {
print(indent + 2, "%s := %s", mapping.getKey(), mapping.getValue());
}
return processChildren(node, indent + 1);
}