Re: ALTER EXTENSION UPGRADE, v3

Anssi Kääriäinen <anssi.kaariainen@thl.fi>

From: Anssi Kääriäinen <anssi.kaariainen@thl.fi>
To: Robert Haas <robertmhaas@gmail.com>
Cc: "David E. Wheeler" <david@kineticode.com>, Dimitri Fontaine <dimitri@2ndquadrant.fr>, Itagaki Takahiro <itagaki.takahiro@gmail.com>, PostgreSQL Hackers <pgsql-hackers@postgresql.org>
Date: 2011-02-03T08:28:51Z
Lists: pgsql-hackers
On 02/03/2011 12:23 AM, Robert Haas wrote:
> [..]
> -- unconditional stuff
>
> [..6]
> -- stuff to do if coming from pre-7
>
> [..]
> -- some more unconditional stuff
>
> [6..12]
> -- stuff to do if coming from between 6 and 12
>
> [..]
> -- a few more unconditional things
This might be a stupid idea, but how about introducing another 
placeholder variable in addition to @extschema@ when upgrading, named 
maybe @fromversion@. Combined with do blocks and 
pg_execute_extension_file this would allow doing the above stuff:

upgrade.sql contents:
[..]
-- uncoditional stuff
[..6]
DO $$
begin
     if @fromversion@ matches [..6] then
         pg_execute_extension_file('stuff to do if coming from pre-7-file');
     end if;
end;
$$
language 'plpgsql';
...

  - Anssi