diff --git a/src/backend/catalog/pg_inherits.c b/src/backend/catalog/pg_inherits.c index 827ad2a850..04214fc203 100644 --- a/src/backend/catalog/pg_inherits.c +++ b/src/backend/catalog/pg_inherits.c @@ -29,9 +29,9 @@ #include "storage/lmgr.h" #include "utils/builtins.h" #include "utils/fmgroids.h" +#include "utils/memutils.h" #include "utils/syscache.h" #include "utils/tqual.h" -#include "utils/memutils.h" /* * Entry of a hash table used in find_all_inheritors. See below. @@ -169,29 +169,19 @@ find_all_inheritors(Oid parentrelId, LOCKMODE lockmode, List **numparents) /* hash table for O(1) rel_oid -> rel_numparents cell lookup */ HTAB *seen_rels; HASHCTL ctl; - MemoryContext new_ctx; List *rels_list, *rel_numparents; ListCell *l; - /* - * We need a separate memory context for a hash table. This is because - * hash table is used only in this procedure. To free a memory we need to - * call hash_destroy which is just a wrapper around MemoryContextDelete. - */ - new_ctx = AllocSetContextCreate(CurrentMemoryContext, - "FindAllInheritorsSeenRelsContext", - ALLOCSET_DEFAULT_SIZES); - memset(&ctl, 0, sizeof(ctl)); ctl.keysize = sizeof(Oid); ctl.entrysize = sizeof(SeenRelsEntry); - ctl.hcxt = new_ctx; + ctl.hcxt = CurrentMemoryContext; - seen_rels = hash_create( - "find_all_inheritors temporary table", - 32, /* start small and extend */ - &ctl, HASH_ELEM | HASH_BLOBS | HASH_CONTEXT); + seen_rels = hash_create("find_all_inheritors temporary table", + 32, /* start small and extend */ + &ctl, + HASH_ELEM | HASH_BLOBS | HASH_CONTEXT); /* * We build a list starting with the given rel and adding all direct and