pgsql: Allow CREATE EXTENSION to follow extension update paths. - Mailing list pgsql-committers

From Tom Lane
Subject pgsql: Allow CREATE EXTENSION to follow extension update paths.
Date
Msg-id E1bj9He-00073p-IY@gemulon.postgresql.org
Whole thread Raw
List pgsql-committers
Allow CREATE EXTENSION to follow extension update paths.

Previously, to update an extension you had to produce both a version-update
script and a new base installation script.  It's become more and more
obvious that that's tedious, duplicative, and error-prone.  This patch
attempts to improve matters by allowing the new base installation script
to be omitted.  CREATE EXTENSION will install a requested version if it
can find a base script and a chain of update scripts that will get there.
As in the existing update logic, shorter chains are preferred if there's
more than one possibility, with an arbitrary tie-break rule for chains
of equal length.

Also adjust the pg_available_extension_versions view to show such versions
as installable.

While at it, refactor the code so that CASCADE processing works for
extensions requested during ApplyExtensionUpdates().  Without this,
addition of a new requirement in an updated extension would require
creating a new base script, even if there was no other reason to do that.
(It would be easy at this point to add a CASCADE option to ALTER EXTENSION
UPDATE, to allow the same thing to happen during a manually-commanded
version update, but I have not done that here.)

Tom Lane, reviewed by Andres Freund

Discussion: <20160905005919.jz2m2yh3und2dsuy@alap3.anarazel.de>

Branch
------
master

Details
-------
http://git.postgresql.org/pg/commitdiff/40b449ae84dcf71177d7749a7b0c582b64dc15f0

Modified Files
--------------
doc/src/sgml/extend.sgml         |  41 +++
src/backend/commands/extension.c | 608 +++++++++++++++++++++++++--------------
2 files changed, 439 insertions(+), 210 deletions(-)


pgsql-committers by date:

Previous
From: Tom Lane
Date:
Subject: pgsql: Fix and simplify MSVC build's handling of xml/xslt/uuid dependen
Next
From: Kevin Grittner
Date:
Subject: pgsql: psql tab completion for CREATE DATABASE ... TEMPLATE ...