Re: pgsql: Add new function dsa_allocate0.

From: Michael Paquier <michael(dot)paquier(at)gmail(dot)com>
To: Thomas Munro <thomas(dot)munro(at)enterprisedb(dot)com>
Cc: Robert Haas <rhaas(at)postgresql(dot)org>, pgsql-committers(at)postgresql(dot)org
Subject: Re: pgsql: Add new function dsa_allocate0.
Date: 2017-02-17 03:09:20
Message-ID: CAB7nPqTYsbw07vOEPpocUtNoeq6eACdonhGtHv-cuUiz65X16w@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-committers pgsql-hackers

On Fri, Feb 17, 2017 at 12:03 PM, Thomas Munro
<thomas(dot)munro(at)enterprisedb(dot)com> wrote:
> On Fri, Feb 17, 2017 at 11:34 AM, Thomas Munro
> <thomas(dot)munro(at)enterprisedb(dot)com> wrote:
>> On Fri, Feb 17, 2017 at 7:02 AM, Robert Haas <rhaas(at)postgresql(dot)org> wrote:
>>> http://git.postgresql.org/pg/commitdiff/9acb85597f1223ac26a5b19a9345849c43d0ff54
>> Hmm. This will segfault if you're out of memory.
>
> Or to provide a more useful response... maybe this should be like the
> attached? Or maybe people think that dsa_allocate should throw on
> failure to allocate, like palloc?

dp = dsa_allocate(area, size);
- object = dsa_get_address(area, dp);
- memset(object, 0, size);
+ if (DsaPointerIsValid(dp))
+ memset(dsa_get_address(area, dp), 0, size);
What you are proposing here looks like the right answer to me. Like
dsa_allocate, dsa_allocate0 should allow users to fallback to other
methods if what is returned is InvalidDsaPointer for consistency.
--
Michael

In response to

Responses

Browse pgsql-committers by date

  From Date Subject
Next Message Peter Eisentraut 2017-02-17 04:53:24 pgsql: Fix typo on comment
Previous Message Thomas Munro 2017-02-17 03:03:32 Re: pgsql: Add new function dsa_allocate0.

Browse pgsql-hackers by date

  From Date Subject
Next Message Tom Lane 2017-02-17 03:45:57 Re: Implement custom join algorithm
Previous Message Thomas Munro 2017-02-17 03:03:32 Re: pgsql: Add new function dsa_allocate0.