typedef struct ReturningOption
{
NodeTag type;
bool isNew;
char *name;
int location;
} ReturningOption;
location should be type ParseLoc?
in process_sublinks_mutator
else if (IsA(node, ReturningExpr))
{
if (((ReturningExpr *) node)->retlevelsup > 0)
return node;
}
this part doesn't have a coverage test?
the following is the minimum tests i come up with:
create table s (a int, b int);
create view sv as select * from s;
explain insert into sv values(1,2) returning (select new from
(values((select new))));
explain insert into sv values(1,2) returning (select new from (((select new))));
won't touch the changes we did.
but these two explain output plans are the same.