Re: Another oddity in handling of WCO constraints in postgres_fdw

Etsuro Fujita <fujita.etsuro@lab.ntt.co.jp>

From: Etsuro Fujita <fujita.etsuro@lab.ntt.co.jp>
To: Robert Haas <robertmhaas@gmail.com>
Cc: Ashutosh Bapat <ashutosh.bapat@enterprisedb.com>, pgsql-hackers <pgsql-hackers@postgresql.org>
Date: 2017-11-10T11:36:01Z
Lists: pgsql-hackers
(2017/11/01 11:16), Robert Haas wrote:
> On Wed, Oct 4, 2017 at 5:58 PM, Ashutosh Bapat
> <ashutosh.bapat@enterprisedb.com>  wrote:
>> The view with WCO is local but the modification which violates WCO is
>> being made on remote server by a trigger on remote table. Trying to
>> control that doesn't seem to be a good idea, just like we can't
>> control what rows get inserted on the foreign server when they violate
>> local constraints.
>
> I think that's a fair point.

For local constraints on foreign tables, it's the user's responsibility 
to ensure that those constraints matches the remote side, so we don't 
need to ensure those constraints locally.  But I'm not sure if the same 
thing applies to WCOs on views defined on foreign tables, because in 
some case it's not possible to impose constraints on the remote side 
that match those WCOs, as I explained before.

Best regards,
Etsuro Fujita


Commits

  1. Fix WITH CHECK OPTION on views referencing postgres_fdw tables.

  2. Allow insert and update tuple routing and COPY for foreign tables.

  3. When WCOs are present, disable direct foreign table modification.