The attached patch fixes this problem.
Unfortunately, we have no code that invokes get_object_address()
with missing_ok = true now, so please apply a couple of patches
to rework DROP statement of mine.
DROP TRIGGER no_such_trigger ON existing_table;
shall cause a relcache reference leaks, without this patch.
Thanks,
2011/10/13 Kohei KaiGai <kaigai@kaigai.gr.jp>:
> I noticed a problem of get_object_address() with missing_ok = true.
>
> When we try to solve the name of nonexistent rule/trigger/constraint on
> a particular existing table, get_object_address_relobject() opens the
> relation, but address.objectId = InvalidOid shall be set.
>
> I think it should be closed if the queried object was missing, although
> existing code does not invoke get_object_address() with missing_ok = true.
>
> Thanks,
> --
> KaiGai Kohei <kaigai@kaigai.gr.jp>
>
--
KaiGai Kohei <kaigai@kaigai.gr.jp>