First of all, that last email of mine was snippy, and I apologize for it. Sorry.
That said: On Mon, Nov 27, 2023 at 4:23 PM Tom Lane <t...@sss.pgh.pa.us> wrote: > Well, one of the founding principles of postgres_fdw was to be able > to talk to PG servers that are not of the same version as yours. > If we break that in the name of performance, we are going to have > a lot of unhappy users. Even the ones who do get the benefit of > the speedup are going to be unhappy when it breaks because they > didn't upgrade local and remote at exactly the same time. I agree with this. > Just because we'd like to have it doesn't make the patch workable > in the real world. And also with this in concept - I'd like to plan arbitrarily complicated queries perfectly and near-instantly, and then execute them at faster-than-light speed, but we can't. However, I don't understand the fatalism with respect to the feature at hand. As I said before, it's not like no other product has made this work. Sure, some of those products may not have the extensible system of data types that we do, or may not care about cross-version communication, but those don't seem like good enough reasons to just immediately give up. TBH, I suspect even some PG forks have made this work, like maybe PGXC or PGXL, although I don't know for certain. We might not like the trade-offs they made to get there, but we haven't even talked through possible design ideas yet, so it seems way too early to give up. One of the things that I think is a problem in this area is that the ways we have to configure FDW connections are just not very rich. We're trying to cram everything into a set of strings that can be attached to the foreign server or the user mapping, but that's not a very good fit for something like how all the local SQL functions that might exist map onto all of the remote SQL functions that might exist. Now you might well say that we don't want the act of configuring a foreign data wrapper to be insanely complicated, and I would agree with that. But, on the other hand, as Larry Wall once said, a good programming language makes simple things simple and complicated things possible. I think our current configuration system is only accomplishing the first of those goals. -- Robert Haas EDB: http://www.enterprisedb.com