On Sun, Apr 4, 2021, at 09:16, Fabien COELHO wrote:
> If other cases are indeed pointers. For pgbench, all direct "if (xxx &&" 
> cases are simple booleans or integers, pointers seem to have "!= NULL". 
> While looking quickly at the grep output, ISTM that most obvious pointers 
> have "!= NULL" and other cases often look like booleans:
> 
>    catalog/pg_operator.c:          if (isDelete && t->oprcom == baseId)
>    catalog/toasting.c:     if (check && lockmode != AccessExclusiveLock)
>    commands/async.c:       if (amRegisteredListener && listenChannels == NIL)
>    commands/explain.c:     if (es->analyze && es->timing)
>    …
> 
> I'm sure there are exceptions, but ISTM that the local style is "!= NULL".

Many thanks for explaining.

> 
> >> I'm wondering whether it should be possible to designate (1) a file the
> >> content of which would be shown, or (2) a command, the output of which
> >> would be shown [ok, there might be security implications on this one].
> >
> > Can't we just do that via plpgsql and EXECUTE somehow?
> 
> Hmmm.
> 
> Should we want to execute forcibly some PL/pgSQL on any new connection? 

Oh, of course, you want the command to be execute for each new connection.

My idea was to use PL/pgSQL to execute only when you wanted to update the 
stored motd value,
but of course, if you want a new value from the command for each new connection,
then that doesn't work (and it doesn't work anyway due to not being able to 
execute ALTER SYSTEM from functions).

> Not sure this is really desirable. I was thinking of something more 
> trivial, like the "motd" directeve could designate a file instead of the 
> message itself.
> 
> There could be a hook system to execute some user code on new connections 
> and other events. It could be a new kind of event trigger, eg with 
> connection_start, connection_end… That could be nice for other purposes,
> i.e. auditing. Now, event triggers are not global, they work inside a 
> database, which would suggest that if extended a new connection event 
> would be fired per database connection, not just once per connection. Not 
> sure it would be a bad thing.

Such a hook sounds like a good idea.
If we would have such a hook, then another possibility would be to implement 
motd as an extension, right?

/Joel

Reply via email to