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

Reply via email to