Re: Rethinking TupleTableSlot deforming - Mailing list pgsql-hackers

From Jim Nasby
Subject Re: Rethinking TupleTableSlot deforming
Date
Msg-id be5aced2-2092-7b20-17cd-c62e5ca69bf0@BlueTreble.com
Whole thread Raw
In response to Re: Rethinking TupleTableSlot deforming  (Andres Freund <andres@anarazel.de>)
Responses Re: Rethinking TupleTableSlot deforming  (Andres Freund <andres@anarazel.de>)
List pgsql-hackers
On 7/22/16 1:35 PM, Andres Freund wrote:
> Sure, it's intentional. But not working that well.  The problem is that
> very often we actually don't ever access the preceding
> columns. Sometimes that knowledge would let us skip directly to the
> interesting column(s) (fixed width, no nulls columns preceding). But
> even if not, just the fact that we don't have to copy the column data
> for columns never accessed can make for a *significant* speed bump.  For
> !varlena datatypes we don't ever have to access the data, just the NULL
> bitmap. And for varlena ones, we just need to check the varlena header
> for the width, not make variable width copy.
>
> So what I'm saying is, that we should pre-compute the set of columns
> we're interested in, and deform just those, but still in bulk.

Another option would be to remember the tuple offsets (NOT attcacheoff) 
that have been computed as well as whether a varlena attribute has 
actually been deformed. That eliminates the need to pre-declare what 
attributes you're allowed to reference.

Somewhat related, it's occurred to me that it would be nice if expanded 
objects supported partial expansion. IE: if we converted JSONB to be an 
expanded object, you would not want to proactively expand every value in 
a JSON object, because each of those values could itself be very large. 
Obviously most of the work there would be up to the type that was 
handling the details of the expansion, but IIRC there's some additional 
support that would be needed in expanded objects themselves.
-- 
Jim Nasby, Data Architect, Blue Treble Consulting, Austin TX
Experts in Analytics, Data Architecture and PostgreSQL
Data in Trouble? Get it in Treble! http://BlueTreble.com
855-TREBLE2 (855-873-2532)   mobile: 512-569-9461



pgsql-hackers by date:

Previous
From: Andres Freund
Date:
Subject: Re: Rethinking TupleTableSlot deforming
Next
From: Andres Freund
Date:
Subject: Re: Rethinking TupleTableSlot deforming