On Sat, Mar 24, 2001 at 07:50:00PM -0500, Tom Lane allegedly wrote:
> Andrew Perrin <aperrin@socrates.berkeley.edu> writes:
> > But I'm intrigued: what is it that causes this? Is it *my*
> > recreating the view on which the other views depend,
>
> Yes. You dropped and recreated the view --- the new version may have
> the same name but it's not the same OID, so it isn't the same object.
> And the other views refer to it by OID.
>
> The ultimate solution should have two parts, IMHO:
>
> 1. Dependency checking so that you *can't* drop a view that is still
> referenced. However this will not be complete --- it's not clear that
> we can detect references inside PL functions, for example.
>
> 2. An ALTER VIEW command that lets you change a view's defining query,
> while keeping the same OID, as long as the names and types of the output
> columns don't change. This would reduce the need to drop and recreate
> views.
How about being able to recompile them (keeping the SQL around in the
system catalogs)? Doesn't Oracle allow you to do something like that?
Mathijs
--
"It is a great thing to start life with a small number of really good bookswhich are your very own". Sir Arthur
ConanDoyle (1859-1930)