Minor version upgrades and extension packaging

From: Mat Arye <mat(at)timescale(dot)com>
To: pgsql-hackers(at)postgresql(dot)org
Subject: Minor version upgrades and extension packaging
Date: 2018-02-12 02:50:32
Message-ID: CADsUR0Aem0Lg_F20zuOEcmt2b-5bNgPoG8zyW_jpXpbT8CCcxQ@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

Hi All,

I am writing to get some advice on extension packaging for minor version
upgrades in Postgres.

We recently found that people who had compiled the TimescaleDB extension
against 10.1 (or installed our binary versions via yum, apt, etc.) had
their extension break when they upgraded to 10.2 due to changes of some
underlying structs between the two minor versions.

In particular, in the commit
https://git.postgresql.org/gitweb/?p=postgresql.git;a=commitdiff;h=1597948c962a1407c01fc492c44917c097efa92e
the structure of the ColumnDef struct changed. Since TimescaleDB uses an
event hook that makes use of the ColumnDef structure, the TimescaleDB
shared library compiled under 10.1 expected a different struct packing for
ColumnDef than what was available in 10.2.

I had three questions:

1) Are similar changes to struct packing expected under minor postgres
releases (we haven't encountered this issue before)?
2) Is it expected to have to recompile extensions for minor version
upgrades of Postgres?
3) How do other extensions deal with this issue?

Any other suggestions to handle these types of issues would be
appreciated. One obvious solution with binary releases is to have one for
every minor version, although this leads to both release and deployment
complexity.

Thanks,
Mat
TimescaleDB

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message Andres Freund 2018-02-12 02:59:19 Re: Minor version upgrades and extension packaging
Previous Message Thomas Munro 2018-02-12 01:35:24 OCD questions about LWTRANCHE_REPLICATION_ORIGIN