Re: DROP/CREATE

From: Dave Page <dpage(at)vale-housing(dot)co(dot)uk>
To: "'Jean-Michel POURE'" <jm(dot)poure(at)freesurf(dot)fr>, pgadmin-hackers(at)postgresql(dot)org
Subject: Re: DROP/CREATE
Date: 2001-10-30 10:49:59
Message-ID: AA30E7BCCA5C1D4E88A231900F8325C00C19@dogbert.vale-housing.co.uk
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgadmin-hackers

> -----Original Message-----
> From: Jean-Michel POURE [mailto:jm(dot)poure(at)freesurf(dot)fr]
> Sent: 30 October 2001 10:39
> To: pgadmin-hackers(at)postgresql(dot)org
> Cc: dave Page; pgsql-hackers(at)postgresql(dot)org
> Subject: RE: DROP/CREATE
>
>
>
> >Yes (and I agree that it would be a good feature), but that
> will still
> >require full client side parsing of the code to figure out the
> >dependencies
> >- I for one, do not wish to try to recreate (and keep up-to-date) the
> >PostgreSQL parser in VB. Besides which, if we take it that
> far then we might
> >just as well use reverse engineered SQL to scan for
> dependencies. I know you
> >don't like reverse engineered code, but bear in mind that
> the important bits
> >are reported directly from PostgreSQL (e.g. pg_proc.prosrc).
>
> IMHO view modification can be achieved within one
> transaction, without
> development table nor PL/pgSQL.

Yes, I agree. As I said in my first message, there is no problem with
standalone views, but (and this is the killer) if your view is a dependency
of something else like an SQL function or another view then you have a
problem. The problem is even bigger (i.e. harder to detect) if the rowtype
of the view is used as a parameter to or return value from a function (is
this actually possible? I know it is with a table).

> Could you give me your feedback again for view modification:
> - Attempt to create a view with the new definition to ensure
> it's valid.

Yes.

> - Open transaction (in locking mode as we may drop triggers
> in many tables).

Yes.

> - Drop dependent views in OID order. Keep CREATE SQL strings
> for future usage.

Yes.

> - Drop dependent triggers. Keep CREATE SQL strings for future usage.

Can triggers be dependent on views?

> - Drop dependent rules. Keep CREATE SQL strings for future usage.

Yes.

> - Drop the old view and create the new view.

Yes.

> - Create dependent views, triggers and rules.

Yes.

> - Re-apply any comments and ACLs.

Yes.

> - Commit transaction.

I wouldn't be surprised if some of these actions are not 'transactionable'.
Things like create user/database for example definitely aren't.

> - Query pg_class for the updated OID.

Yes.

>
> This would allow migration from pgAdmin I to pgAdmin II.

Incidently, pgAdmin II (and pgSchema) has no concept of objects being
defined on Views at present. I'll add that to my To-Do list - presumable
it's only Rules (and Triggers?).

Dave.

Browse pgadmin-hackers by date

  From Date Subject
Next Message Jean-Michel POURE 2001-10-30 11:07:38 Re: DROP/CREATE
Previous Message Jean-Michel POURE 2001-10-30 10:38:48 Re: DROP/CREATE