rewrite HeapSatisfiesHOTAndKey

From: Alvaro Herrera <alvherre(at)2ndquadrant(dot)com>
To: Pg Hackers <pgsql-hackers(at)postgresql(dot)org>, Pavan Deolasee <pavan(dot)deolasee(at)2ndQuadrant(dot)com>
Subject: rewrite HeapSatisfiesHOTAndKey
Date: 2016-12-28 23:20:18
Message-ID: 20161228232018.4hc66ndrzpz4g4wn@alvherre.pgsql
Views: Raw Message | Whole Thread | Download mbox | Resend email
Lists: pgsql-hackers

Pursuant to my comments at
and because of a stupid bug I found in my indirect indexes patch, I
rewrote (read: removed) HeapSatisfiesHOTAndKey. The replacement
function HeapDetermineModifiedColumns returns a bitmapset with a bit set
for each modified column, for those columns that are listed as
"interesting" -- currently that set is the ID columns, the "key"
columns, and the indexed columns. The new code is much simpler, at the
expense of a few bytes of additional memory used during heap_update().

All tests pass.

Both WARM and indirect indexes should be able to use this infrastructure
in a way that better serves them than the current HeapSatisfiesHOTAndKey
(both patches modify that function in a rather ugly way). I intend to
get this pushed shortly unless objections are raised.

The new coding prevents stopping the check early as soon as the three
result booleans could be determined. However, both patches were adding
reasons to avoid stopping early anyway, so I don't think this is a
significant loss.

Pavan, please rebase your WARM patch on top of this and let me know how
you like it. I'll post a new version of indirect indexes later this

Comments welcome.

Álvaro Herrera
PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services

Attachment Content-Type Size
interesting-attrs.patch text/plain 8.3 KB


Browse pgsql-hackers by date

  From Date Subject
Next Message Michael Paquier 2016-12-28 23:35:37 Re: Support for pg_receivexlog --format=plain|tar
Previous Message Tom Lane 2016-12-28 23:17:26 Re: Improving RLS planning