Re: On login trigger: take three

Greg Nancarrow <gregn4422@gmail.com>

From: Greg Nancarrow <gregn4422@gmail.com>
To: Daniel Gustafsson <daniel@yesql.se>
Cc: Ivan Panchenko <wao@mail.ru>, Teodor Sigaev <teodor@sigaev.ru>, Ibrar Ahmed <ibrar.ahmad@gmail.com>, Konstantin Knizhnik <k.knizhnik@postgrespro.ru>, vignesh C <vignesh21@gmail.com>, Pavel Stehule <pavel.stehule@gmail.com>, PostgreSQL Hackers <pgsql-hackers@postgresql.org>, Amit Kapila <amit.kapila16@gmail.com>, Masahiko Sawada <sawada.mshk@gmail.com>
Date: 2021-11-11T06:37:46Z
Lists: pgsql-hackers

Attachments

On Wed, Nov 10, 2021 at 8:11 PM Daniel Gustafsson <daniel@yesql.se> wrote:
>
> > If there are no objections, I plan to reinstate the previous v19 patch
> > (as v21), perhaps with a few minor improvements and cleanups (e.g. SQL
> > capitalization) in the tests, as hinted at in the v20 patch, but no
> > new functionality.
>
> No objections from me. Small nitpicks from the v19 patch:
>
> +        This flag is used internally by Postgres and should not be manually changed by DBA or application.
> This should be <productname>PostgreSQL</productname>.
>
> +        * There can be a race condition: a login event trigger may have
> ..
> +       /* Fire any defined login triggers, if appropriate */
> The patch say "login trigger" in most places, and "login event trigger" in a
> few places.  We should settle for a single nomenclature, and I think "login
> event trigger" is the best option.
>

I've attached an updated patch, that essentially reinstates the v19
patch, but with a few improvements such as:
- Updates to address nitpicks (Daniel Gustafsson)
- dathaslogintriggers -> dathasloginevttriggers flag rename (too
long?) and remove its restoration in pg_dump output, since it's not
needed (as in v20 patch)
- Some tidying of the updates to the event_trigger tests and
capitalization of the test SQL

Regards,
Greg Nancarrow
Fujitsu Australia

Commits

  1. Fix some typos in event trigger docs

  2. Use heap_inplace_update() to unset pg_database.dathasloginevt

  3. Remove the flaky check in event_trigger_login regression test

  4. Fix instable 006_login_trigger.pl test

  5. Add support event triggers on authenticated login

  6. Add GUC for temporarily disabling event triggers

  7. Fix typo in reference to __FreeBSD__.

  8. Restore robustness of TAP tests that wait for postmaster restart.

  9. Restore the portal-level snapshot after procedure COMMIT/ROLLBACK.