Re: let's make the list of reportable GUCs configurable (was Re: Add%r substitution for psql prompts to show recovery status) - Mailing list pgsql-hackers
From
Craig Ringer
Subject
Re: let's make the list of reportable GUCs configurable (was Re: Add%r substitution for psql prompts to show recovery status)
Robert Haas <robertmhaas@gmail.com> writes: > But if we add this feature and somebody wants to use it for > server_version_num, it's really pretty simple. In the startup packet, > you say _pq_.report=server_version_num. Then, you call > PQparameterStatus(conn, "server_version_num"). If you don't get a > value, you try calling PQparameterStatus(conn, "server_version") and > extracting the second word. If that still doesn't work then you give > up. That doesn't seem either useless or difficult to implement > correctly from here.
Yeah, but what's the point? If yuou have to maintain the server_version parsing code anyway, you're not saving any complexity with this. You're just creating a code backwater that you probably won't test adequately.
If we'd done server_version_num in 9.5, for example, less stuff would've broken with pg10.
I just don't get it. The argument you use can be applied to almost any change, to say "why bother making change <x> because people can't rely on it for <y> years, so it's pointless to have it at all". Why add protocol v3?
PostgreSQL is a stable, long term project, and I'd like to plan for the future. I also think people are way more likely to handle things like --with-extra-version correctly when dealing with server_version_num, where I don't much *care* if code parsing old server versions breaks.