Fix tuple routing to initialize batching only for inserts

Tomas Vondra <tomas.vondra@postgresql.org>

Commit: 927f453a941061e3d5884bab206581c34784e45b
Author: Tomas Vondra <tomas.vondra@postgresql.org>
Date: 2021-02-17T23:03:45Z
Releases: 14.0
Fix tuple routing to initialize batching only for inserts

A cross-partition update on a partitioned table is implemented as a
delete followed by an insert. With foreign partitions, this was however
causing issues, because the FDW and core may disagree on when to enable
batching.  postgres_fdw was only allowing batching for plain inserts
(CMD_INSERT) while core was trying to batch the insert component of the
cross-partition update.  Fix by restricting core to apply batching only
to plain CMD_INSERT queries.

It's possible to allow batching for cross-partition updates, but that
will require more extensive changes, so better to leave that for a
separate patch.

Author: Amit Langote
Reviewed-by: Tomas Vondra, Takayuki Tsunakawa
Discussion: https://postgr.es/m/20200628151002.7x5laxwpgvkyiu3q@development

Files

Discussion