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
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 |