<!--
Les sources pour ce sujet sont :

* https://git.postgresql.org/gitweb/?p=postgresql.git;a=commit;h=f21848de20130146bc8039504af40bd24add54cd

Discussion :

https://postgr.es/m/CAEEqfk5bm32G7sbhzHbES9WejD8O8DCEOaLkxoBP7HNWxjPpvg@mail.gmail.com

-->

<div class="slide-content">

  * Support du mot clé `REINDEX` sur les _event triggers_
  * `CREATE EVENT TRIGGER ... ON ddl_command_start WHEN TAG IN ('REINDEX')`
    + Grâce à cela, il est possible de connaître la liste complète des index 
      sur lesquels un `REINDEX` a travaillé. 

</div>

<div class="notes">

**Utilisation de triggers sur REINDEX**

Les _event triggers_ dans PostgreSQL peuvent désormais capturer les événements de 
`REINDEX`, permettant de suivre les opérations et d'agir en conséquence. Voici un 
exemple pratique de mise en place d'un trigger d'événement lors du démarrage d'un 
`REINDEX`.

Création d'une fonction qui sera exécutée au début de l'opération `REINDEX` pour 
afficher un message d'information :

```sql
postgres=# CREATE OR REPLACE FUNCTION reindex_start_func()
RETURNS event_trigger AS $$
BEGIN
  RAISE NOTICE 'START REINDEX: % %', tg_event, tg_tag;
END;
$$ LANGUAGE plpgsql;

CREATE FUNCTION
```

Création du trigger d'événement `trg_reindex_start` sur l'événement `ddl_command_start`, 
associé à la commande `REINDEX` :

```sql
postgres=# CREATE EVENT TRIGGER trg_reindex_start ON ddl_command_start
WHEN TAG IN ('REINDEX')
EXECUTE PROCEDURE reindex_start_func();

CREATE EVENT TRIGGER
```

Dès que la commande `REINDEX` est exécutée, PostgreSQL déclenche le trigger, et 
le message de notification s'affiche :

```sql
postgres=# REINDEX INDEX idx1_data1;

NOTICE: START REINDEX: ddl_command_start REINDEX
REINDEX
```

**Gestion des triggers d'événement sur REINDEX**

Les triggers sur l'événement `REINDEX` sont enregistrés dans le catalogue de PostgreSQL, 
et peuvent être désactivés ou modifiés selon les besoins.

Ces triggers permettent de suivre en temps réel l'activité des index dans la base 
de données, offrant des outils supplémentaires pour la supervision et la gestion des 
performances.

</div>
