From: | Thomas Munro <thomas(dot)munro(at)gmail(dot)com> |
---|---|
To: | Ashwin Agrawal <aagrawal(at)pivotal(dot)io> |
Cc: | Andres Freund <andres(at)anarazel(dot)de>, PostgreSQL mailing lists <pgsql-hackers(at)postgresql(dot)org>, Kuntal Ghosh <kuntalghosh(dot)2007(at)gmail(dot)com> |
Subject: | Re: Remove HeapTuple and Buffer dependency for predicate locking functions |
Date: | 2020-01-28 00:46:58 |
Message-ID: | CA+hUKG+-j7-keNC7Zi6x49fx3kK+D76NzJa_0icBkrDyGa_MVA@mail.gmail.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-hackers |
On Wed, Nov 13, 2019 at 7:27 PM Ashwin Agrawal <aagrawal(at)pivotal(dot)io> wrote:
> On Sun, Nov 10, 2019 at 8:21 PM Thomas Munro <thomas(dot)munro(at)gmail(dot)com> wrote:
>> but on another read-through of the main patch
>> I didn't like the comments for CheckForSerializableConflictOut() or
>> the fact that it checks SerializationNeededForRead() again, after I
>> thought a bit about what the contract for this API is now. Here's a
>> version with small fixup that I'd like to squash into the patch.
>> Please let me know what you think,
>
> The thought or reasoning behind having SerializationNeededForRead()
> inside CheckForSerializableConflictOut() is to keep that API clean and
> complete by itself. Only if AM like heap needs to perform some AM
> specific checking only for serialization needed case can do so but is
> not forced. So, if AM for example Zedstore doesn't need to do any
> specific checking, then it can directly call
> CheckForSerializableConflictOut(). With the modified fixup patch, the
> responsibility is unnecessarily forced to caller even if
> CheckForSerializableConflictOut() can do it. I understand the intent
> is to avoid duplicate check for heap.
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.
From | Date | Subject | |
---|---|---|---|
Next Message | Ashwin Agrawal | 2020-01-28 01:00:53 | Re: Remove HeapTuple and Buffer dependency for predicate locking functions |
Previous Message | Tom Lane | 2020-01-28 00:12:46 | New compiler warning in jsonb_plpython.c |