From: | Andres Freund <andres(at)anarazel(dot)de> |
---|---|
To: | David Rowley <david(dot)rowley(at)2ndquadrant(dot)com> |
Cc: | Michael Paquier <michael(at)paquier(dot)xyz>, Robert Haas <robertmhaas(at)gmail(dot)com>, Postgres hackers <pgsql-hackers(at)lists(dot)postgresql(dot)org> |
Subject: | Re: Custom table AMs need to include heapam.h because of BulkInsertState |
Date: | 2019-07-17 23:36:11 |
Message-ID: | 20190717233611.h3gpcj4yypymmsax@alap3.anarazel.de |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-hackers |
Hi,
On 2019-07-18 11:29:37 +1200, David Rowley wrote:
> On Wed, 17 Jul 2019 at 06:46, Andres Freund <andres(at)anarazel(dot)de> wrote:
> > 1) Have ExecFindPartition() return via a bool* whether the partition is
> > being accessed for the first time. In copy.c push the partition onto
> > a list of to-be-bulk-finished tables.
> > 2) Add a execPartition.c function that returns all the used tables from
> > a PartitionTupleRouting*.
>
> #2 seems better than #1 as it does not add overhead to ExecFindPartition().
I don't see how #1 would add meaningful overhead compared to the other
costs of that function. Wouldn't it just be adding if (isnew) *isnew =
false; to the "/* ResultRelInfo already built */" branch, and the
reverse to the else? That got to be several orders of magnitude cheaper
than e.g. FormPartitionKeyDatum() which is unconditionally executed?
> Are you thinking this should go back into v12, or just for v13 only?
Not sure, tbh. Probably depends a bit on how complicated it'd look?
Greetings,
Andres Freund
From | Date | Subject | |
---|---|---|---|
Next Message | Melanie Plageman | 2019-07-17 23:46:37 | Re: Extracting only the columns needed for a query |
Previous Message | Gareth Palmer | 2019-07-17 23:30:04 | Re: [PATCH] Implement INSERT SET syntax |