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
- pgsql-v9.2-fix-relcache-leaks-in-get_object_address_relobject.patch (application/octet-stream) patch v9
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>