@@ -2604,6 +2604,7 @@ expression_tree_mutator(Node *node,
2604
2604
case T_NextValueExpr :
2605
2605
case T_RangeTblRef :
2606
2606
case T_SortGroupClause :
2607
+ case T_JsonFormat :
2607
2608
return (Node * ) copyObject (node );
2608
2609
case T_WithCheckOption :
2609
2610
{
@@ -3198,6 +3199,16 @@ expression_tree_mutator(Node *node,
3198
3199
return (Node * ) newnode ;
3199
3200
}
3200
3201
break ;
3202
+ case T_JsonReturning :
3203
+ {
3204
+ JsonReturning * jr = (JsonReturning * ) node ;
3205
+ JsonReturning * newnode ;
3206
+
3207
+ FLATCOPY (newnode , jr , JsonReturning );
3208
+ MUTATE (newnode -> format , jr -> format , JsonFormat * );
3209
+
3210
+ return (Node * ) newnode ;
3211
+ }
3201
3212
case T_JsonValueExpr :
3202
3213
{
3203
3214
JsonValueExpr * jve = (JsonValueExpr * ) node ;
@@ -3206,6 +3217,7 @@ expression_tree_mutator(Node *node,
3206
3217
FLATCOPY (newnode , jve , JsonValueExpr );
3207
3218
MUTATE (newnode -> raw_expr , jve -> raw_expr , Expr * );
3208
3219
MUTATE (newnode -> formatted_expr , jve -> formatted_expr , Expr * );
3220
+ MUTATE (newnode -> format , jve -> format , JsonFormat * );
3209
3221
3210
3222
return (Node * ) newnode ;
3211
3223
}
@@ -3904,6 +3916,8 @@ raw_expression_tree_walker(Node *node,
3904
3916
break ;
3905
3917
case T_CommonTableExpr :
3906
3918
return walker (((CommonTableExpr * ) node )-> ctequery , context );
3919
+ case T_JsonReturning :
3920
+ return walker (((JsonReturning * ) node )-> format , context );
3907
3921
case T_JsonValueExpr :
3908
3922
{
3909
3923
JsonValueExpr * jve = (JsonValueExpr * ) node ;
@@ -3912,6 +3926,8 @@ raw_expression_tree_walker(Node *node,
3912
3926
return true;
3913
3927
if (walker (jve -> formatted_expr , context ))
3914
3928
return true;
3929
+ if (walker (jve -> format , context ))
3930
+ return true;
3915
3931
}
3916
3932
break ;
3917
3933
default :
0 commit comments