Re: ALTER EXTENSION UPGRADE, v3

From: Žiga Kranjec <ziga(at)ljudmila(dot)org>
To: PostgreSQL Hackers <pgsql-hackers(at)postgresql(dot)org>
Subject: Re: ALTER EXTENSION UPGRADE, v3
Date: 2011-02-03 09:05:22
Message-ID: FDEA41D4-4A3A-4EE4-8EC6-C231C1BB6FC6@ljudmila.org
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

This might be a silly idea, but I'm not sure if it was really
discussed with respect to extensions here before...

Why not use PL/pgSQL as install/upgrade script language,
specially now when it's included in the core by default?

This would allow for relatively straightforward inclusion
of conditional logic, etc in install/upgrade scripts.

All current contrib stuff runs great as PL/pgSQL, for example.

The @ placeholder syntax just seems outright hideous and doesn't
feel quite right either.

Also worth considering might be, how the proposed extension
system relates to SQL standard modules (ie. CREATE MODULE, etc),
which might be implemented in the future.
There are are some obvious overlaps (relocatable/fixed extensions vs.
modules with/without schemas, for example).

Also, consider the following case:
I have two different users, u1 and u2 with corresponding schemas, u1 and u2,
both using hstore, for example. Right now, I can load hstore.sql contrib
into both, u1 and u2 it all works great.
If I understand correctly, such an arrangement would not really be supported
with extensions as they stand now.

Ziga Kranjec,
developer, ljudmila.org

On Feb 3, 2011, at 9:28 AM, Anssi Kääriäinen wrote:

> 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(at)(dot) 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
>
> --
> Sent via pgsql-hackers mailing list (pgsql-hackers(at)postgresql(dot)org)
> To make changes to your subscription:
> http://www.postgresql.org/mailpref/pgsql-hackers

In response to

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message Vitalii Tymchyshyn 2011-02-03 09:54:49 Re: [HACKERS] Slow count(*) again...
Previous Message Dimitri Fontaine 2011-02-03 08:56:50 Re: ALTER EXTENSION UPGRADE, v3