Re: querying the version of libpq

Tom Lane <tgl@sss.pgh.pa.us>

From: Tom Lane <tgl@sss.pgh.pa.us>
To: Peter Geoghegan <peter.geoghegan86@gmail.com>
Cc: Greg Sabino Mullane <greg@turnstep.com>, pgsql-general@postgresql.org
Date: 2010-10-05T16:41:23Z
Lists: pgsql-hackers
Peter Geoghegan <peter.geoghegan86@gmail.com> writes:
> On 5 October 2010 16:33, Greg Sabino Mullane <greg@turnstep.com> wrote:
>>> How does the driver figure it out?
>> 
>> DBD::Pg parses pg_config --version, then passes the information
>> to the C programs for directive fiddling. I certainly hope
>> other drivers are doing the same, as libpq varies across
>> major versions a good deal.

> I would imagine that most libpq wrapping drivers use libpq's
> PQserverVersion(), which returns an integer that looks like 90000.

The real problem is that neither of these can be trusted to tell you the
*library* version.  PQserverVersion() is something else altogether,
and I wouldn't want to assume that pg_config exactly matches the library
you're linked to --- if it's even present at all.

We could add a PQlibpqVersion(), maybe, but it would be many years
before client code could rely on that being present.

			regards, tom lane