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 |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
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
From | Date | Subject | |
---|---|---|---|
Next Message | Tom Lane | 2005-02-02 22:46:12 | Re: FunctionCallN improvement. |
Previous Message | Alvaro Herrera | 2005-02-02 22:04:04 | Re: pg_dump bug in 7.3.9 with sequences |