Hi Hackers - It appears only the oid of the relations used in a view are captured in the view definition, not the relations' name itself. The effect this has is that relation renaming does not propagate to views. I would like to assert that they should.
The user has stated their intention in the view to reference a particular relation by name, not by oid, and so materializing the oid is defective behavior. The following procedure demonstrates: --------------------------- begin; create table public.test (id varchar(255)); insert into public.test(id) values ('12/12/2009'); create table public.test_new (id varchar(50)); insert into public.test_new(id) select * from test; create view public.test_v as select count(*) from test; select * from public.test_v; <------ returns 1 alter table public.test rename to test_depricated; alter table public.test_new rename to test; insert into public.test(id) values ('12/12/2010'); select * from public.test_v; <------ (erroneously) returns 1 rollback; --------------------------- Thanks! -- Jordan Deitch https://id.rsa.pub/