On Wed, 18 Jul 2001, Hiroshi Inoue wrote:
> Oops I made a mistake.
> Reference name is needed not an object name,
> i.e
> object relid
> object oid
> relerence relid
> reference oid
> reference name
>
> create table a (...);
> create view view_a as select .. from a;
>
> Then we have an pg_depend entry e.g.
>
> pg_class_relid
> oid of the view_a
> pg_class_relid
> oid of the table a
> 'a' the name of the table
>
> and so on.
>
> drop table a; (unadorned drop).
>
> Then the above entry would be changed to
>
> pg_class_relid(unchanged)
> oid of the view_s(unchagned)
> pg_class_relid(unchanged)
> InvalidOid
> 'a' the name of the table(unchanged)
>
> create table a (...);
>
> Then the pg_depend entry would be
>
> pg_class_relid(unchanged)
> oid of the view_s(unchagned)
> pg_class_relid(unchanged)
> the oid of the new table a
> 'a' the name of the table(unchanged)
This step I disagree with. Well, I disagree with the automated aspect of
the update. How does postgres know that the new table a is sufficiently
like the old table that it should be used? A way the DBA could say, "yeah,
restablish that," would be fine.
Which is better, a view which is broken as the table it was based off of
was dropped (even though there's a table of the same name now) or a view
which is broken because there is now a table whose name matches its
old table's name, but has different columns (either names or types)?
I'd say #1.
Take care,
Bill
---------------------------(end of broadcast)---------------------------
TIP 6: Have you searched our list archives?
http://www.postgresql.org/search.mpl