Re: Remove HeapTuple and Buffer dependency for predicate locking functions

Ashwin Agrawal <aagrawal@pivotal.io>

From: Ashwin Agrawal <aagrawal@pivotal.io>
To: Thomas Munro <thomas.munro@gmail.com>
Cc: Andres Freund <andres@anarazel.de>, PostgreSQL mailing lists <pgsql-hackers@postgresql.org>, Kuntal Ghosh <kuntalghosh.2007@gmail.com>
Date: 2020-01-28T01:00:53Z
Lists: pgsql-hackers
On Mon, Jan 27, 2020 at 4:47 PM Thomas Munro <thomas.munro@gmail.com> wrote:

> OK, I kept only the small comment change from that little fixup patch,
> and pushed this.
>
> > I had proposed as alternative way in initial email and also later,
> > didn't receive comment on that, so re-posting.
>
> > typedef bool (*AMCheckForSerializableConflictOutCallback) (void *arg);
> ...
> > Just due to void* callback argument aspect I didn't prefer that
> > solution and felt AM performing checks and calling
> > CheckForSerializableConflictOut() seems better.  Please let me know
> > how you feel about this.
>
> Yeah.  We could always come back to this idea if it looks better once
> we have more experience with new table AMs.
>

Sounds good. Thank You!

Commits

  1. Remove dependency on HeapTuple from predicate locking functions.

  2. Optimize PredicateLockTuple().

  3. Optimize TransactionIdIsCurrentTransactionId().

  4. Fix predicate-locking of HOT updated rows.

  5. Introduce logical decoding.

  6. Fix bugs in SSI tuple locking.

  7. Implement genuine serializable isolation level.