Skip site navigation (1) Skip section navigation (2)

Re: ALTER EXTENSION UPGRADE, v3

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:
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]

Privacy Policy | About PostgreSQL
Copyright © 1996-2014 The PostgreSQL Global Development Group