Re: libpq compatibility policy across versions
От | Pavel Golub |
---|---|
Тема | Re: libpq compatibility policy across versions |
Дата | |
Msg-id | 113082781.20131001152820@gf.microolap.com обсуждение исходный текст |
Ответ на | libpq compatibility policy across versions (Sebastien FLAESCH <sf@4js.com>) |
Список | pgsql-interfaces |
Hello, Sebastien. You wrote: SF> Hi all, SF> We have a libpq client application written in C. SF> We want to deliver the software so that can it be used with different SF> PostgreSQL client versions, from 8.3 to 9.3 (and future versions). SF> So far, we build (compile and link) a binary with each major version SF> of PostgreSQL (8.3, 8.4, 9.0, 9.1, 9.2, 9.3) - in fact we have shared SF> libraries (database driver) for each PostgreSQL version. SF> Is this the proper way, or could we just compile/link with a given SF> version (9.3) and assume that it's backward compatible with any SF> prior version such as 8.3 ? Yes, you should use the latest client library. It's compatible with all prior versions. SF> Assuming that we could dynamically load the libpq.so client, search SF> for existing API symbols and only use them if present? SF> Is this risky? Do the C headers define C structures that are compatible SF> between newer and older versions? SF> I would expect some note about libpq compatibility policy here: SF> http://www.postgresql.org/docs/9.3/static/libpq-build.html SF> I can see that the lib version number of libpq.so.x.y changes SF> for each major version: SF> /opt3/dbs/pgs/9.2/lib/libpq.so -> libpq.so.5.5 SF> /opt3/dbs/pgs/9.2/lib/libpq.so.5 -> libpq.so.5.5 SF> /opt3/dbs/pgs/9.2/lib/libpq.so.5.5 SF> /opt3/dbs/pgs/9.3.0/lib/libpq.so -> libpq.so.5.6 SF> /opt3/dbs/pgs/9.3.0/lib/libpq.so.5 -> libpq.so.5.6 SF> /opt3/dbs/pgs/9.3.0/lib/libpq.so.5.6 SF> The binaries are dependent from libpq.so.5: SF> $ ldd -r dbmpgs92x.so SF> ... SF> libpq.so.5 => /opt3/dbs/pgs/9.2.3/lib/libpq.so.5 (0xb77bb000) SF> ... SF> What does this mean? SF> Theoritically, a binary linked in a 9.3 env can use le libpq.so version SF> of a prior version down to 8.2 ... (8.1 has libpq.so.4) SF> The main question is about C header compatibility: SF> - Compile + link with PostgreSQL client version X.Y.? SF> - What PostgreSQL client version can be used at runtime? SF> Thanks. SF> Seb -- With best wishes,Pavel mailto:pavel@gf.microolap.com
В списке pgsql-interfaces по дате отправления: