From: | Alvaro Herrera <alvherre(at)alvh(dot)no-ip(dot)org> |
---|---|
To: | Thomas Munro <thomas(dot)munro(at)gmail(dot)com> |
Cc: | Pg Hackers <pgsql-hackers(at)lists(dot)postgresql(dot)org> |
Subject: | Re: transition tables and UPDATE |
Date: | 2023-02-01 11:57:24 |
Message-ID: | 20230201115724.kfkt5etxlr3fdxj2@alvherre.pgsql |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-hackers |
On 2023-Feb-01, Thomas Munro wrote:
> On Wed, Feb 1, 2023 at 10:18 PM Alvaro Herrera <alvherre(at)alvh(dot)no-ip(dot)org> wrote:
> > Earlier today I gave a talk about MERGE and wanted to provide an example
> > with FOR EACH STATEMENT triggers using transition tables. However, I
> > can't find a non-ugly way to obtain the NEW row that corresponds to each
> > OLD row ... I had to resort to an ugly trick with OFFSET n LIMIT 1.
> > Can anyone suggest anything better? I couldn't find any guidance in the
> > docs.
>
> I don't know the answer, either in PostgreSQL or the SQL spec. I
> wondered if there *should* be a way here:
>
> https://www.postgresql.org/message-id/CAEepm=1ncxBNna-pXGr2hnMHRyYi_6_AwG_352-Jn=mwdFdAGw@mail.gmail.com
I had tried to tie these relations using WITH ORDINALITY, but the only
way I could think of (array_agg to then unnest() WITH ORDINALITY) was
even uglier than what I already had. So yeah, I think it might be
useful if we had a way to inject a counter or something in there.
--
Álvaro Herrera PostgreSQL Developer — https://www.EnterpriseDB.com/
"The important things in the world are problems with society that we don't
understand at all. The machines will become more complicated but they won't
be more complicated than the societies that run them." (Freeman Dyson)
From | Date | Subject | |
---|---|---|---|
Next Message | Amit Kapila | 2023-02-01 12:00:23 | Re: Perform streaming logical transactions by background workers and parallel apply |
Previous Message | Andres Freund | 2023-02-01 11:54:26 | Re: recovery modules |