Re: The return value of allocate_recordbuf() - Mailing list pgsql-hackers

From Michael Paquier
Subject Re: The return value of allocate_recordbuf()
Date
Msg-id CAB7nPqQFRPEGn18vycgn6kPgtxda40_9MKqwBnSfNS7UmCeREQ@mail.gmail.com
Whole thread Raw
In response to Re: The return value of allocate_recordbuf()  (Fujii Masao <masao.fujii@gmail.com>)
Responses Re: The return value of allocate_recordbuf()  (Robert Haas <robertmhaas@gmail.com>)
List pgsql-hackers
On Mon, Feb 9, 2015 at 7:58 PM, Fujii Masao <masao.fujii@gmail.com> wrote:
> MemoryContextAllocExtended() was added, so isn't it time to replace palloc()
> with MemoryContextAllocExtended(CurrentMemoryContext, MCXT_ALLOC_NO_OOM)
> in allocate_recordbuf()?

Yeah, let's move on here, but not with this patch I am afraid as this
breaks any client utility using xlogreader.c in frontend, like
pg_xlogdump or pg_rewind because MemoryContextAllocExtended is not
available in frontend, only in backend. We are going to need something
like palloc_noerror, defined on both backend (mcxt.c) and frontend
(fe_memutils.c) side.

Btw, the huge flag should be used as well as palloc only allows
allocation up to 1GB, and this is incompatible with ~9.4 where malloc
is used.
-- 
Michael



pgsql-hackers by date:

Previous
From: Fujii Masao
Date:
Subject: Re: Patch: add recovery_timeout option to control timeout of restore_command nonzero status code
Next
From: Abhijit Menon-Sen
Date:
Subject: Re: What exactly is our CRC algorithm?