Re: [bug] relcache leaks in get_object_address

Kohei KaiGai <kaigai@kaigai.gr.jp>

From: Kohei KaiGai <kaigai@kaigai.gr.jp>
To: Robert Haas <robertmhaas@gmail.com>
Cc: PgHacker <pgsql-hackers@postgresql.org>
Date: 2011-10-13T16:27:12Z
Lists: pgsql-hackers

Attachments

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>