Re: postgres_fdw: batch inserts vs. before row triggers

Etsuro Fujita <etsuro.fujita@gmail.com>

From: Etsuro Fujita <etsuro.fujita@gmail.com>
To: Tomas Vondra <tomas.vondra@enterprisedb.com>
Cc: PostgreSQL Hackers <pgsql-hackers@lists.postgresql.org>
Date: 2022-08-05T08:36:22Z
Lists: pgsql-hackers
On Wed, Aug 3, 2022 at 2:24 PM Etsuro Fujita <etsuro.fujita@gmail.com> wrote:
> To fix, I modified postgresGetForeignModifyBatchSize() to disable
> batch insert when there are any such constraints, like when there are
> any AFTER ROW triggers on the foreign table.  Attached is a patch for
> that.
>
> If there are no objections, I'll commit the patch.

Pushed after modifying the patch a bit so that in that function the
WCO test in the if test is done before the trigger test, as the former
would be cheaper than the latter.

Best regards,
Etsuro Fujita



Commits

  1. Remove new structure member from ResultRelInfo.

  2. Fix handling of pending inserts in nodeModifyTable.c.

  3. postgres_fdw: Disable batch insertion when there are WCO constraints.

  4. postgres_fdw: Disable batch insert when BEFORE ROW INSERT triggers exist.

  5. Implement support for bulk inserts in postgres_fdw