Re: fast defaults in heap_getattr vs heap_deform_tuple - Mailing list pgsql-hackers

From Alvaro Herrera
Subject Re: fast defaults in heap_getattr vs heap_deform_tuple
Date
Msg-id 20190206014438.GA3755@alvherre.pgsql
Whole thread Raw
In response to Re: fast defaults in heap_getattr vs heap_deform_tuple  (Andres Freund <andres@anarazel.de>)
Responses Re: fast defaults in heap_getattr vs heap_deform_tuple
List pgsql-hackers
On 2019-Feb-05, Andres Freund wrote:

> @@ -82,7 +80,7 @@ static Datum getmissingattr(TupleDesc tupleDesc, int attnum, bool *isnull);
>  /*
>   * Return the missing value of an attribute, or NULL if there isn't one.
>   */
> -static Datum
> +Datum
>  getmissingattr(TupleDesc tupleDesc,
>                 int attnum, bool *isnull)

This is a terrible name for an exported function -- let's change it
before it gets exported.  Heck, even heap_getmissingattr() would be
better.

I notice that with this patch, heap_getattr() obtains a new Assert()
that the attr being fetched is no further than tupledesc->natts.
It previously just returned null for that case.  Maybe we should change
it so that it returns null if an attr beyond end-of-array is fetched?
(I think in non-assert builds, it would dereference past the AttrMissing
array.)

-- 
Álvaro Herrera                https://www.2ndQuadrant.com/
PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services


pgsql-hackers by date:

Previous
From: Alvaro Herrera
Date:
Subject: Re: Refactoring IndexPath representation of index conditions
Next
From: Alvaro Herrera
Date:
Subject: Re: Don't deform column-by-column in composite_to_json