Commit 43ea23a3 authored by Robert Haas's avatar Robert Haas

More foreign table documentation improvements.

Shigeru Hanada, with some additional wordsmithing by me
parent 13000b44
......@@ -3021,10 +3021,11 @@ ANALYZE measurement;
<firstterm>foreign data wrapper</firstterm>. A foreign data wrapper is a
library that can communicate with an external data source, hiding the
details of connecting to the data source and fetching data from it. There
are several foreign data wrappers available, which can for example read
plain data files residing on the server, or connect to another PostgreSQL
instance. If none of the existing foreign data wrappers suit your needs,
you can write your own; see <xref linkend="fdwhandler">.
is a foreign data wrapper available as a <file>contrib</file> module,
which can read plain data files residing on the server. Other kind of
foreign data wrappers might be found as third party products. If none of
the existing foreign data wrappers suit your needs, you can write your
own; see <xref linkend="fdwhandler">.
</para>
<para>
......
......@@ -179,6 +179,17 @@ IterateForeignScan (ForeignScanState *node);
are not needed, you should insert nulls in those column positions.
</para>
<para>
Note that <productname>PostgreSQL</productname>'s executor doesn't care
whether the rows returned violate the <literal>NOT NULL</literal>
constraints which were defined on the foreign table columns - but the
planner does care, and may optimize queries incorrectly if
<literal>NULL</> values are present in a column declared not to contain
them. If a <literal>NULL</> value is encountered when the user has
declared that none should be present, it may be appropriate to raise an
error (just as you would need to do in the case of a data type mismatch).
</para>
<para>
<programlisting>
void
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment