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

Re: libpq API incompatibility between 7.4 and 8.0

From: "Magnus Hagander" <mha(at)sollentuna(dot)net>
To: "Tom Lane" <tgl(at)sss(dot)pgh(dot)pa(dot)us>,"Bruce Momjian" <pgman(at)candle(dot)pha(dot)pa(dot)us>
Cc: "Peter Eisentraut" <peter_e(at)gmx(dot)net>,"Martin Pitt" <mpitt(at)debian(dot)org>, <pgsql-hackers(at)postgresql(dot)org>
Subject: Re: libpq API incompatibility between 7.4 and 8.0
Date: 2005-02-02 22:20:48
Message-ID: 6BCB9D8A16AC4241919521715F4D8BCE476787@algol.sollentuna.se (view raw or flat)
Thread:
Lists: pgsql-hackers
> > According to our RELEASE_CHANGES documentation:
> 	
> > 	The major version number should be updated whenever the 
> source of the
> > 	library changes to make it binary incompatible. Such 
> changes include,
> > 	but are not limited to:
> 	
> > 	1. Removing a public function or structure (or typedef, 
> enum, ...)
> 	
> > 	2. Modifying a public functions arguments.
> 	
> > 	3. Removing a field from a public structure.
> 
> > so while I don't think we need to update the major number for every 
> > PostgreSQL major release, the removal of prog_name probably 
> required a 
> > major bump.
> 
> Well, the point is that get_progname *isn't* a "public" function.
> We never advertised it as a libpq entry point.
> 
> What this really brings out to me is that our development 
> process doesn't impose a very strong boundary between libpq 
> and our bundled client programs.  If the client programs were 
> enforced to use only the documented public API of libpq then 
> we'd not be having this discussion
> --- but stuff such as libpgport support functions tends to 
> slip by under the radar.  IIRC we've been bitten in exactly 
> this way at least once before.  What I'm suggesting is that 
> we just solve the whole class of problems permanently, by 
> abandoning the assumption that we're going to guarantee 
> binary compatibility across major releases.  I don't think 
> that promise is really buying us anything very critical.
> 
> If we don't go that way, then we need to have some automatic 
> check that none of the client programs are using symbols they 
> shouldn't be from libpq.  (Hmm ... will the existence of the 
> Windows port help here?)

Yes, it will. At least it will refuse to link with references that are
not in the libpqdll.def file. It won't change if the *signature* of the
functions change.

<flashback
href="http://archives.postgresql.org/pgsql-hackers-win32/2004-10/msg0004
2.php"> ;-) + thread.

//Magnus

pgsql-hackers by date

Next:From: Tom LaneDate: 2005-02-02 22:46:12
Subject: Re: FunctionCallN improvement.
Previous:From: Alvaro HerreraDate: 2005-02-02 22:04:04
Subject: Re: pg_dump bug in 7.3.9 with sequences

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