On Mon, Oct 14, 2024 at 7:03 PM Dean Rasheed <dean.a.rash...@gmail.com> wrote: > > > > typedef struct ReturningOption > > > { > > > NodeTag type; > > > bool isNew; > > > char *name; > > > int location; > > > } ReturningOption; > > Thinking about that struct some more, I think "isNew" is better done > as an enum, since this is meant to be a generic option. So even though > it might never have more than 2 possible values, I think it's neater > done that way. >
typedef struct ReturningOption { NodeTag type; ReturningOptionKind option; /* specified option */ char *value; /* option's value */ ParseLoc location; /* token location, or -1 if unknown */ } ReturningOption; @@ -4304,6 +4332,16 @@ raw_expression_tree_walker_impl(Node *no return true; } break; + case T_ReturningClause: + { + ReturningClause *returning = (ReturningClause *) node; + + if (WALK(returning->options)) + return true; + if (WALK(returning->exprs)) + return true; + } + break; + if (WALK(returning->options)) + return true; T_ReturningOption is primitive, so we only need to "if (WALK(returning->exprs))"?