Re: pgsql: Optimize tuple deformation

From: David Rowley <dgrowleyml(at)gmail(dot)com>
To: Peter Eisentraut <peter(at)eisentraut(dot)org>
Cc: David Rowley <drowley(at)postgresql(dot)org>, pgsql-committers(at)lists(dot)postgresql(dot)org
Subject: Re: pgsql: Optimize tuple deformation
Date: 2026-10-07 08:54:39
Message-ID: CAApHDvoLatLLOtyCjPT4uAOyuEnHTVmqDvWmMWToNeVNrgWLbg@mail.gmail.com
Views: Whole Thread | Raw Message | Download mbox | Resend email
Thread:
Lists: pgsql-committers

On Wed, 7 Oct 2026 at 19:31, Peter Eisentraut <peter(at)eisentraut(dot)org> wrote:
>
> On 15.03.26 23:50, David Rowley wrote:
> > Optimize tuple deformation
>
> This commit c456e391138 changed in slot_deform_heap_tuple() the type of
> attnum from int to size_t, which seems unusual and doesn't fit with the
> surrounding code. Could you check whether that was intentional?

It was done to work around a problem with gcc where it was refusing to
index the CompactAttribute array by adding 8 to the previous address
to get the address of the next element. Instead, it was doing LEA on
each loop, which was slower due to shift and add rather than just add.
The best I could figure out is that gcc didn't want to optimise to use
LEA due to concerns about the integer wrapping around, which, if it
did, would be a different address than doing 2^31 adds on a 64-bit
pointer.

David

In response to

Responses

Browse pgsql-committers by date

  From Date Subject
Next Message Álvaro Herrera 2026-10-07 08:57:50 pgsql: Concurrent REPACK: Clear out dropped-column values from all tupl
Previous Message Peter Eisentraut 2026-10-07 06:58:06 pgsql: Use unconstify_constexpr