On Tue, Jun 30, 2020 at 1:22 PM Ashutosh Bapat <ashutosh.ba...@2ndquadrant.com> wrote: > On Tue, 30 Jun 2020 at 08:47, Etsuro Fujita <etsuro.fuj...@gmail.com> wrote: >> On Mon, Jun 29, 2020 at 7:52 PM Ashutosh Bapat >> <ashutosh.bapat....@gmail.com> wrote: >> > On Sun, Jun 28, 2020 at 8:40 PM Tomas Vondra >> > <tomas.von...@2ndquadrant.com> wrote: >> >> > > 3) What about the other DML operations (DELETE/UPDATE)? >> > > >> > > The other DML operations could probably benefit from the batching too. >> > > INSERT was good enough for a PoC, but having batching only for INSERT >> > > seems somewhat asmymetric. DELETE/UPDATE seem more complicated because >> > > of quals, but likely doable. >> > >> > Bulk INSERTs are more common in a sharded environment because of data >> > load in say OLAP systems. Bulk update/delete are rare, although not >> > that rare. So if an approach just supports bulk insert and not bulk >> > UPDATE/DELETE that will address a large number of usecases IMO. But if >> > we can make everything work together that would be good as well. >> >> In most cases, I think the entire UPDATE/DELETE operations would be >> pushed down to the remote side by DirectModify. So, I'm not sure we >> really need the bulk UPDATE/DELETE. > That may not be true for a partitioned table whose partitions are foreign > tables. Esp. given the work that Amit Langote is doing [1]. It really depends > on the ability of postgres_fdw to detect that the DML modifying each of the > partitions can be pushed down. That may not come easily.
While it's true that how to accommodate the DirectModify API in the new inherited update/delete planning approach is an open question on that thread, I would eventually like to find an answer to that. That is, that work shouldn't result in losing the foreign partition's ability to use DirectModify API to optimize updates/deletes. -- Amit Langote EnterpriseDB: http://www.enterprisedb.com