Re: Adding OLD/NEW support to RETURNING

From: jian he <jian(dot)universality(at)gmail(dot)com>
To: Dean Rasheed <dean(dot)a(dot)rasheed(at)gmail(dot)com>
Cc: Jeff Davis <pgsql(at)j-davis(dot)com>, PostgreSQL Hackers <pgsql-hackers(at)lists(dot)postgresql(dot)org>, Tomas Vondra <tomas(at)vondra(dot)me>
Subject: Re: Adding OLD/NEW support to RETURNING
Date: 2024-10-14 06:41:34
Message-ID: CACJufxGzv=ac3wZ76WS=2yVPhwN=Aq2o3QKZmLsJaH+851c38Q@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

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.

In response to

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message Peter Eisentraut 2024-10-14 06:46:07 Re: Cannot find a working 64-bit integer type on Illumos
Previous Message Bertrand Drouvot 2024-10-14 06:23:06 Re: Add contrib/pg_logicalsnapinspect