Обсуждение: [bug] relcache leaks in get_object_address

Поиск
Список
Период
Сортировка

[bug] relcache leaks in get_object_address

От
Kohei KaiGai
Дата:
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>


Re: [bug] relcache leaks in get_object_address

От
Kohei KaiGai
Дата:
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>

Вложения

Re: [bug] relcache leaks in get_object_address

От
Robert Haas
Дата:
On Thu, Oct 13, 2011 at 12:27 PM, Kohei KaiGai <kaigai@kaigai.gr.jp> wrote:
> 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.

We could argue that that's a bug in your drop reworks rather than the
existing code, but I'm willing to go along with this approach, so,
committed.

-- 
Robert Haas
EnterpriseDB: http://www.enterprisedb.com
The Enterprise PostgreSQL Company