>> > > +typedef struct >> > > +{ >> > > + Oid root_reloid; >> > > + LOCKMODE lockmode; >> > > + bool nowait; >> > > + Oid viewowner; >> > > + Oid viewoid; >> > > +} LockViewRecurse_context; >> > >> > Probably wouldn't hurt to pgindent the larger changes in the patch.
Yeah. Also, each struct member needs a comment. >> > Hm, how can that happen? And if it can happen, why can it only happen >> > with the root relation? >> >> For example, the following queries cause the infinite recursion of views. >> This is detected and the error is raised. >> >> create table t (i int); >> create view v1 as select 1; >> create view v2 as select * from v1; >> create or replace view v1 as select * from v2; >> begin; >> lock v1; >> abort; >> >> However, I found that the previous patch could not handle the following >> situation in which the root relation itself doesn't have infinite recursion. >> >> create view v3 as select * from v1; >> begin; >> lock v3; >> abort; Shouldn't they be in the regression test? It's shame that create_view test does not include the cases, but it's another story. Best regards, -- Tatsuo Ishii SRA OSS, Inc. Japan English: http://www.sraoss.co.jp/index_en.php Japanese:http://www.sraoss.co.jp