Re: [PATCH] postgres_fdw: suppress explicit casts in text:text comparisons (was: column option to override foreign types)

Dian Fay <dian.m.fay@gmail.com>

From: "Dian M Fay" <dian.m.fay@gmail.com>
To: "Tom Lane" <tgl@sss.pgh.pa.us>
Cc: "David Steele" <david@pgmasters.net>, "Georgios Kokolatos" <gkokolatos@protonmail.com>, "PostgreSQL Developers" <pgsql-hackers@lists.postgresql.org>
Date: 2021-11-12T01:07:14Z
Lists: pgsql-hackers
On Thu Nov 11, 2021 at 3:36 PM EST, Tom Lane wrote:
> I thought about this some more and realized exactly why I wanted to
> restrict the change to cases where the other side is a plain foreign
> Var: that way, if anything surprising happens, we can blame it
> directly on the user having declared a local column with a different
> type from the remote column.
>
> That being the case, I took a closer look at deparseVar and realized
> that we can't simply check "IsA(node, Var)": some Vars in the
> expression can belong to local tables. We need to verify that the Var
> is one that will print as a remote column reference.

Eminently reasonable all around! `git apply` insisted that the v8 patch
didn't (apply, that is), but `patch -p1` liked it fine. I've put it
through a few paces and it seems good; what needs to happen next?



Commits

  1. postgres_fdw: suppress casts on constants in limited cases.