]> granicus.if.org Git - postgresql/commitdiff
More foreign table documentation improvements.
authorRobert Haas <rhaas@postgresql.org>
Mon, 13 Jun 2011 12:28:41 +0000 (08:28 -0400)
committerRobert Haas <rhaas@postgresql.org>
Mon, 13 Jun 2011 12:29:38 +0000 (08:29 -0400)
Shigeru Hanada, with some additional wordsmithing by me

doc/src/sgml/ddl.sgml
doc/src/sgml/fdwhandler.sgml

index 9709dd613ff9a42038586d4315fdaead885944d1..09d7a24a25c3878d32f0d77f3fbc1f7c228d5d0a 100644 (file)
@@ -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>
index fc07f129b796c848f89b10b70763e40db8e87c2f..c8ae861852a8d2a98889db8718a38e04149e4dcb 100644 (file)
@@ -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