HOT patch - version 14 - Mailing list pgsql-patches

From Pavan Deolasee
Subject HOT patch - version 14
Date
Msg-id 2e78013d0708192227l7c4c725ey8eb6dbb51effa6ab@mail.gmail.com
Whole thread Raw
Responses Re: HOT patch - version 14  (Heikki Linnakangas <heikki@enterprisedb.com>)
Re: HOT patch - version 14  (Tom Lane <tgl@sss.pgh.pa.us>)
List pgsql-patches
Hi All,

Please see the version 14 of HOT patch attached. I have also
attached a differential patch from the last version posted. This
now includes support for partial and expression indexes. As per
the discussion, we collect all the index columns appearing in
the partial index predicates and/or expression index expressions.
If any of these columns are being updated, the update does not
qualify for HOT update.

I also took this opportunity to remove the modularity invasion caused
by heap_check_idxupdate() since it was using resultRelInfo. We now
build the list of attributes that must be checked to satisfy HOT update.
This list includes all the index columns, columns in the partial index
predicates and expression index expressions and is built in the
executor.

heap_check_idxupdate() is renamed to HeapSatisfiesHOTUpdate()

The patch also includes a bug fix in the CREATE INDEX code path.
There was a race between CREATE INDEX and concurrent chain pruning
operation. Since CREATE INDEX works on SnapshotAny, a tuple returned
by heap-scan may get pruned (and marked ~LP_USED) before it can
be inspected later. So we must check for LP_USED after reaquiring
the buffer lock.


Thanks,
Pavan

--
Pavan Deolasee
EnterpriseDB     http://www.enterprisedb.com
Attachment

pgsql-patches by date:

Previous
From: "Merlin Moncure"
Date:
Subject: Re: pgparam extension to the libpq api
Next
From: Heikki Linnakangas
Date:
Subject: Re: HOT patch - version 14