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