Le module pg_visibility fournit la possibilité
  d'examiner la visibility map (VM) et les informations de visibilité au
  niveau bloc d'une table. Il fournit aussi des fonctions permettant de vérifier
  l'intégrité d'une visibility map et de forcer sa reconstruction.
 
  Trois bits différents sont utilisés pour enregistrer des informations sur la
  visibilité au niveau des blocs. L'octet totalement-visible (all-visible) de
  la visibility map indique que chaque ligne d'un bloc donné d'une relation
  est visible pour toute transaction courante et future. L'octet totalement-figé (all-
  frozen) de la visibility map indique que chaque ligne du bloc est figée,
  c'est-à-dire qu'aucun vacuum n'aura besoin de modifier le bloc tant qu'une
  ligne n'est pas insérée, mise à jour, supprimée ou verrouillée dans ce bloc.
  Le bit PD_ALL_VISIBLE dans l'en-tête de page a la même
  signification que l'octet totalement-visible de la visibility map, mais il
  est stocké au sein du bloc plutôt que dans une structure de données séparée.
  Ces deux bits seront normalement identiques, mais le bit de niveau de
  bloc peut parfois rester défini pendant que la visibility map est purgée
  lors de la récupération suite à un crash ; ou ils peuvent être
  différents suite à un changement survenant après que
  pg_visibility ait examiné la visibility map et avant
  qu'il ait examiné le bloc donné. Tout événement causant une corruption de
  données peut aussi un désaccord sur ces trois bits.
 
  Les fonctions qui affichent les informations concernant le bit
  PD_ALL_VISIBLE sont beaucoup plus coûteuses que
  celles qui consultent uniquement la visibility map. En effet, elles doivent
  lire les blocs de données des relations plutôt que de ne s'intéresser qu'à
  la visibility map (qui est bien plus petite). Les fonctions qui vérifient
  les blocs de données de la relation sont aussi très coûteuses.
 
pg_visibility_map(relation regclass, blkno bigint, all_visible
      OUT boolean, all_frozen OUT boolean) renvoie un enregistrement
     Renvoie tous les octets complètement visibles et complètement figés de la visibility map pour un bloc donné pour une relation donnée.
pg_visibility(relation regclass, blkno bigint, all_visible OUT
      boolean, all_frozen OUT boolean, pd_all_visible OUT boolean) returns setof record
      Renvoie tous les octets complètement visibles et complètement figés de
      la visibility map pour un bloc donné pour une relation donnée ainsi que
      l'octet PD_ALL_VISIBLE pour le bloc.
     
pg_visibility_map(relation regclass, blkno OUT bigint, all_visible OUT boolean, all_frozen OUT boolean) returns setof recordRenvoie tous les octets complètement visibles et complètement figés de la visibility map pour un bloc donné pour une relation donnée.
pg_visibility(relation regclass, blkno OUT bigint, all_visible OUT boolean, all_frozen OUT boolean, pd_all_visible OUT boolean) returns setof record
      Renvoie tous les octets complètement visibles et complètement figés de
      la visibility map pour un bloc donné pour une relation donnée, ainsi que
      l'octet PD_ALL_VISIBLE pour le bloc.
     
pg_visibility_map_summary(relation regclass, all_visible OUT
      bigint, all_frozen OUT bigint) returns setof recordRenvoie le nombre de pages complètement visibles ainsi que le nombre de pages complètement figées de la relation, en concordance avec la visibility map.
pg_check_frozen(relation regclass, t_ctid OUT tid) returns setof tidRenvoie le TID (identifiant de ligne) des lignes non gelées présentes dans les pages marquées complètement figés dans la visibility map. Si cette fonction renvoie un ensemble non vide de TID, la visibility map est corrompue.
pg_check_visible(relation regclass, t_ctid OUT tid) returns setof tidRenvoie les TID (identifiants de lignes) de tous les enregistrements qui ne sont pas all-visible enregistrés dans des pages marquées all-visible dans la visibility map. Si cette fonction renvoie un ensemble non vide, la visibility map est corrompue.
pg_truncate_visibility_map(relation regclass) returns void
      Tronque la visibility map de la relation indiquée. Cette fonction est
      utile si vous pensez que la visibility map de cette relation est
      corrompue et que vous souhaitez forcer sa reconstruction. Le premier
      VACUUM exécuté sur cette relation après l'exécution
      de cette fonction parcourera chaque bloc de la relation et reconstruiera
      la visibility map. (Tant que cela ne sera pas fait, les requêtes
      traiteront la visibility map comme ne contenant que des zéros.)
     
   Par défaut, ces fonctions ne sont exécutables que par des
   superutilisateurs et les rôles disposant des droits du rôle
   pg_stat_scan_tables, à l'exception de
   pg_truncate_visibility_map(relation regclass) qui ne
   peut être exécutée que par des superutilisateurs.
  
   Robert Haas <rhaas@postgresql.org>