Re: LISTEN/NOTIFY testing woes

Mark Dilger <hornschnorter@gmail.com>

From: Mark Dilger <hornschnorter@gmail.com>
To: Tom Lane <tgl@sss.pgh.pa.us>
Cc: pgsql-hackers@lists.postgresql.org, Martijn van Oosterhout <kleptog@gmail.com>
Date: 2019-11-24T19:24:35Z
Lists: pgsql-hackers

On 11/24/19 11:04 AM, Tom Lane wrote:
> Mark Dilger <hornschnorter@gmail.com> writes:
>> On 11/24/19 10:39 AM, Tom Lane wrote:
>>> After sleeping on it, I'm not really happy with what I did in
>>> PrepareTransaction (that is, invent a separate PrePrepare_Notify
>>> function).  The idea was to keep that looking parallel to what
>>> CommitTransaction does, and preserve infrastructure against the
>>> day that somebody gets motivated to allow LISTEN or NOTIFY in
>>> a prepared transaction.  But on second thought, what would surely
>>> happen when that feature gets added is just that AtPrepare_Notify
>>> would serialize the pending LISTEN/NOTIFY actions into the 2PC
>>> state file.  There wouldn't be any need for PrePrepare_Notify,
>>> so there's no point in introducing that.  I'll just move the
>>> comment saying that nothing has to happen at that point for NOTIFY.
> 
>> I assumed you had factored it out in anticipation of supporting notify
>> here in the future.  If you want to backtrack that decision and leave it
>> inline, you would still keep the test rather than just a comment, right?
> 
> No, there wouldn't be any error condition; that's just needed because the
> feature isn't implemented yet.  So I'll leave that alone; the only thing
> that needs to happen now in the PREPARE code path is to adjust the one
> comment.

Ok.

-- 
Mark Dilger



Commits

  1. Avoid assertion failure with LISTEN in a serializable transaction.

  2. Stabilize NOTIFY behavior by transmitting notifies before ReadyForQuery.

  3. Stabilize the results of pg_notification_queue_usage().