On 11 January 2018 at 09:55, Tom Lane <t...@sss.pgh.pa.us> wrote: > Robert Haas <robertmh...@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. -- Craig Ringer http://www.2ndQuadrant.com/ PostgreSQL Development, 24x7 Support, Training & Services