Re: [PATCH] Support % wildcard in extension upgrade filenames - Mailing list pgsql-hackers
From | Sandro Santilli |
---|---|
Subject | Re: [PATCH] Support % wildcard in extension upgrade filenames |
Date | |
Msg-id | 20230409204629.sf4fptx672iehcau@c19 Whole thread Raw |
In response to | Re: [PATCH] Support % wildcard in extension upgrade filenames (Yurii Rashkovskii <yrashk@gmail.com>) |
Responses |
RE: [PATCH] Support % wildcard in extension upgrade filenames
|
List | pgsql-hackers |
On Mon, Apr 03, 2023 at 09:26:25AM +0700, Yurii Rashkovskii wrote: > I want to chime in on the issue of lower-number releases that are released > after higher-number releases. The way I see this particular problem is that > we always put upgrade SQL files in release "packages," and they obviously > become static resources. > > While I [intentionally] overlook some details here, what if (as a > convention, for projects where it matters) we shipped extensions with > non-upgrade SQL files only, and upgrades were available as separate > downloads? This way, we're not tying releases themselves to upgrade paths. > This also requires no changes to Postgres. This is actually something that's on the plate, and we recently added a --disable-extension-upgrades-install configure switch and a `install-extension-upgrades-from-known-versions` make target in PostGIS to help going in that direction. I guess the ball would now be in the hands of packagers. > I know this may be a big delivery layout departure for well-established > projects; I also understand that this won't solve the problem of having to > have these files in the first place (though in many cases, they can be > automatically generated once, I suppose, if they are trivial). We will now also be providing a `postgis` script for administration that among other things will support a `install-extension-upgrades` command to install upgrade paths from specific old versions, but will not hard-code any list of "known" old versions as such a list will easily become outdated. Note that all upgrade scripts installed by the Makefile target or by the `postgis` scripts will only be empty upgrade paths from the source version to the fake "ANY" version, as the ANY--<current> upgrade path will still be the "catch-all" upgrade script. --strk; > On Tue, Jan 10, 2023 at 5:52 AM Tom Lane <tgl@sss.pgh.pa.us> wrote: > > > I continue to think that this is a fundamentally bad idea. It creates > > all sorts of uncertainties about what is a valid update path and what > > is not. Restrictions like > > > > + Such wildcard update > > + scripts will only be used when no explicit path is found from > > + old to target version. > > > > are just band-aids to try to cover up the worst problems. > > > > Have you considered the idea of instead inventing a "\include" facility > > for extension scripts? Then, if you want to use one-monster-script > > to handle different upgrade cases, you still need one script file for > > each supported upgrade step, but those can be one-liners including the > > common script file. Plus, such a facility could be of use to people > > who want intermediate factorization solutions (that is, some sharing > > of code without buying all the way into one-monster-script). > > > > regards, tom lane > > > > > > > > -- > Y.
pgsql-hackers by date: