pgsql: Allow batching of inserts during cross-partition updates. - Mailing list pgsql-committers

From Etsuro Fujita
Subject pgsql: Allow batching of inserts during cross-partition updates.
Date
Msg-id E1p7Zbq-004Xnz-Tm@gemulon.postgresql.org
Whole thread Raw
List pgsql-committers
Allow batching of inserts during cross-partition updates.

Commit 927f453a9 disallowed batching added by commit b663a4136 to be
used for the inserts performed as part of cross-partition updates of
partitioned tables, mainly because the previous code in
nodeModifyTable.c couldn't handle pending inserts into foreign-table
partitions that are also UPDATE target partitions.  But we don't have
such a limitation anymore (cf. commit ffbb7e65a), so let's allow for
this by removing from execPartition.c the restriction added by commit
927f453a9 that batching is only allowed if the query command type is
CMD_INSERT.

In postgres_fdw, since commit 86dc90056 changed it to effectively
disable cross-partition updates in the case where a foreign-table
partition chosen to insert rows into is also an UPDATE target partition,
allow batching in the case where a foreign-table partition chosen to
do so is *not* also an UPDATE target partition.  This is enabled by the
"batch_size" option added by commit b663a4136, which is disabled by
default.

This patch also adjusts the test case added by commit 927f453a9 to
confirm that the inserts performed as part of a cross-partition update
of a partitioned table indeed uses batching.

Amit Langote, reviewed and/or tested by Georgios Kokolatos, Zhihong Yu,
Bharath Rupireddy, Hou Zhijie, Vignesh C, and me.

Discussion: http://postgr.es/m/CA%2BHiwqH1Lz1yJmPs%3DaD-pzd_HLLynLHvq5iYeT9mB0bBV7oJ6w%40mail.gmail.com

Branch
------
master

Details
-------
https://git.postgresql.org/pg/commitdiff/594f8d3776af4699c5c32443b9d6a486f44beabf

Modified Files
--------------
contrib/postgres_fdw/expected/postgres_fdw.out | 64 +++++++++++++++++++++-----
contrib/postgres_fdw/postgres_fdw.c            | 10 ++--
contrib/postgres_fdw/sql/postgres_fdw.sql      | 55 ++++++++++++++++++----
src/backend/executor/execPartition.c           |  3 +-
4 files changed, 106 insertions(+), 26 deletions(-)


pgsql-committers by date:

Previous
From: David Rowley
Date:
Subject: pgsql: Add enable_presorted_aggregate GUC
Next
From: Andrew Dunstan
Date:
Subject: pgsql: Add copyright notices to meson files