Re: Optimization for updating foreign tables in Postgres FDW

From: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
To: Robert Haas <robertmhaas(at)gmail(dot)com>
Cc: Etsuro Fujita <fujita(dot)etsuro(at)lab(dot)ntt(dot)co(dot)jp>, Rushabh Lathia <rushabh(dot)lathia(at)gmail(dot)com>, Thom Brown <thom(at)linux(dot)com>, Stephen Frost <sfrost(at)snowman(dot)net>, Albe Laurenz <laurenz(dot)albe(at)wien(dot)gv(dot)at>, Shigeru Hanada <shigeru(dot)hanada(at)gmail(dot)com>, PostgreSQL-development <pgsql-hackers(at)postgresql(dot)org>
Subject: Re: Optimization for updating foreign tables in Postgres FDW
Date: 2016-03-09 18:12:46
Message-ID: 31706.1457547166@sss.pgh.pa.us
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

Robert Haas <robertmhaas(at)gmail(dot)com> writes:
> Overall, I think this is looking pretty good.

I hadn't been paying any attention to this thread, but I wonder whether
this entire approach isn't considerably inferior to what we can do now
with the planner pathification patch. To quote from the new docs:

PlanForeignModify and the other callbacks described in Section 54.2.3
are designed around the assumption that the foreign relation will be
scanned in the usual way and then individual row updates will be driven
by a local ModifyTable plan node. This approach is necessary for the
general case where an update requires reading local tables as well as
foreign tables. However, if the operation could be executed entirely by
the foreign server, the FDW could generate a path representing that and
insert it into the UPPERREL_FINAL upper relation, where it would
compete against the ModifyTable approach. This approach could also be
used to implement remote SELECT FOR UPDATE, rather than using the row
locking callbacks described in Section 54.2.4. Keep in mind that a path
inserted into UPPERREL_FINAL is responsible for implementing all
behavior of the query.

I don't really see anything that this patch does that wouldn't be better
done that way. And I'd kind of like to get a working example of that type
of path insertion into 9.6, so that we can find out if we need any hooks
or callbacks that aren't there today.

regards, tom lane

In response to

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message Robert Haas 2016-03-09 18:13:17 Re: pgbench small bug fix
Previous Message Jeff Janes 2016-03-09 18:09:35 Re: multivariate statistics v14