From: | Zhihong Yu <zyu(at)yugabyte(dot)com> |
---|---|
To: | Álvaro Herrera <alvherre(at)alvh(dot)no-ip(dot)org> |
Cc: | Andres Freund <andres(at)anarazel(dot)de>, "pgsql-hackers(at)lists(dot)postgresql(dot)org" <pgsql-hackers(at)lists(dot)postgresql(dot)org>, Simon Riggs <simon(dot)riggs(at)enterprisedb(dot)com>, Tomas Vondra <tomas(dot)vondra(at)enterprisedb(dot)com>, Daniel Westermann <dwe(at)dbi-services(dot)com>, Amit Langote <amitlangote09(at)gmail(dot)com>, Justin Pryzby <pryzby(at)telsasoft(dot)com>, Japin Li <japinli(at)hotmail(dot)com>, Erik Rijkers <er(at)xs4all(dot)nl>, Jaime Casanova <jcasanov(at)systemguards(dot)com(dot)ec> |
Subject: | Re: support for MERGE |
Date: | 2022-03-07 22:53:15 |
Message-ID: | CALNJ-vTXOu5Nfji-kjgvJ58uZN5d8gUZcG+UTto=40oE5B_nQg@mail.gmail.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-hackers |
On Mon, Mar 7, 2022 at 12:04 PM Álvaro Herrera <alvherre(at)alvh(dot)no-ip(dot)org>
wrote:
> On Mon, Mar 7, 2022, at 4:59 PM, Álvaro Herrera wrote:
>
> I attach v13 here. This version includes a 0002 that's does the split of
> nodeModifyTable.c routines, then 0003 implements MERGE on top of that.
> 0001 is as before.
>
>
> In 0002, I've opted to have two separate structs. One is the
> ModifyTableContext, as before, but I've removed 'tupleid' and 'oldtuple'
> (the specification of the tuple to delete/update) because it makes
> ExecCrossPartitionUpdate cleaner if we pass them separately. The second
> struct is UpdateContext, which is used inside ExecUpdate as output data
> from its subroutines. This is also for the benefit of cross-partition
> updates.
>
> I'm pretty happy with how this turned out; even without considering MERGE,
> it seems to me that ExecUpdate benefits from being shorter.
>
Hi,
For v13-0003-MERGE-SQL-Command-following-SQL-2016.patch :
+ * Reset per-tuple memory context to free any expression evaluation
+ * storage allocated in the previous cycle.
+ */
+ ResetExprContext(econtext);
Why is the memory cleanup done in the next cycle ? Can the cleanup be done
at the end of the current cycle ?
+ * XXX Should this explain why MERGE has the same logic as
UPDATE?
I think explanation should be given.
Cheers
From | Date | Subject | |
---|---|---|---|
Next Message | Alexander Korotkov | 2022-03-07 23:05:04 | Re: ltree_gist indexes broken after pg_upgrade from 12 to 13 |
Previous Message | Tom Lane | 2022-03-07 22:51:11 | Re: New developer papercut - Makefile references INSTALL |