On Mon, Apr 24, 2023 at 01:06:24PM -0400, Mat Arye wrote: > Hi All, > > I've done upgrade maintenance for multiple extensions now (TimescaleDB > core, Promscale) and I think the original suggestion (wildcard filenames > with control-file switch to enable) here is a good one.
Thanks for your comment, Mat. I'm happy to bring back the control-file switch if there's an agreement about that. The rationale for me to add that was solely to be 100% sure about not breaking any extension using "%" character as an actual version. I never considered it a security measure because the author of the control file is the same as the author of the ugprade scripts so shipping a wildcard upgrade script could be seen as a switch itself. [...] > As for Tom's concern about downgrades, I think it's valid but it's a case > that is easy to test for in Plpgsql and either handle or error. For > example, we use semver so testing for a downgrade at the top of the upgrade > script is trivial. I'd say it could be made even easier if PostgreSQL itself would provide a variable (or other way to fetch it) for the "source" version of the extension during exection of the "source"--"target" upgrade. I'm saying this because PostGIS fetches this version by calling a PostGIS function, but some extensions might have such "version" function pointing to a C file that doesn't exist enymore at the time of upgrade and thus would be left with the impossibility to rely on calling it. --strk;