From: | Dean Rasheed <dean(dot)a(dot)rasheed(at)gmail(dot)com> |
---|---|
To: | walther(at)technowledgy(dot)de |
Cc: | Jeff Davis <pgsql(at)j-davis(dot)com>, Vik Fearing <vik(at)postgresfriends(dot)org>, Gurjeet Singh <gurjeet(at)singh(dot)im>, Isaac Morland <isaac(dot)morland(at)gmail(dot)com>, PostgreSQL Hackers <pgsql-hackers(at)lists(dot)postgresql(dot)org>, jian he <jian(dot)universality(at)gmail(dot)com> |
Subject: | Re: MERGE ... RETURNING |
Date: | 2024-03-10 15:22:49 |
Message-ID: | CAEZATCX8AS-w1HVhD-F_1_pEhdUEJVp3F8qv13LVX+zHsS-sqQ@mail.gmail.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-hackers |
On Fri, 8 Mar 2024 at 08:41, <walther(at)technowledgy(dot)de> wrote:
>
> I can't judge the grammar and complexity issues, but as a potential user
> it seems to me to be less complex to have multiple RETURNING clauses,
> where I could inject my own constants about the specific actions, than
> to have to deal with any of the suggested functions / clauses. More
> repetitive, yes - but not more complex.
>
> More importantly, I could add RETURNING to only some of the actions and
> not always all at the same time - which seems pretty useful to me.
>
I think that would be a bad idea, since it would mean the number of
rows returned would no longer match the number of rows modified, which
is a general property of all data-modifying commands that support
RETURNING. It would also increase the chances of bugs for users who
might accidentally miss a WHEN clause.
Looking back over the thread the majority opinion seems to be:
1). Have a single RETURNING list, rather than one per action
2). Drop the "clause number" function
3). Call the other function MERGE_ACTION()
And from an implementation point-of-view, it seems better to stick
with having a new node type to handle MERGE_ACTION(), and make
MERGE_ACTION a COL_NAME_KEYWORD.
This seems like a reasonable compromise, and it still allows the
specific WHEN clause that was executed to be identified by using a
combination of MERGE_ACTION() and the attributes from the source and
target relations. More functions can always be added later, if there
is demand.
Attached is a rebased patch, with those changes.
Regards,
Dean
Attachment | Content-Type | Size |
---|---|---|
support-merge-returning-v17.patch | text/x-patch | 106.0 KB |
From | Date | Subject | |
---|---|---|---|
Next Message | Pavel Stehule | 2024-03-10 15:51:19 | Re: pg_dump include/exclude fails to error |
Previous Message | jian he | 2024-03-10 14:57:15 | Re: remaining sql/json patches |