diff options
Diffstat (limited to 'src/backend/nodes/outfuncs.c')
-rw-r--r-- | src/backend/nodes/outfuncs.c | 32 |
1 files changed, 32 insertions, 0 deletions
diff --git a/src/backend/nodes/outfuncs.c b/src/backend/nodes/outfuncs.c index 7918553da0a..66fee3ef61d 100644 --- a/src/backend/nodes/outfuncs.c +++ b/src/backend/nodes/outfuncs.c @@ -679,6 +679,9 @@ _outAgg(StringInfo str, const Agg *node) appendStringInfo(str, " %u", node->grpOperators[i]); WRITE_LONG_FIELD(numGroups); + + WRITE_NODE_FIELD(groupingSets); + WRITE_NODE_FIELD(chain); } static void @@ -1004,6 +1007,18 @@ _outAggref(StringInfo str, const Aggref *node) } static void +_outGroupingFunc(StringInfo str, const GroupingFunc *node) +{ + WRITE_NODE_TYPE("GROUPINGFUNC"); + + WRITE_NODE_FIELD(args); + WRITE_NODE_FIELD(refs); + WRITE_NODE_FIELD(cols); + WRITE_INT_FIELD(agglevelsup); + WRITE_LOCATION_FIELD(location); +} + +static void _outWindowFunc(StringInfo str, const WindowFunc *node) { WRITE_NODE_TYPE("WINDOWFUNC"); @@ -2364,6 +2379,7 @@ _outQuery(StringInfo str, const Query *node) WRITE_NODE_FIELD(onConflict); WRITE_NODE_FIELD(returningList); WRITE_NODE_FIELD(groupClause); + WRITE_NODE_FIELD(groupingSets); WRITE_NODE_FIELD(havingQual); WRITE_NODE_FIELD(windowClause); WRITE_NODE_FIELD(distinctClause); @@ -2399,6 +2415,16 @@ _outSortGroupClause(StringInfo str, const SortGroupClause *node) } static void +_outGroupingSet(StringInfo str, const GroupingSet *node) +{ + WRITE_NODE_TYPE("GROUPINGSET"); + + WRITE_ENUM_FIELD(kind, GroupingSetKind); + WRITE_NODE_FIELD(content); + WRITE_LOCATION_FIELD(location); +} + +static void _outWindowClause(StringInfo str, const WindowClause *node) { WRITE_NODE_TYPE("WINDOWCLAUSE"); @@ -3087,6 +3113,9 @@ _outNode(StringInfo str, const void *obj) case T_Aggref: _outAggref(str, obj); break; + case T_GroupingFunc: + _outGroupingFunc(str, obj); + break; case T_WindowFunc: _outWindowFunc(str, obj); break; @@ -3349,6 +3378,9 @@ _outNode(StringInfo str, const void *obj) case T_SortGroupClause: _outSortGroupClause(str, obj); break; + case T_GroupingSet: + _outGroupingSet(str, obj); + break; case T_WindowClause: _outWindowClause(str, obj); break; |