Skip site navigation (1) Skip section navigation (2)

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 (view raw or flat)
Thread:
Lists: pgsql-hackerspgsql-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

pgsql-hackers by date

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

pgsql-patches by date

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

Privacy Policy | About PostgreSQL
Copyright © 1996-2014 The PostgreSQL Global Development Group