]> granicus.if.org Git - postgresql/commit
Introduce less-bogus handling of collations in contrib/postgres_fdw.
authorTom Lane <tgl@sss.pgh.pa.us>
Wed, 13 Mar 2013 23:46:31 +0000 (19:46 -0400)
committerTom Lane <tgl@sss.pgh.pa.us>
Wed, 13 Mar 2013 23:46:31 +0000 (19:46 -0400)
commited3ddf918b59545583a4b374566bc1148e75f593
tree39a5a8d47e695a4f37327b8f2b7fd9264ca2e42d
parent209f675f0f9094015414eee39c435ed3bf65d82a
Introduce less-bogus handling of collations in contrib/postgres_fdw.

Treat expressions as being remotely executable only if all collations used
in them are determined by Vars of the foreign table.  This means that, if
the foreign server gets different answers than we do, it's the user's fault
for not having marked the foreign table columns with collations equivalent
to the remote table's.  This rule allows most simple expressions such as
"var < 'constant'" to be sent to the remote side, because the constant
isn't determining the collation (the Var's collation would win).  There's
still room for improvement, but it's hard to see how to do it without a
lot more knowledge and/or assumptions about what the remote side will do.
contrib/postgres_fdw/deparse.c
contrib/postgres_fdw/expected/postgres_fdw.out
contrib/postgres_fdw/sql/postgres_fdw.sql