Re: [ADMIN] Lock a viewe - Mailing list pgsql-admin

From Gaetano Mendola
Subject Re: [ADMIN] Lock a viewe
Date
Msg-id CAJycT5oc2TTypmHCrEZ7Q+hOGbDceSCg-6k=oiCwAW1x27SYHA@mail.gmail.com
Whole thread Raw
In response to [ADMIN] Lock a viewe  (Gaetano Mendola <mendola@gmail.com>)
List pgsql-admin
On Mon, 26 Dec 2016 at 20:53 Alvaro Herrera <alvherre@2ndquadrant.com> wrote:
Gaetano Mendola wrote:
> Hi,
> I was wondering if there is a clean view to lock the usage of a view.
>
> Basically during a schema migration, with applications still running a
> typical
> schema change is:
>
> BEGIN;
> ALTER TABLE x ADD COLUMN (a INTEGER);
> CREATE OR REPLACE VIEW v_x
> AS
> SELECT a,b FROM x;
> COMMIT;
>
> now the issue is that if an application performs a:
>
> SELECT * from v_x;
>
> between the ALTER and the view redefinition then a deadlock happens.
>
> I'm preventing this issue doing a:
>
> ALTER VIEW v_x ALTER COLUMN b DROP DEFAULT;
> (anyway there was no default on the view)
> before the ALTER TABLE, that's basically reorders the locks sequence
> avoiding the dead lock.

So what you want is
   LOCK VIEW f;

Exactly that, it would be ideal indeed that was exactly my first attempt.

Regards. 

pgsql-admin by date:

Previous
From: Achilleas Mantzios
Date:
Subject: Re: [ADMIN] Table/View creation time
Next
From: Günce Kaya
Date:
Subject: [ADMIN] Displaying ProcessList to Users