From:
"David E(dot) Wheeler" <david(at)kineticode(dot)com>
To:
Dimitri Fontaine <dimitri(at)2ndQuadrant(dot)fr>
Cc:
Itagaki Takahiro <itagaki(dot)takahiro(at)gmail(dot)com>,
PostgreSQL Hackers <pgsql-hackers(at)postgresql(dot)org>
Subject:
Re: ALTER EXTENSION UPGRADE, v3
Date:
2011-02-02 16:50:59
Message-ID:
77E7D45E-B12E-4911-994F-E3CDF305BB3F@kineticode.com (view raw or flat )
Thread:
2011-02-01 18:21:03 from Dimitri Fontaine <dimitri(at)2ndQuadrant(dot)fr>
2011-02-02 10:35:16 from Itagaki Takahiro <itagaki(dot)takahiro(at)gmail(dot)com>
2011-02-02 11:29:10 from Dimitri Fontaine <dimitri(at)2ndQuadrant(dot)fr>
2011-02-02 13:12:51 from Itagaki Takahiro <itagaki(dot)takahiro(at)gmail(dot)com>
2011-02-02 14:45:45 from Dimitri Fontaine <dimitri(at)2ndQuadrant(dot)fr>
2011-02-02 16:50:59 from "David E(dot) Wheeler" <david(at)kineticode(dot)com>
2011-02-02 17:03:07 from Dimitri Fontaine <dimitri(at)2ndQuadrant(dot)fr>
2011-02-02 17:09:59 from "David E(dot) Wheeler" <david(at)kineticode(dot)com>
2011-02-02 17:19:14 from Dimitri Fontaine <dimitri(at)2ndQuadrant(dot)fr>
2011-02-02 17:31:54 from "David E(dot) Wheeler" <david(at)kineticode(dot)com>
2011-02-02 18:04:26 from Dimitri Fontaine <dimitri(at)2ndQuadrant(dot)fr>
2011-02-02 18:07:59 from "David E(dot) Wheeler" <david(at)kineticode(dot)com>
2011-02-02 18:22:33 from Dimitri Fontaine <dimitri(at)2ndQuadrant(dot)fr>
2011-02-02 18:29:28 from "David E(dot) Wheeler" <david(at)kineticode(dot)com>
2011-02-03 08:21:28 from Anssi Kääriäinen <anssi(dot)kaariainen(at)thl(dot)fi>
2011-02-03 08:46:18 from Dimitri Fontaine <dimitri(at)2ndQuadrant(dot)fr>
2011-02-03 14:53:04 from "Ross J(dot) Reedstrom" <reedstrm(at)rice(dot)edu>
2011-02-03 15:30:31 from Robert Haas <robertmhaas(at)gmail(dot)com>
2011-02-03 15:31:08 from Dimitri Fontaine <dimitri(at)2ndQuadrant(dot)fr>
2011-02-03 16:25:50 from "Ross J(dot) Reedstrom" <reedstrm(at)rice(dot)edu>
2011-02-03 16:29:49 from Robert Haas <robertmhaas(at)gmail(dot)com>
2011-02-03 16:53:50 from Dimitri Fontaine <dimitri(at)2ndQuadrant(dot)fr>
2011-02-03 17:15:36 from Robert Haas <robertmhaas(at)gmail(dot)com>
2011-02-03 16:55:35 from Florian Pflug <fgp(at)phlo(dot)org>
2011-02-03 17:38:36 from Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
2011-02-03 17:50:08 from "David E(dot) Wheeler" <david(at)kineticode(dot)com>
2011-02-03 18:07:31 from Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
2011-02-03 18:10:12 from "David E(dot) Wheeler" <david(at)kineticode(dot)com>
2011-02-03 18:47:37 from Robert Haas <robertmhaas(at)gmail(dot)com>
2011-02-03 19:02:18 from Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
2011-02-03 19:03:20 from "David E(dot) Wheeler" <david(at)kineticode(dot)com>
2011-02-03 19:14:50 from Robert Haas <robertmhaas(at)gmail(dot)com>
2011-02-03 18:27:01 from Dimitri Fontaine <dimitri(at)2ndQuadrant(dot)fr>
2011-02-03 17:54:57 from Robert Haas <robertmhaas(at)gmail(dot)com>
2011-02-03 18:05:57 from "David E(dot) Wheeler" <david(at)kineticode(dot)com>
2011-02-03 19:35:02 from Josh Berkus <josh(at)agliodbs(dot)com>
2011-02-03 19:52:40 from Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
2011-02-03 23:29:14 from Josh Berkus <josh(at)agliodbs(dot)com>
2011-02-03 19:56:46 from "David E(dot) Wheeler" <david(at)kineticode(dot)com>
2011-02-03 19:57:32 from Dimitri Fontaine <dimitri(at)2ndQuadrant(dot)fr>
2011-02-03 21:24:51 from Josh Berkus <josh(at)agliodbs(dot)com>
2011-02-04 09:04:15 from Dimitri Fontaine <dimitri(at)2ndQuadrant(dot)fr>
2011-02-04 14:53:15 from Robert Haas <robertmhaas(at)gmail(dot)com>
2011-02-04 15:13:44 from Dimitri Fontaine <dimitri(at)2ndQuadrant(dot)fr>
2011-02-04 15:48:52 from Robert Haas <robertmhaas(at)gmail(dot)com>
2011-02-04 16:48:08 from "David E(dot) Wheeler" <david(at)kineticode(dot)com>
2011-02-04 16:54:48 from Robert Haas <robertmhaas(at)gmail(dot)com>
2011-02-04 17:01:53 from "David E(dot) Wheeler" <david(at)kineticode(dot)com>
2011-02-04 17:02:39 from Dimitri Fontaine <dimitri(at)2ndQuadrant(dot)fr>
2011-02-10 18:26:06 from Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
2011-02-10 18:52:19 from "David E(dot) Wheeler" <david(at)kineticode(dot)com>
2011-02-10 19:31:09 from Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
2011-02-10 19:35:29 from "David E(dot) Wheeler" <david(at)kineticode(dot)com>
2011-02-10 20:02:50 from Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
2011-02-10 20:07:28 from Robert Haas <robertmhaas(at)gmail(dot)com>
2011-02-10 20:46:24 from "David E(dot) Wheeler" <david(at)kineticode(dot)com>
2011-02-10 20:58:03 from Robert Haas <robertmhaas(at)gmail(dot)com>
2011-02-10 20:58:54 from Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
2011-02-10 21:17:51 from Robert Haas <robertmhaas(at)gmail(dot)com>
2011-02-10 21:22:09 from Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
2011-02-10 21:24:13 from "David E(dot) Wheeler" <david(at)kineticode(dot)com>
2011-02-10 21:35:20 from Dimitri Fontaine <dimitri(at)2ndQuadrant(dot)fr>
2011-02-10 21:49:49 from Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
2011-02-10 20:44:50 from "David E(dot) Wheeler" <david(at)kineticode(dot)com>
2011-02-10 22:17:11 from David Christensen <david(at)endpoint(dot)com>
2011-02-10 22:41:35 from Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
2011-02-10 19:02:33 from Robert Haas <robertmhaas(at)gmail(dot)com>
2011-02-10 19:42:35 from Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
2011-02-10 20:06:05 from Robert Haas <robertmhaas(at)gmail(dot)com>
2011-02-10 20:33:20 from Dimitri Fontaine <dimitri(at)2ndQuadrant(dot)fr>
2011-02-10 20:40:23 from Robert Haas <robertmhaas(at)gmail(dot)com>
2011-02-10 21:14:05 from Dimitri Fontaine <dimitri(at)2ndQuadrant(dot)fr>
2011-02-10 21:21:08 from Robert Haas <robertmhaas(at)gmail(dot)com>
2011-02-10 20:52:29 from Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
2011-02-10 21:19:10 from Dimitri Fontaine <dimitri(at)2ndQuadrant(dot)fr>
2011-02-10 21:22:22 from Robert Haas <robertmhaas(at)gmail(dot)com>
2011-02-10 21:32:07 from Dimitri Fontaine <dimitri(at)2ndQuadrant(dot)fr>
2011-02-10 21:38:15 from Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
2011-02-10 21:39:41 from "David E(dot) Wheeler" <david(at)kineticode(dot)com>
2011-02-10 21:41:47 from Aidan Van Dyk <aidan(at)highrise(dot)ca>
2011-02-10 21:11:38 from Dimitri Fontaine <dimitri(at)2ndQuadrant(dot)fr>
2011-02-10 22:58:56 from Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
2011-02-10 23:50:00 from Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
2011-02-11 00:02:31 from "David E(dot) Wheeler" <david(at)kineticode(dot)com>
2011-02-11 00:11:04 from Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
2011-02-11 00:13:54 from "David E(dot) Wheeler" <david(at)kineticode(dot)com>
2011-02-11 03:05:18 from Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
2011-02-11 05:04:41 from "David E(dot) Wheeler" <david(at)kineticode(dot)com>
2011-02-11 05:15:35 from Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
2011-02-11 05:24:31 from "David E(dot) Wheeler" <david(at)kineticode(dot)com>
2011-02-11 13:18:40 from Robert Haas <robertmhaas(at)gmail(dot)com>
2011-02-11 14:00:56 from Dimitri Fontaine <dimitri(at)2ndQuadrant(dot)fr>
2011-02-11 14:13:15 from Robert Haas <robertmhaas(at)gmail(dot)com>
2011-02-11 15:16:01 from Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
2011-02-11 09:38:32 from Dimitri Fontaine <dimitri(at)2ndQuadrant(dot)fr>
2011-02-11 11:14:38 from Anssi Kääriäinen <anssi(dot)kaariainen(at)thl(dot)fi>
2011-02-11 15:37:57 from Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
2011-02-11 16:22:24 from Dimitri Fontaine <dimitri(at)2ndQuadrant(dot)fr>
2011-02-11 16:46:17 from Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
2011-02-11 17:04:04 from Dimitri Fontaine <dimitri(at)2ndQuadrant(dot)fr>
2011-02-11 00:38:43 from Robert Haas <robertmhaas(at)gmail(dot)com>
2011-02-11 09:44:32 from Dimitri Fontaine <dimitri(at)2ndQuadrant(dot)fr>
2011-02-11 09:24:15 from Dimitri Fontaine <dimitri(at)2ndQuadrant(dot)fr>
2011-02-11 16:39:19 from Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
2011-02-11 16:56:19 from Dimitri Fontaine <dimitri(at)2ndQuadrant(dot)fr>
2011-02-11 17:06:28 from Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
2011-02-11 17:35:27 from Dimitri Fontaine <dimitri(at)2ndQuadrant(dot)fr>
2011-02-11 18:06:12 from Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
2011-02-11 18:09:08 from Robert Haas <robertmhaas(at)gmail(dot)com>
2011-02-11 18:09:08 from "David E(dot) Wheeler" <david(at)kineticode(dot)com>
2011-02-11 19:16:52 from Dimitri Fontaine <dimitri(at)2ndQuadrant(dot)fr>
2011-02-11 17:35:34 from Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
2011-02-11 18:07:19 from Robert Haas <robertmhaas(at)gmail(dot)com>
2011-02-11 18:10:13 from Josh Berkus <josh(at)agliodbs(dot)com>
2011-02-11 18:19:47 from Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
2011-02-11 18:20:44 from "David E(dot) Wheeler" <david(at)kineticode(dot)com>
2011-02-11 18:30:50 from Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
2011-02-11 18:38:21 from Robert Haas <robertmhaas(at)gmail(dot)com>
2011-02-11 18:58:05 from Aidan Van Dyk <aidan(at)highrise(dot)ca>
2011-02-11 19:18:25 from "David E(dot) Wheeler" <david(at)kineticode(dot)com>
2011-02-11 19:19:33 from Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
2011-02-11 19:35:53 from Aidan Van Dyk <aidan(at)highrise(dot)ca>
2011-02-11 19:49:39 from Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
2011-02-11 20:05:14 from Aidan Van Dyk <aidan(at)highrise(dot)ca>
2011-02-11 20:31:18 from Dimitri Fontaine <dimitri(at)2ndQuadrant(dot)fr>
2011-02-11 20:28:05 from Dimitri Fontaine <dimitri(at)2ndQuadrant(dot)fr>
2011-02-11 20:38:28 from Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
2011-02-11 20:55:18 from Dimitri Fontaine <dimitri(at)2ndQuadrant(dot)fr>
2011-02-17 13:59:23 from Peter Eisentraut <peter_e(at)gmx(dot)net>
2011-02-17 16:03:15 from Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
2011-02-11 19:12:35 from "David E(dot) Wheeler" <david(at)kineticode(dot)com>
2011-02-12 01:14:04 from Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
2011-02-11 19:50:50 from Dimitri Fontaine <dimitri(at)2ndQuadrant(dot)fr>
2011-02-11 19:52:52 from "David E(dot) Wheeler" <david(at)kineticode(dot)com>
2011-02-11 20:07:00 from Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
2011-02-11 20:15:55 from Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
2011-02-11 20:18:33 from Robert Haas <robertmhaas(at)gmail(dot)com>
2011-02-11 20:23:47 from Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
2011-02-11 20:40:08 from Dimitri Fontaine <dimitri(at)2ndQuadrant(dot)fr>
2011-02-11 20:46:53 from Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
2011-02-11 20:52:37 from Dimitri Fontaine <dimitri(at)2ndQuadrant(dot)fr>
2011-02-11 20:36:07 from Dimitri Fontaine <dimitri(at)2ndQuadrant(dot)fr>
2011-02-11 18:49:27 from Kääriäinen Anssi <anssi(dot)kaariainen(at)thl(dot)fi>
2011-02-11 19:15:59 from Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
2011-02-11 20:49:17 from Dimitri Fontaine <dimitri(at)2ndQuadrant(dot)fr>
2011-02-12 01:55:57 from marcin mank <marcin(dot)mank(at)gmail(dot)com>
2011-02-12 03:29:36 from Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
2011-02-11 20:18:11 from Dimitri Fontaine <dimitri(at)2ndQuadrant(dot)fr>
2011-02-03 18:21:34 from Dimitri Fontaine <dimitri(at)2ndQuadrant(dot)fr>
2011-02-02 18:14:35 from Aidan Van Dyk <aidan(at)highrise(dot)ca>
2011-02-02 18:28:33 from "David E(dot) Wheeler" <david(at)kineticode(dot)com>
2011-02-02 18:39:49 from Dimitri Fontaine <dimitri(at)2ndQuadrant(dot)fr>
2011-02-02 23:42:56 from Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
2011-02-02 22:23:58 from Robert Haas <robertmhaas(at)gmail(dot)com>
2011-02-03 08:28:51 from Anssi Kääriäinen <anssi(dot)kaariainen(at)thl(dot)fi>
2011-02-03 09:05:22 from Žiga Kranjec <ziga(at)ljudmila(dot)org>
2011-02-03 16:34:07 from Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
2011-02-03 08:56:50 from Dimitri Fontaine <dimitri(at)2ndQuadrant(dot)fr>
Lists:
pgsql-hackers
On Feb 2, 2011, at 6:45 AM, Dimitri Fontaine wrote:
> Well, you write 3 scripts.
>
> Let's consider an example, the lo contrib, with its 3 objects:
>
> CREATE DOMAIN lo AS pg_catalog.oid;
> CREATE OR REPLACE FUNCTION lo_oid(lo) …
> CREATE OR REPLACE FUNCTION lo_manage() …
>
> Now, the upgrade script from version NULL to 1.0 is
>
> alter domain @extschema(at)(dot)lo set extension lo;
> alter function @extschema(at)(dot)lo_oid(lo) set extension lo;
> alter function @extschema(at)(dot)lo_manage() set extension lo;
>
> The upgrade script from version 1.0 to 2.0 is, let's say:
>
> CREATE OR REPLACE FUNCTION @extschema(at)(dot)lo_newfunc() …
>
> So the upgrade script from version NULL to 2.0 is:
>
> alter domain @extschema(at)(dot)lo set extension lo;
> alter function @extschema(at)(dot)lo_oid(lo) set extension lo;
> alter function @extschema(at)(dot)lo_manage() set extension lo;
> CREATE OR REPLACE FUNCTION @extschema(at)(dot)lo_newfunc() …
>
> If as an extension author you're kind enough to provide all those 3
> scripts and the upgrade setup in the control file, then the user can
> issue ALTER EXTENSION lo UPGRADE; and have all your cases covered
> automatically.
As an extension author, I can't emphasize enough how much I hate the redundancy of this approach.
Best,
David
In response to
Responses
pgsql-hackers by date
Next :From: Magnus HaganderDate: 2011-02-02 17:00:42
Subject : Re: Move WAL warning
Previous :From : Tim BunceDate : 2011-02-02 16:45:52
Subject : Re: Optimize PL/Perl function argument passing [PATCH]