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