From: | Rory Campbell-Lange <rory(at)campbell-lange(dot)net> |
---|---|
To: | "David G(dot) Johnston" <david(dot)g(dot)johnston(at)gmail(dot)com> |
Cc: | Guyren Howe <guyren(at)gmail(dot)com>, Adrian Klaver <adrian(dot)klaver(at)aklaver(dot)com>, PG-General Mailing List <pgsql-general(at)postgresql(dot)org> |
Subject: | Re: Advice request : simultaneous function/data updates on many databases |
Date: | 2020-03-04 23:41:59 |
Message-ID: | 20200304234159.GA14088@campbell-lange.net |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-general |
On 04/03/20, David G. Johnston (david(dot)g(dot)johnston(at)gmail(dot)com) wrote:
> On Wed, Mar 4, 2020 at 3:55 PM David G. Johnston <david(dot)g(dot)johnston(at)gmail(dot)com>
> wrote:
>
> > On Wed, Mar 4, 2020 at 3:48 PM Rory Campbell-Lange <
> > rory(at)campbell-lange(dot)net> wrote:
> >
> >> Any thoughts on how to wrap pl/pgsql function dropping and recreation code
> >> within a wrapper pl/pgsql function?
> >
> >
> > Not endorsing this but dynamic SQL works just fine (though can get hard to
> > read). Use format() and EXECUTE ... USING liberally.
> >
> >
> Or, more readable depending upon your trust level:
>
> INSERT INTO dynamic_codes VALUES (1, 'DROP FUNCTION ...');
>
> CREATE FUNCTION execute_dynamic(code_id int)
> AS $$
> sql_cmd := (SELECT val FROM dynamic_codes WHERE id = code_id);
> EXECUTE sql_cmd;
> $$;
>
> SELECT execute_dynamic(1);
Thanks very much for the useful examples.
Based on your second example, we could drop and then reload a upgrade
schema with entries in dynamic_codes then use execute_dynamic(...) as
you suggest.
Any idea on how to run execute_dynamic across many databases at roughly
the same time?
I'm just wondering if Guyren Howe's idea of having many transactions
open waiting for a clock time to commit is in fact feasible due to
(presumably) having to have all the connections open to every database
from the client until the transactions complete.
From | Date | Subject | |
---|---|---|---|
Next Message | David G. Johnston | 2020-03-05 00:05:21 | Re: Advice request : simultaneous function/data updates on many databases |
Previous Message | Adrian Klaver | 2020-03-04 23:26:02 | Re: Advice request : simultaneous function/data updates on many databases |