From: | Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us> |
---|---|
To: | pgsql-committers(at)postgresql(dot)org |
Subject: | pgsql: Allow CREATE EXTENSION to follow extension update paths. |
Date: | 2016-09-11 18:15:14 |
Message-ID: | E1bj9He-00073p-IY@gemulon.postgresql.org |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | 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(dot)jz2m2yh3und2dsuy(at)alap3(dot)anarazel(dot)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(-)
From | Date | Subject | |
---|---|---|---|
Next Message | Kevin Grittner | 2016-09-11 20:41:06 | pgsql: psql tab completion for CREATE DATABASE ... TEMPLATE ... |
Previous Message | Tom Lane | 2016-09-11 16:47:02 | pgsql: Fix and simplify MSVC build's handling of xml/xslt/uuid dependen |