MemoryContext linecxt;
MemoryContext oldcxt;
- linecxt = AllocSetContextCreate(TopMemoryContext,
+ linecxt = AllocSetContextCreate(CurrentMemoryContext,
"tokenize file cxt",
ALLOCSET_DEFAULT_MINSIZE,
ALLOCSET_DEFAULT_INITSIZE,
FreeFile(file);
/* Now parse all the lines */
- hbacxt = AllocSetContextCreate(TopMemoryContext,
+ Assert(PostmasterContext);
+ hbacxt = AllocSetContextCreate(PostmasterContext,
"hba parser context",
ALLOCSET_DEFAULT_MINSIZE,
ALLOCSET_DEFAULT_MINSIZE,
FreeFile(file);
/* Now parse all the lines */
- ident_context = AllocSetContextCreate(TopMemoryContext,
+ Assert(PostmasterContext);
+ ident_context = AllocSetContextCreate(PostmasterContext,
"ident parser context",
ALLOCSET_DEFAULT_MINSIZE,
ALLOCSET_DEFAULT_MINSIZE,
#include "utils/acl.h"
#include "utils/fmgroids.h"
#include "utils/guc.h"
+#include "utils/memutils.h"
#include "utils/pg_locale.h"
#include "utils/portal.h"
#include "utils/ps_status.h"
* FIXME: [fork/exec] Ugh. Is there a way around this overhead?
*/
#ifdef EXEC_BACKEND
+ /*
+ * load_hba() and load_ident() want to work within the PostmasterContext,
+ * so create that if it doesn't exist (which it won't). We'll delete it
+ * again later, in PostgresMain.
+ */
+ if (PostmasterContext == NULL)
+ PostmasterContext = AllocSetContextCreate(TopMemoryContext,
+ "Postmaster",
+ ALLOCSET_DEFAULT_MINSIZE,
+ ALLOCSET_DEFAULT_INITSIZE,
+ ALLOCSET_DEFAULT_MAXSIZE);
+
if (!load_hba())
{
/*