Re: Function to get invalidation cause of a replication slot.

From: Michael Paquier <michael(at)paquier(dot)xyz>
To: Amit Kapila <amit(dot)kapila16(at)gmail(dot)com>
Cc: "Drouvot, Bertrand" <bertranddrouvot(dot)pg(at)gmail(dot)com>, shveta malik <shveta(dot)malik(at)gmail(dot)com>, pgsql-hackers <pgsql-hackers(at)postgresql(dot)org>
Subject: Re: Function to get invalidation cause of a replication slot.
Date: 2023-12-21 06:37:42
Message-ID: ZYPdNnEz1oIN2Zdb@paquier.xyz
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

On Thu, Dec 21, 2023 at 11:53:04AM +0530, Amit Kapila wrote:
> On Thu, Dec 21, 2023 at 11:18 AM Michael Paquier <michael(at)paquier(dot)xyz> wrote:
> Yeah, if one uses them independently then there is no such guarantee.

This could be possible in the same query as well, still less likely,
as the contents are volatile.

>> A lot could happen between both function calls while the
>> repslot LWLock is not hold.
>>
>> Yeah, you could keep the reason text as NULL when there is no
>> conflict, replacing the boolean by the text in the function, and keep
>> the view definition compatible with v16 while adding an extra column.
>
> But as mentioned we also want the enum value to be exposed in some way
> so that it can be used by the sync slot feature [1] as well,
> otherwise, we may need some mappings to convert the text back to an
> enum. I guess if we want to expose via view, then we can return an
> enum value by pg_get_replication_slots() and the view can replace it
> with text based on the value.

Sure. Something like is OK by me as long as the data is retrieved
from a single scan of the slot data while holding the slot data's
LWLock.
--
Michael

In response to

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message Dilip Kumar 2023-12-21 06:49:20 Re: index prefetching
Previous Message vignesh C 2023-12-21 06:35:58 Re: Remove MSVC scripts from the tree