Bruce Momjian wrote:
>
> OK, I have updated the libpq major number in 7.3.X, and updated major
> and minor in HEAD. Do I need to increment the other interfaces that
> _use_ libpq, like ecpg? I think so.
You'll only need to increment the major number of those other
interfaces that are no longer binary-compatible with their immediate
predecessors.
That is, if the version of libecpg that ships with 7.3.1 is
incompatible with the version of libecpg that ships with 7.3, then you
should bump its major number (the one that shipped with 7.3 should
have had its major number bumped if it was incompatible with the one
that shipped with 7.2.3). But its binary interface should be
independent of the binary interface of libpg.
When you build a shared library, you link it against any shared
libraries it depends on. The resulting dependency list is contained
within the shared library the same way it's contained in an
application. You can run ldd on shared libraries just as you can on
applications.
It might be helpful to think of the major number as being the same as
a protocol description number. You change the protocol description
number when you make changes to the protocol that would make a server
using the new version of the protocol incompatible with a client using
the old version of the protocol.
In fact, there's really very little conceptual difference between a
protocol and an API: both are a means for two entities to communicate
with one another. Change the API and you have to do something to make
it clear that the API has changed. Same deal with a protocol.
I don't know if what I'm saying here makes much sense to you, but I
hope it helps...
--
Kevin Brown kevin@sysexperts.com