On Tue, May 5, 2015 at 9:36 AM, Andres Freund <and...@anarazel.de> wrote:
> Theoretically this changes the pictures for FDWs, right? Right now
> there's
> +    <para>
> +     <command>INSERT</> with an <literal>ON CONFLICT</> clause is not
> +     supported with a unique index inference specification, since a
> +     conflict arbitrating unique index cannot meaningfully be inferred
> +     on a foreign table (this implies that <literal>ON CONFLICT DO
> +     UPDATE</> is never supported, since the specification is
> +     mandatory there).
> +    </para>
> but theoretically the constraint name could be meaningful on the other
> side...

Well, the inference clause could be too -- in that sense, the
constraint name isn't special at all. But you need to invent a way of
making the optimizer infer an index on the foreign side (and even with
a named constraint, we go from constraint Oid in the parser to
pg_index Oid in the optimizer, so it's a similar process to regular
inference). Of course, teaching the optimizer about foreign indexes is
a whole new infrastructure.

Note that this really is the explanation for why postgres_fdw only has
limited support. Sure, I haven't added deparsing logic for ON CONFLICT
UPDATE, but it would be pretty easy to do so, and that isn't the
blocker at all.

> I don't think this is anyting for 9.5, but it might be interesting for
> later.

Sure.
-- 
Peter Geoghegan


-- 
Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers

Reply via email to