| 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
| 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 |