Changes between Version 15 and Version 16 of PostGISExtensionPaths


Ignore:
Timestamp:
Feb 11, 2022, 11:41:10 AM (2 years ago)
Author:
robe
Comment:

Legend:

Unmodified
Added
Removed
Modified
  • PostGISExtensionPaths

    v15 v16  
    8282=== SOLUTION 3 ===
    8383
    84 The 0-byte file and strip model.  This approach creates 0 or very small byte files, with their existense solely to maintain PostgreSQL extension chain model.
    85 Still up for discussion: **To reduce file bloat, we will have <version-minor>.X--<version-minor-current> files**. 
    86 We will keep 2 micros before for each minor, just in case the user uninstalled the prior minor before installing the new one.
     84The 0-byte file model.  This approach creates 0 or very small byte files, with their existence solely to maintain PostgreSQL extension chain model.
    8785
    8886
    89 The assumption is anyone coming from a prior minor will have a file such as postgis--3.2.1--3.2.X version OR use the postgis_extensions_upgrade() function.
    90 
    91 In this model, our generated extension upgrade scripts will look like the below, with only the postgis--3.3.X--3.3.0.sql having any upgrade statements in it.
     87In this model, our generated extension upgrade scripts will look like the below, with only the postgis--3.3.X--3.3.0.sql having any upgrade statements in it and the others being 0-byte or miniscule with a comment or no-op command.
    9288
    9389----
    9490{{{
    9591:
     92postgis--3.0.1--3.3.X.sql
     93postgis--3.0.2--3.3.X.sql
     94postgis--3.0.3--3.3.X.sql
    9695postgis--3.0.4--3.3.X.sql
    9796postgis--3.0.5--3.3.X.sql
    98 postgis--3.0.X--3.3.X.sql
     97postgis--3.1.1--3.3.X.sql
     98postgis--3.1.2--3.3.X.sql
     99postgis--3.1.3--3.3.X.sql
    99100postgis--3.1.4--3.3.X.sql
    100101postgis--3.1.5--3.3.X.sql
    101 postgis--3.1.X--3.3.X.sql
    102102postgis--3.2.0--3.3.X.sql
    103103postgis--3.2.1--3.3.X.sql
    104 postgis--3.2.X--3.3.X.sql
    105104postgis--3.3.X--3.3.0.sql
    106 postgis--3.3.0--3.3.X.sql
    107105}}}
    108106----
     
    110108
    1111091. We are staying between the lines. Respecting known practices, but still having much lighter weight scripts.
    112 2. A little less clutter, but we are relying on the user having the old version still installed (or being within 2 micro versions of the last minor they have installed) so that they have a chain
    113 postgis--<old-version-minor>.X--<old-version-minor-verson>.sql
    114 3. An easier release cycle since extensions/updateable.mk doesn't need to list the prior micros.
    115 4. No change in upgrade extension workflow for packagers (or users who think of PostGIS as any other extension).
    116 5. It will work for all PostgreSQL versions supported
     1102. No change in upgrade extension workflow for packagers (or users who think of PostGIS as any other extension).
     1113. It will work for all PostgreSQL versions supported
    117112
    118113** Downsides:**
    119114
    120 1. We still have some clutter of files, and without addendum, we have just as much clutter of files as before.
    121 2. With addendum, it is not possible for a user to upgrade using ALTER EXTENSION from a version we don't ship a script for. They would have to use and that assumes this version -- has the ANY/MAX hack.
     1151. We still have the same useless clutter of files.
    122116
    123 ----
    124 SELECT postgis_extensions_upgrade();
    125 ----
    126 
    127 3. It is not possible to upgrade from version (prior PostgreSQL version) 3.3.0 to (newer PostgreSQL version) 3.3.0 which is needed often in pg_upgrade to gain the benefits of new features in latest PostgreSQL version that are not exposed in older PostgreSQL versions.  Such operation would just state "You are already at latest version" and not do anything, unless one does it via
     1172. It is not possible to upgrade from version (prior PostgreSQL version) 3.3.0 to (newer PostgreSQL version) 3.3.0 which is needed often in pg_upgrade to gain the benefits of new features in latest PostgreSQL version that are not exposed in older PostgreSQL versions.  Such operation would just state "You are already at latest version" and not do anything, unless one does it via
    128118
    129119----