heapgettup refactoring - Mailing list pgsql-hackers

From Melanie Plageman
Subject heapgettup refactoring
Date
Msg-id CAAKRu_YSOnhKsDyFcqJsKtBSrd32DP-jjXmv7hL0BPD-z0TGXQ@mail.gmail.com
Whole thread Raw
Responses Re: heapgettup refactoring  (Justin Pryzby <pryzby@telsasoft.com>)
Re: heapgettup refactoring  (Andres Freund <andres@anarazel.de>)
List pgsql-hackers
Hi,

Attached is a patchset to refactor heapgettup(), heapgettup_pagemode(),
and heapgetpage(). heapgettup() and heapgettup_pagemode() have a lot of
duplicated code, confusingly nested if statements, and unnecessary local
variables. While working on a feature for the AIO/DIO patchset, I
noticed that it was difficult to add new code to heapgettup() and
heapgettup_pagemode() because of how the functions are written.

I've taken a stab at refactoring them -- without generating less
efficient code or causing regressions. I'm interested if people find it
more readable and if those with more assembly expertise see issues (new
branches added which are not highly predictable, etc). I took a look at
the assembly for those symbols compiled at O2 but am not experienced
enough at analysis to come to any conclusions.

- Melanie

Attachment

pgsql-hackers by date:

Previous
From: Matthias van de Meent
Date:
Subject: Re: Improving btree performance through specializing by key shape, take 2
Next
From: Robert Haas
Date:
Subject: Re: heavily contended lwlocks with long wait queues scale badly