Re: Table rewrite supporting functions for event triggers
Greg Sabino Mullane <htamfids@gmail.com>
From: Greg Sabino Mullane <htamfids@gmail.com>
To: Michael Paquier <michael@paquier.xyz>
Cc: Laurenz Albe <laurenz.albe@cybertec.at>,
pgsql-docs <pgsql-docs@lists.postgresql.org>
Date: 2024-09-12T12:52:00Z
Lists: pgsql-docs
On Wed, Sep 11, 2024 at 11:17 PM Michael Paquier <michael@paquier.xyz>
wrote:
> If multiple are set, let's just make it text[], then.
>
Hmmm...I guess it's better than an integer, in some ways, but I'm still a
weak -1.
> That would be a step backwards for anyone possibly using that integer
> > programatically to (for example) give a pretty user-facing message about
> > why the event was triggered.
>
> I don't know either how much people are relying on these numbers in
> applications.
I don't know either - it's one of those problems with our open source -
there could be literally hundreds of people using it, or it could be just
me! :)
I do like the simplicity of the bitmap:
if (reason & 1)
print "Table has changed from logged to unlogged"
if (reason & 2)
print "Default has been changed"
versus with text[]:
foreach reason in tablereason[]
if reason.match_exact("ALTER_PERSISTENCE")
print "Table has changed from logged to unlogged"
if reason.match_regex("DEFAULT")
print "Default has been changed"
...
> Do you have a comment about mentioning the variables or the header in the
> docs for the stable branches? I'm aware that this is a rare
> practice, but so is this function's design. My argument is greppability
> between the code and the docs, mainly, to not miss an update of the docs if
> more reasons are added. That would be unlikely, but a backpatch of a
> reason is not impossible ABI-wise.
>
My initial reaction was that this is indeed a rare case, and to avoid
putting that level of code detail in the docs. Your argument is a good one,
but it still feels wrong to put that there. Yes, this puts a little more
onus on future developers, but updating the docs is already a core
requirement for patches.
(On reflection, maybe reverse it - put a code comment in event_trigger.h
reminding people to also update the docs? But again, that's seems like
something obvious anyway for someone making that change.)
Cheers,
Greg
Commits
-
doc: Add better description for rewrite functions in event triggers
- 93a596c73517 13.17 landed
- bca802600c7f 14.14 landed
- 14440d3b07af 15.9 landed
- a1b859c6893a 16.5 landed
- 709ce29b1656 17.1 landed
- 4b7bba49e712 18.0 landed