Thread: MERGE RETURNING

MERGE RETURNING

From
Miles Elam
Date:
Are there any plans to (or specific decisions not to) support a RETURNING clause on MERGE statements in future versions of Postgres? The only reference I could find in the mailing list archives was this comment, which suggested it was desired but simply not technically feasible at the time.


e.g.

MERGE INTO customer_account ca
USING (SELECT customer_id, transaction_value FROM recent_transactions) AS t
ON t.customer_id = ca.customer_id
WHEN MATCHED THEN
  UPDATE SET balance = balance + transaction_value
WHEN NOT MATCHED THEN
  INSERT (customer_id, balance)
  VALUES (t.customer_id, t.transaction_value)
RETURNING customer_account.*;

Re: MERGE RETURNING

From
Simon Riggs
Date:
On Wed, 23 Nov 2022 at 19:03, Miles Elam <miles.elam@productops.com> wrote:
>
> Are there any plans to (or specific decisions not to) support a RETURNING clause on MERGE statements in future
versionsof Postgres? The only reference I could find in the mailing list archives was this comment, which suggested it
wasdesired but simply not technically feasible at the time. 
>
> https://www.postgresql.org/message-id/202203161918.qz6phlortw2w@alvherre.pgsql
>
> e.g.
>
> MERGE INTO customer_account ca
> USING (SELECT customer_id, transaction_value FROM recent_transactions) AS t
> ON t.customer_id = ca.customer_id
> WHEN MATCHED THEN
>   UPDATE SET balance = balance + transaction_value
> WHEN NOT MATCHED THEN
>   INSERT (customer_id, balance)
>   VALUES (t.customer_id, t.transaction_value)
> RETURNING customer_account.*;

I think the only issue was getting the work done in the time available.

I don't see any problems with that as a feature, but AFAIK there are
no plans for that.

--
Simon Riggs                http://www.EnterpriseDB.com/