Doc: extend warnings about collation-mismatch hazards in postgres_fdw.
authorTom Lane
Sat, 25 Sep 2021 14:53:54 +0000 (10:53 -0400)
committerTom Lane
Sat, 25 Sep 2021 14:53:54 +0000 (10:53 -0400)
Be a little more vocal about the risks of remote collations not
matching local ones.  Actually fixing these risks seems hard,
and I've given up on the idea that it might be back-patchable.
So the best we can do for the back branches is add documentation.

Per discussion of bug #16583 from Jiří Fejfar.

Discussion: https://postgr.es/m/2438715.1632510693@sss.pgh.pa.us

doc/src/sgml/postgres-fdw.sgml

index 6f3c9a171f42ddb6c4fe1a9394aef173de465a63..4de2bfc0621b110f7e4b50177efd36ff380ef76d 100644 (file)
@@ -87,8 +87,8 @@
   referenced columns of the remote table.  Although postgres_fdw
   is currently rather forgiving about performing data type conversions at
   need, surprising semantic anomalies may arise when types or collations do
-  not match, due to the remote server interpreting WHERE clauses
-  slightly differently from the local server.
+  not match, due to the remote server interpreting query conditions
+  differently from the local server.
  
 
  
@@ -423,6 +423,17 @@ OPTIONS (ADD password_required 'false');
        need to turn this off if the remote server has a different set of
        collation names than the local server does, which is likely to be the
        case if it's running on a different operating system.
+       If you do so, however, there is a very severe risk that the imported
+       table columns' collations will not match the underlying data, resulting
+       in anomalous query behavior.
+      
+
+      
+       Even when this parameter is set to true, importing
+       columns whose collation is the remote server's default can be risky.
+       They will be imported with COLLATE "default", which
+       will select the local server's default collation, which could be
+       different.