Re: [PATCH] Support % wildcard in extension upgrade filenames

From: Laurenz Albe <laurenz(dot)albe(at)cybertec(dot)at>
To: Regina Obe <lr(at)pcorp(dot)us>, strk(at)kbt(dot)io, pgsql-hackers(at)postgresql(dot)org
Subject: Re: [PATCH] Support % wildcard in extension upgrade filenames
Date: 2022-05-28 14:50:20
Views: Raw Message | Whole Thread | Download mbox | Resend email
Lists: pgsql-hackers

On Fri, 2022-05-27 at 17:37 -0400, Regina Obe wrote:
> > At PostGIS we've been thinking of ways to have better support, from
> > PostgreSQL proper, to our upgrade strategy, which has always consisted in a
> > SINGLE upgrade file good for upgrading from any older version.
> >
> > The current lack of such support for EXTENSIONs forced us to install a lot of
> > files on disk and we'd like to stop doing that at some point in the future.
> >
> > The proposal is to support wildcards for versions encoded in the filename so
> > that (for our case) a single wildcard could match "any version". I've been
> > thinking about the '%' character for that, to resemble the wildcard used for
> > LIKE.
> >
> > Here's the proposal:
> >
> >
> > A very very short (and untested) patch which might (or might not) support our
> > case is attached.
> >
> > The only problem with my proposal/patch would be the presence, on the wild,
> > of PostgreSQL EXTENSION actually using the '%' character in their version
> > strings, which is currently considered legit by PostgreSQL.
> >
> > How do you feel about the proposal (which is wider than the patch) ?
> Just a heads up about the above, Sandro has added it as a commitfest item
> which hopefully we can polish in time for PG16.
> Does anyone think this is such a horrible idea that we should abandon all
> hope?
> The main impetus is that many extensions (postgis, pgRouting, and I'm sure
> others) have over 300 extensions script files that are exactly the same.
> We'd like to reduce this footprint significantly.
> strk said the patch is crappy so don't look at it just yet.  We'll work on
> polishing it.  I'll review and provide docs for it.

I don't think this idea is fundamentally wrong, but I have two worries:

1. It would be a good idea good to make sure that there is not both
"extension--%--2.0.sql" and "extension--1.0--2.0.sql" present.
Otherwise the behavior might be indeterministic.

2. What if you have a "postgis--%--3.3.sql", and somebody tries to upgrade
their PostGIS 1.1 installation with it? Would that work?
Having a lower bound for a matching version might be a good idea,
although I have no idea how to do that.

Laurenz Albe

In response to


Browse pgsql-hackers by date

  From Date Subject
Next Message Tomas Vondra 2022-05-28 14:50:54 Ignoring BRIN for HOT udpates seems broken
Previous Message Ranier Vilela 2022-05-28 14:12:47 Re: Improving connection scalability (src/backend/storage/ipc/procarray.c)