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: > > https://lists.osgeo.org/pipermail/postgis-devel/2022-February/029500.html > > > > 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. > https://commitfest.postgresql.org/38/3654/ > > 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. Yours, Laurenz Albe