Etsuro Fujita <[email protected]> writes:
> On 2015/05/22 23:50, Tom Lane wrote:
>> So I think worrying about convalidated is pretty pointless. Really,
>> it is up to the user to determine what constraints should be attached
>> to the foreign table, and IMPORT FOREIGN SCHEMA can't help much.
> Agreed. So, I'd like to propose to update the docs as above. Please
> find attached a patch. The existing sentence "Checking other types of
> constraints is always left to the remote server." sounds to me that
> constraints on foreign tables are enforced locally when updating the
> foreign tables. So, I'd also like to propose to remove that sentence.
> Maybe I'm missing something though.
Yeah, I agree this documentation is inadequate; but I think it'd be a good
thing to spell out the reason why there's no support for importing check
constraints. I committed the attached enlarged version.
regards, tom lane
diff --git a/doc/src/sgml/postgres-fdw.sgml b/doc/src/sgml/postgres-fdw.sgml
index 1079140..14b12e3 100644
*** a/doc/src/sgml/postgres-fdw.sgml
--- b/doc/src/sgml/postgres-fdw.sgml
***************
*** 309,316 ****
using <xref linkend="sql-importforeignschema">. This command creates
foreign table definitions on the local server that match tables or
views present on the remote server. If the remote tables to be imported
! have columns of user-defined data types, the local server must have types
! of the same names.
</para>
<para>
--- 309,316 ----
using <xref linkend="sql-importforeignschema">. This command creates
foreign table definitions on the local server that match tables or
views present on the remote server. If the remote tables to be imported
! have columns of user-defined data types, the local server must have
! compatible types of the same names.
</para>
<para>
***************
*** 361,369 ****
<para>
Note that constraints other than <literal>NOT NULL</> will never be
! imported from the remote tables, since <productname>PostgreSQL</>
! does not support any other type of constraint on a foreign table.
! Checking other types of constraints is always left to the remote server.
</para>
</sect3>
</sect2>
--- 361,376 ----
<para>
Note that constraints other than <literal>NOT NULL</> will never be
! imported from the remote tables. Although <productname>PostgreSQL</>
! does support <literal>CHECK</> constraints on foreign tables, there is no
! provision for importing them automatically, because of the risk that a
! constraint expression could evaluate differently on the local and remote
! servers. Any such inconsistency in the behavior of a <literal>CHECK</>
! constraint could lead to hard-to-detect errors in query optimization.
! So if you wish to import <literal>CHECK</> constraints, you must do so
! manually, and you should verify the semantics of each one carefully.
! For more detail about the treatment of <literal>CHECK</> constraints on
! foreign tables, see <xref linkend="sql-createforeigntable">.
</para>
</sect3>
</sect2>
--
Sent via pgsql-hackers mailing list ([email protected])
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers