Re: libpq API incompatibility between 7.4 and 8.0

From: Martin Pitt <mpitt(at)debian(dot)org>
To: pgsql-hackers(at)postgresql(dot)org, Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
Cc: Peter Eisentraut <peter_e(at)gmx(dot)net>
Subject: Re: libpq API incompatibility between 7.4 and 8.0
Date: 2005-02-02 16:53:59
Message-ID: 20050202165359.GB31131@box79162.elkhouse.de
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers pgsql-patches

Hi!

(sorry for the additional addresses; I'm not subscribed to -hackers,
so my mail will last a while until it arrives there).

Tom Lane [2005-02-02 11:07 -0500]:
> Peter Eisentraut <peter_e(at)gmx(dot)net> writes:
> > Martin Pitt has detected that the libpq API has changed incompatibly
> > between 7.4 and 8.0. This has the effect, for example, that 7.4's psql
> > cannot run with 8.0's libpq.
>
> [ shrug... ] I don't think we've ever guaranteed that anyway.

If you don't guarantee a backwards compatible API, then you should
give libpq a new SONAME. By keeping the SONAME "3" you did promise
backwards compatibility.

The problem with this issue is that it is a real pain for distributors
to handle broken SONAMEs. If every distributor invents his own one,
then there will be conflicts at some point. This gets worse if you do
release a new libpq SONAME later, which might conflict with any fake
SONAME a distributor might have invented.

> I will resist putting get_progname back into libpq, because it
> should never have been there, at least not with that name: it's an
> undocumented infringement on application namespace.

I understand such concerns, but you cannot undo the history. libpq3
is out there and installed on maybe hundreds of thousands of machines,
and your own psql frontend uses it.

The next best option would be to fix the 7.4 version of psql to not
use this symbol any more. However, this is still a pain since then you
cannot upgrade from earlier versions to 8.0 any more.

What would you propose as a solution? There can only be one
/usr/lib/libpq.so.3.

Thanks,

Martin

--
Martin Pitt http://www.piware.de
Ubuntu Developer http://www.ubuntulinux.org
Debian GNU/Linux Developer http://www.debian.org

In response to

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message Greg Stark 2005-02-02 16:57:15 Re: [NOVICE] Last ID Problem
Previous Message Tom Lane 2005-02-02 16:11:28 Re: Problems with initdb 8.0.1

Browse pgsql-patches by date

  From Date Subject
Next Message Tom Lane 2005-02-02 17:01:50 Re: libpq API incompatibility between 7.4 and 8.0
Previous Message Tom Lane 2005-02-02 16:07:54 Re: libpq API incompatibility between 7.4 and 8.0