#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.
/* 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