| Précédent | Niveau supérieur | Suivant |
| 9.26. Fonctions et opérateurs d'information sur le système | Sommaire | 9.28. Fonctions trigger |
Les fonctions décrites dans cette section sont utilisées pour contrôler et superviser une installation PostgreSQL.
Tableau 9.85 liste les fonctions disponibles pour requêter et modifier les paramètres de configuration.
Tableau 9.85. Fonctions de configuration
Fonction Description Exemple(s) |
|---|
Renvoie la valeur actuelle du paramètre
|
Configure le paramètre
|
Les fonctions listées dans Tableau 9.86
envoient des signaux de contrôle aux autres processus serveur.
L'utilisation de ces fonctions est restreinte aux super-utilisateurs par
défaut, mais un accès peut être fourni aux utilisateurs en utilisant la
commande GRANT, avec quelques exceptions notables.
Chacune de ces fonctions renvoient true si le signal
a bien été envoyé et false si l'envoi du signal a échoué.
Tableau 9.86. Fonctions d'envoi de signaux
Fonction Description |
|---|
Annule la requête en cours de la session du processus serveur dont
l'identifiant de processus a été donné. Ceci est aussi autorisé si le
rôle appelant est un membre de |
Demande le traçage des contextes mémoire du processus
dont l'identifiant est spécifié. Ces contextes mémoire seront tracés
au niveau |
Cause le rechargement des fichiers de configurations par tous les
processus du serveur PostgreSQL. (Ceci se
fait en envoyant un signal SIGHUP au
processus postmaster qui, à son tour, envoie un signal
SIGHUP à chacun de ses processus fils.)
Vous pouvez utiliser les vues
|
Signale au collecteur de traces qu'il doit changer de fichier de trace immédiatement. Ceci fonctionne seulement quand le collecteur de trace natif est en cours d'exécution. |
Termine la session pour le processus serveur dont l'identifiant de
processus a été donné. Ceci est aussi autorisé si le rôle appelant est
un membre du rôle dont le processus est en cours d'arrêt ou si le rôle
appelant est membre de
Si |
pg_cancel_backend et
pg_terminate_backend envoient des signaux
(respectivement SIGINT et
SIGTERM) aux processus serveurs identifiés par
leur PID. Le PID d'un processus serveur actif est disponible dans la
colonne pid de la vue
pg_stat_activity ou en listant les processus
postgres sur le serveur (en utilisant
ps sur Unix ou le Task
Manager sur Windows). Le rôle
d'un processus serveur actif est disponible dans la colonne
usename de la vue
pg_stat_activity.
pg_log_backend_memory_contexts peut être utilisée
pour tracer les contextes mémoires de processus en arrière-plan. Par exemple :
postgres=# SELECT pg_log_backend_memory_contexts(pg_backend_pid()); pg_log_backend_memory_contexts -------------------------------- t (1 row)
Un message pour chaque contexte mémoire sera tracé. Par exemple :
LOG: logging memory contexts of PID 10377 STATEMENT: SELECT pg_log_backend_memory_contexts(pg_backend_pid()); LOG: level: 0; TopMemoryContext: 80800 total in 6 blocks; 14432 free (5 chunks); 66368 used LOG: level: 1; pgstat TabStatusArray lookup hash table: 8192 total in 1 blocks; 1408 free (0 chunks); 6784 used LOG: level: 1; TopTransactionContext: 8192 total in 1 blocks; 7720 free (1 chunks); 472 used LOG: level: 1; RowDescriptionContext: 8192 total in 1 blocks; 6880 free (0 chunks); 1312 used LOG: level: 1; MessageContext: 16384 total in 2 blocks; 5152 free (0 chunks); 11232 used LOG: level: 1; Operator class cache: 8192 total in 1 blocks; 512 free (0 chunks); 7680 used LOG: level: 1; smgr relation table: 16384 total in 2 blocks; 4544 free (3 chunks); 11840 used LOG: level: 1; TransactionAbortContext: 32768 total in 1 blocks; 32504 free (0 chunks); 264 used ... LOG: level: 1; ErrorContext: 8192 total in 1 blocks; 7928 free (3 chunks); 264 used LOG: Grand total: 1651920 bytes in 201 blocks; 622360 free (88 chunks); 1029560 used
S'il y a plus de 100 contextes fils sous le même parent, les 100 premiers contextes fils sont tracés, le reste des contextes étant résumé. Notez que des appels fréquents à cette fonction peut produire une surchage significative, parce qu'elle génère un grand nombre de messages dans les traces.
Les fonctions listées dans Tableau 9.87
aident à la réalisation de sauvegardes en ligne. Ces fonctions ne peuvent
pas être exécutées lors de la restauration (sauf pour
pg_start_backup en mode non exclusif,
pg_stop_backup en mode non exclusif,
pg_is_in_backup,
pg_backup_start_time et
pg_wal_lsn_diff).
Pour les détails sur l'utilisation correcte de ces fonctions, voir Section 26.3.
Tableau 9.87. Fonctions de contrôle de la sauvegarde
Fonction Description |
|---|
Crée un enregistrement marqueur nommé dans le journal de transactions. Ce marqueur peut ensuite être utilisé comme cible de restauration et renvoie l'emplacement correspondant dans le journal de transactions. Le nom donné peut être utilisé avec recovery_target_name pour indiquer le point final de restauration. Évitez de créer plusieurs points de restauration de même nom car la restauration s'arrêtera au premier marqueur rencontré dont le nom correspond à la cible de restauration. Cette fonction est par défaut restreinte aux super-utilisateurs mais les autres utilisateurs peuvent se voir donner le droit EXECUTE pour exécuter cette fonction. |
Renvoie l'emplacement actuel de vidage du journal de transaction (voir les notes ci-dessous). |
Renvoie l'emplacement actuel d'insertion du journal de transaction (voir les notes ci-dessous). |
Renvoie l'emplacement actuel d'écriture du journal de transaction (voir les notes ci-dessous). |
Prépare le serveur à commencer une sauvegarde en ligne. Le seul
paramètre requi est un label arbitraire défini par l'utilisateur.
(Typiquement, ce serait nom sous lequel le fichier de sauvegarde sera
stocké.) Si le deuxième paramètre optionnel est donné à
Lors d'une sauvegarde exclusive, cette fonction écrit le fichier label
( Cette fonction est par défaut restreinte aux super-utilisateurs mais les autres utilisateurs peuvent se voir donner le droit EXECUTE pour exécuter cette fonction. |
Termine la réalisation d'une sauvegarde en ligne exclusive ou non. Le
paramètre
Il existe un deuxième paramètre optionnel de type
Lors d'une exécution sur un serveur primaire, cette option crée aussi
un fichier d'historique de sauvegarde dans la zone d'archivage des
journaux de transactions. Le fichier d'historique inclut un label
donné par
Le résultat de la fonction est un simple enregistrement. La colonne
Cette fonction est par défaut restreinte aux super-utilisateurs mais les autres utilisateurs peuvent se voir donner le droit EXECUTE pour exécuter cette fonction. |
Termine la réalisation d'une sauvegarde en ligne exclusive. Cette
version simplifiée est équivalente à Cette fonction est par défaut restreinte aux super-utilisateurs mais les autres utilisateurs peuvent se voir donner le droit EXECUTE pour exécuter cette fonction. |
Renvoie true si une sauvegarde en ligne exclusive est en cours. |
Renvoie l'heure de début de la sauvegarde en ligne exclusive si une
sauvegarde est en cours. Sinon, renvoie |
Force le serveur à utiliser un nouveau journal de transactions, ce qui
permet au journal actuel d'être archivé (en supposant que vous
utilisez l'archivage continu). Le résultat est l'emplacement de fin du
journal plus 1 dans le journal tout juste terminé. S'il n'y a pas eu
d'activité d'écriture depuis le dernier changement de journal,
Cette fonction est par défaut restreinte aux super-utilisateurs mais les autres utilisateurs peuvent se voir donner le droit EXECUTE pour exécuter cette fonction. |
Convertit un emplacement d'un journal de transaction par le nom du fichier du journal de transaction détenant cet emplacement. |
Convertit un emplacement d'un journal de transaction par le nom du fichier du journal de transaction détenant cet emplacement et le décalage en octets pour aller sur cet emplacement. |
Calcule la différence en octets ( |
pg_current_wal_lsn affiche l'emplacement actuel
d'écriture dans le journal de transaction en cours, dans le même format
que celui utilisé par les fonctions ci-dessus. De même,
pg_current_wal_insert_lsn affiche l'emplacement
d'insertion actuel et pg_current_wal_flush_lsn
affiche l'emplacement de vidage actuel. L'emplacement d'insertion est la
fin « logiqie » du journal de transaction à n'importe quel
moment, alors que l'emplacement d'écriture est la fin de ce qui a été
réellement écrit à partir des caches internes du serveur, et l'emplacement
de vidage est le dernier emplacement connu pour avoir été réellement écrit
sur disque. L'emplacement d'écriture est la fin de ce qui doit être
examiné en dehors du serveur et est habituellement ce que vous voulez si
vous êtes intéressé par l'archivage des journaux partiellement complets.
Les emplacements d'insertion et de vidage sont rendus disponibles
principalement dans un but de débogage. Ce sont des opérations de lecture
seule et ne nécessite pas l'attribut super-utilisateur.
Vous pouvez utiliser pg_walfile_name_offset pour
extrait le nom du fichier et le décalage en octet du journal de
transaction correspondant à partir d'une valeur pg_lsn. Par
exemple :
postgres=# SELECT * FROM pg_walfile_name_offset(pg_stop_backup()); file_name | file_offset --------------------------+------------- 00000001000000000000000D | 4039624 (1 row)
De la même façon, pg_walfile_name extrait juste le
nom du fichier du journal de transactions. Quand l'emplacement donné est
exactement à la limite du fichier, ces deux fonctions renvoient le nom du
journal précédent. Ceci est généralement le comportement souhaité pour
gérer l'archivage car le fichier précédent est le dernier qui doit être
archivé.
Les fonctions listées dans Tableau 9.88 fournissent des informations sur le statut actuel d'un serveur secondaire. Ces fonctions peuvent être exécutées pendant une restauration et pendant une exécution normale.
Tableau 9.88. Fonctions d'information sur la restauration
Fonction Description |
|---|
Renvoie true si la restauration est toujours en cours. |
Renvoie le dernier emplacement des journaux de transactions, reçu et
synchronisé sur disque par la réplication en flux. Tant que la
réplication en flux est en cours, ceci augmentera de façon monotique.
Si la restauration s'est terminée, alors cela restera statique à
l'emplacement du dernier enregistrement reçu et synchronisé sur disque
lors de la restauration. Si la réplication en flux est désactivée ou
qu'elle n'a pas commencé, la fonction renvoie |
Renvoie le dernier emplacement des journaux de transactions, rejoué
lors de la restauration. Si la restauration est toujours en cours,
ceci augmentera de façon monotique. Si la restauration s'est terminée,
alors cela restera statique à l'emplacement du dernier enregistrement
appliqué lors de la restauration. Quand le serveur a été démarré
normalement sans restauration, la fonction renvoie
|
Renvoie l'horodatage de la dernière transaction rejouée pendant la
restauration. C'est le moment où l'enregistrement de validation ou
d'annulation a été généré sur le serveur promaire. Si aucune
transaction n'a été rejouée pendant la restauration, la fonction
renvoie |
Les fonctions listées dans Tableau 9.89 contrôlent la progression de la restauration. Ces fonctions peuvent seulement être exécutées lors d'une restauration.
Tableau 9.89. Fonctions de contrôle de la restauration
Fonction Description |
|---|
Renvoie true si la pause de la restauration est demandée. |
Renvoie l'état de la pause de restauration. Les valeurs retournées
sont |
Promeut un serveur secondaire au statut primaire. Avec
Cette fonction est par défaut restreinte aux super-utilisateurs mais les autres utilisateurs peuvent se voir donner le droit EXECUTE pour exécuter cette fonction. |
Demande la mise en pause de la restauration. Une demande ne signifie pas
que la restauration va effectivement s'arrêter. Si vous voulez vérifier
que la restauration s'est effectivement arrêtée, vous devez vérifier
l'état de la pause de restauration retournée par
Cette fonction est par défaut restreinte aux super-utilisateurs, mais les autres utilisateurs peuvent se voir donner le droit EXECUTE pour exécuter cette fonction. |
Relance la restauration si elle était en pause. Cette fonction est par défaut restreinte aux super-utilisateurs mais les autres utilisateurs peuvent se voir donner le droit EXECUTE pour exécuter cette fonction. |
pg_wal_replay_pause et
pg_wal_replay_resume ne peuvent pas être exécutés
quand une promotion est en cours. Si une promotion est déclenchée alors
que la restauration est en pause, l'état de pause se termine et la
promotion continue.
Si la réplication en flux est désactivé, l'état de pause peut continuer indéfiniment sans problème. Si la réplication en flux est en cours, alors les enregistrements des journaux de transactions continuent à être rçus, ce qui finira par remplir l'espace disque disponible, suivant la durée de la pause, le taux de génération des journaux de transactions et l'espace disque disponible.
PostgreSQL permet aux sessions des bases de
données de synchroniser leur image de base. Une image de base (ou
snapshot) détermine les données visibles pour la
transaction utilisant l'image. Les images synchronisées sont nécessaires
quand deux sessions ou plus ont besoin de voir un contenu identique de la
base de données. Si deux sessions démarrent leur transaction
indépendamment, il existe toujours une possibilité qu'une autre
transaction valid entre l'exécution des deux commandes START
TRANSACTION, de telle façon qu'une session voit l'effet de cette
transaction alors que l'autre ne la voit pas.
Pour résoudre ce problème, PostgreSQL autorise une transaction à exporter l'image qu'elle utilise. Tant que la transaction exportée reste ouverte, les autres transactions peuvent importer son image et, de ce fait, garantir qu'elles partagent exactement la même vue de la base que la première transaction. Mais notez que tout changement effectué par une de ces transactions reste invisible aux autres transactions, comme d'habitude pour les modifications réalisées par des transactions non validées. Donc les transactions sont synchronisées suivant les données pré-existantes, mais agissent normalement pour les modifications qu'elles réalisent.
Les images sont exportées avec la fonction
pg_export_snapshot, affichée dans Tableau 9.90, et importées avec la
commande SET TRANSACTION.
Tableau 9.90. Fonctions de synchronisation d'image
Fonction Description |
|---|
Sauvegarde l'image actuelle de la transaction et renvoie une donnée de
type
Une transaction peut exporter plus d'une image, si nécessaire. Notez
que faire cela n'est utile que pour les transactions en niveau
|
Les fonctions listées dans Tableau 9.91
sont pour le contrôle et l'interaction avec les fonctionnalités de
réplication. Voir Section 27.2.5, Section 27.2.6 et Chapitre 50 pour des informations sur les
fonctionnalités sous-jacentes. L'utilisation de fonctions pour l'origine
de réplication est seulement autorisée aux super-utilisateurs par défaut,
mais peut être autorisée aux autres utilisateurs en utilisant la commande
GRANT. L'utilisation des fonctions pour les slots de
réplication est restreinte aux super-utilisateurs et aux utilisateurs ayant
l'attribut REPLICATION.
La plupart de ces fonctions ont des commandes équivalentes dans le protocole de réplication ; voir Section 53.4.
Les fonctions décrites dans Section 9.27.3, Section 9.27.4 et Section 9.27.5 sont aussi adéquates pour la réplication.
Tableau 9.91. Fonctions de gestion de la réplication
Fonction Description |
|---|
Crée un nouveau slot de réplication physique nommé
|
Supprime le slot de réplication physique ou logique nommé
|
Crée un nouveau slot de réplication logique (décodage) nommé
|
Copie un slot de réplication physique existant, nommé
|
Copie un slot existant de réplication logique nommé named
|
Renvoie les changements dans le slot |
Se comporte comme la fonction
|
Se comporte comme la fonction
|
Se comporte comme la fonction
|
Avance la position confirmée actuelle pour le slot de réplication
nommé |
Crée une origine de réplication avec le nom externe donné, et renvoie l'identifiant interne qui lui a été affecté. |
Supprime une origine de réplication précédemment créée, incluant toute progression de rejeu associée. |
Recherche une origine de réplication par son nom et renvoie son
identifiant interne. Si cette origine de réplication n'existe pas,
|
Marque la session en cours comme rejouant à partir de l'origine
donnée, en autorisant le traçage de la progression du rejeu. Peut
seulement être utilisée si aucune origine n'est actuellement
sélectionnée. Utilisez
|
Annule les effets de
|
Renvoie true si une origine de réplication a été sélectionnée dans la session en cours. |
Renvoie l'emplacement de rejeu pour l'origine de réplication
sélectionnée dans la session en cours. Le paramètre
|
Marque la transaction en cours comme rejouant une transaction qui a
été validée au LSN et à l'horodatage donnés. Peut
être appelé quand une origine de réplication a été sélectionnée en
utilisant |
Annule les effets de
|
Configure la progression de la réplication pour le nœud donné à l'emplacement donné. Ceci est principalement utile pour configurer l'emplacement initial ou pour configurer un nouvel emplacement après des changements de configuration ou similaires. Faites attention qu'une mauvaise utilisation de cette fonction peut amener à des données répliquées de façon incohérente. |
Renvoie l'emplacement de rejeu pour l'origine de réplication donnée.
Le paramètre |
Émet un message de décodage logique. Cela peut être utilisé pour
passer des messages génériques aux plugins de décodage logique via les
journaux de transactions. Le paramètre
|
Les fonctions listées dans Tableau 9.92
calculent l'utilisation de l'espace disque des objets de la base, ou
assistent dans la présentation ou la compréhension de ces résultats.
Les résultats du type bigint correspondent à la
taille mesurée en octets. NULL est renvoyé
si un OID qui ne représente pas un objet existant est fourni à une de ces
fonctions.
Tableau 9.92. Fonctions de taille des objets
Fonction Description |
|---|
Affiche le nombre d'octets utilisés pour enregistrer une valeur individuelle. Si elle est appliquée directement à une valeur d'une colonne de la table, cela représente la compression effectuée. |
Montre l'algorithme de compression utilisé pour compresser une
valeur individuelle. Retourne |
Calcule l'espace disque total utilisé par la base dont le nom ou l'OID
est indiqué. Pour utiliser cette fonction, vous devez avoir le droit
|
Calcule l'espace disque total utilisé par les index attachés à une table spécifique. |
Calcule l'espace disque utilisé par un « élément » de la
relation indiquée. (Notez que, dans la plupart des cas, il est
préférable d'utiliser les fonctions
|
Convertit la taille indiquée dans un format lisible par un humain
(tel qu'il est donné par |
Convertit une taille indiquée en octets dans un format plus facilement lisible par un humain avec des unités (bytes, kB, MB, GB ou TB suivant le cas). Notez que les unités sont des puissances de 2, plutôt que des puissances de 10, donc 1kB vaut 1024 octets, 1MB vaut 10242 = 1048576 octets, et ainsi de suite. |
Calcule l'espace disque utilisé par la table indiquée, en excluant les index (mais en incluant la table TOAST si elle existe, la carte des espaces libres et la carte de visibilité). |
Calcule l'espace disque total utilisé dans le tablespace indiqué par
son nom ou son OID. Pour utiliser cette fonction, vous devez avoir le
droit |
Calcule l'espace disque utilisé par la table indiquée, en incluant
tous les index et les données TOAST. Le résultat
est équivalent à |
Les fonctions ci-dessus qui opèrent sur les tables et sur les index acceptent
un argument regclass, qui est simplement l'OID de la table ou
de l'index dans le catalogue système pg_class.
Néanmoins, vous n'avez pas besoin de rechercher manuellement l'OID comme le
convertisseur en entrée du type de données regclass fera ce
travail pour vous. Voir Section 8.19 pour les détails.
Les fonctions listées dans Tableau 9.93 assistent à l'identification des fichiers spécifiques associés aux objets de la base.
Tableau 9.93. Fonctions d'emplacement des objets de la base
Fonction Description |
|---|
Renvoie le numéro « filenode » actuellement affecté à la
relation indiquée. Ce numéro est le composant de base du nom du
fichier utilisé pour la relation (voir Section 70.1 pour plus d'informations). Pour la
plupart des relations, le résultat est identique à
|
Renvoie le chemin complet avec le nom du fichier pour cette relation
(chemin relatif au répertoire principal des données de l'instance,
|
Renvoie l'OID d'une relation d'après l'OID de son tablespace et son
filenode. Ceci est la correspondance inverse de
|
Tableau 9.94 liste les fonctions utilisées pour gérer les collations.
Tableau 9.94. Fonctions de gestion des collations
Fonction Description |
|---|
Renvoie la version actuelle de l'objet collation tel qu'il est installé
sur le système d'exploitation. S'il est différent de la valeur dans
|
Ajoute des collations dans le catalogue système
|
Tableau 9.95 liste les fonctions qui fournissent des informations sur la structure des tables partitionnées.
Tableau 9.95. Fonctions d'information sur le partitionnement
Fonction Description |
|---|
Liste les tables ou index dans l'arbre de partitionnement de la table ou de l'index partitionné indiqué, avec une ligne pour chaque partition. Les informations fournies incluent l'OID de la partition, l'OID de son parent immédiat, une valeur booléenne indiquant si la partition est une feuille et un entier indiquant son niveau dans la hiérarchie. Le niveau 0 correspond à la table ou l'index en entrée, 1 pour ses partitions immédiates, 2, pour leurs partitions, et ainsi de suite. Ne renvoie aucune ligne si la relation n'existe pas ou s'il ne s'agit ni d'une table partitionnée ni d'une partition. |
Liste les relations ancêtres d'une partition donnée, y compris cette relation. Ne renvoie aucune ligne si la relation n'existe pas ou s'il ne s'agit ni d'une table partitionnée ni d'une partition. |
Renvoie le parent de plus haut niveau de l'arbre de partition à
laquelle appartient la relation donnée. Renvoie
|
Par exemple, pour vérifier la taille totale de la donnée contenue dans une
table partitionnée measurement, il est possible
d'utiliser la requête suivante :
SELECT pg_size_pretty(sum(pg_relation_size(relid))) AS total_size
FROM pg_partition_tree('measurement');
Tableau 9.96 liste les fonctions disponibles pour les tâches de maintenance d'index. (Notez que ces tâches de maintenance sont normalement réalisés par l'autovacuum ; l'utilisation de ces fonctions est seulement requise dans des cas particuliers.) Ces fonctions ne peuvent pas être exécutées lors de la restauration. L'utilisation de ces fonctions est restreinte aux super-utilisateurs et au propriétaire de l'index donné.
Tableau 9.96. Fonctions de maintenance des index
Fonction Description |
|---|
Parcourt l'index BRIN spécifié pour trouver les intervalles de blocs da la table qui ne sont pas actuellement résumés par l'index ; pour chaque intervalle, il crée un nouvel enregistrement de résumé dans l'index en parcourant ces blocs dans la table. Renvoie le nombre de nouveaux résumés d'intervalle de blocs insérés dans l'index. |
Résume l'intervalle de blocs couvrant le bloc donné, s'il n'est pas
déjà résumé. Cela ressemble à
|
Supprime l'enregistement de l'index BRIN qui résume l'intervalle de blocs couvrant le bloc de la table donnée, s'il y en a un. |
Supprime la liste « pending » de l'index GIN spécifié en
déplaçant les enregistrements à l'intérieur, en masse, vers la
structure principale de données GIN. Renvoie le nombre de blocs
supprimés dans la liste d'attente. Si l'argument est un index GIN
construit avec l'option |
Les fonctions listées dans Tableau 9.97
fournissent des accès natifs aux fichiers du serveur gérant le serveur.
Seuls les fichiers à l'intérieur du répertoire d'instance de la base et
ceux ciblés par le paramètre log_directory peuvent être
accédés, que l'utilisateur est un super-utilisateur ou s'est vu donné le
rôle pg_read_server_files. Utilisez un chemin relatif
pour les fichiers du répertoire principal des données, et un chemin
correspondant à la configuration du paramètre
log_directory pour les fichiers de trace.
Notez que donner aux utilisateurs le droit EXECUTE sur
pg_read_file(), ou les fonctions relatives, les
autorise à lire tout fichier du serveur que le processus serveur peut
lire. Ces fonctions contournent toutes les vérifications de droit d'accès
à la base. Ceci signifie que, pour un exemple, un utilisateur avec un tel
accès est capable de lire le contenu de la table
pg_authid où l'information d'authentification est
stockée dans les données de la table de la base. De ce fait, donner
l'accès à ces fonctions devrait être considéré avec attention.
Certaines de ces fonctions prennent un paramètre
missing_ok qui modifie le comportement quand le
fichier ou le répertoire n'existe pas. Si true, la
fonction renvoie NULL ou un ensemble vide de résultats,
comme approprié. Si false, une erreur est levée. La
valeur par défaut est false.
Tableau 9.97. Fonctions génériques d'accès aux fichiers
Fonction Description |
|---|
Renvoie le nom de tous les fichiers (et répertoires et autres fichiers
spéciaux) dans le répertoire donné. Le paramètre
Cette fonction est restreinte par défaut aux super-utilisateurs, mais d'autres utilisateurs peuvent se voir donner le droit EXECUTE pour cette fonction. |
Renvoie le nom, la taille et l'horodatage de la dernière modification de chaque fichier ordinaire dans le répertoire des traces du serveur. Les fichiers dont le nom commence avec un point, les répertoires et les autres fichiers spéciaux sont exclus.
Cette fonction est restreinte par défaut aux super-utilisateurs et aux
utilisateurs membres du rôle |
Renvoie le nom, la taille et l'horodatage de la dernière modification de chaque fichier ordinaire dans le répertoire des journaux de transactions. Les fichiers dont le nom commence avec un point, les répertoires et les autres fichiers spéciaux sont exclus.
Cette fonction est restreinte par défaut aux super-utilisateurs et aux
utilisateurs membres du rôle |
Renvoie le nom, la taille et l'horodatage de la dernière modification de chaque fichier ordinaire dans le répertoire des statuts d'archivage. Les fichiers dont le nom commence avec un point, les répertoires et les autres fichiers spéciaux sont exclus.
Cette fonction est restreinte par défaut aux super-utilisateurs et aux
utilisateurs membres du rôle |
Renvoie le nom, la taille et l'horodatage de la dernière modification
de chaque fichier ordinaire dans le répertoire des fichiers
temporaires pour le
Cette fonction est restreinte par défaut aux super-utilisateurs et aux
utilisateurs membres du rôle |
Renvoie tout ou partie d'un fichier texte, en commençant à l'octet
indiqué par Cette fonction est restreinte par défaut aux super-utilisateurs, mais d'autres utilisateurs peuvent se voir donner le droit EXECUTE pour cette fonction. |
Renvoie tout ou partie d'un fichier. Cette fonction est identique à
Cette fonction est restreinte par défaut aux super-utilisateurs, mais d'autres utilisateurs peuvent se voir donner le droit EXECUTE pour cette fonction.
En combinant avec la fonction
SELECT convert_from(pg_read_binary_file('file_in_utf8.txt'), 'UTF8');
|
Renvoie un enregistement contenant la taille du fichier, son horodatage de dernier accès, celui de dernière modification, celui de dernier changement de statut (plateformes Unix uniquement), l'horodatage de création (Windows uniquement), et un drapeau indiquant si c'est un répertoire. Cette fonction est restreinte par défaut aux super-utilisateurs, mais d'autres utilisateurs peuvent se voir donner le droit EXECUTE pour cette fonction. |
Les fonctions listées dans Tableau 9.98 gèrent les verrous consultatifs. Pour les détails sur une utilisation correcte de ces fonctions, voir Section 13.3.5.
Toutes ces fonctions ont pour but d'être utilisées pour verrouiller des
ressources définies par l'application, qui peuvent être identifiées soit
par une valeur de clé sur 64 bits, soit par deux valeurs de clés sur 32
bits (notez que ces deux espaces de clés ne se surchargent pas). Si une
autre session détient déjà un verrou conflictuel sur le même identifiant
de ressource, les fonctions devront soit attendre que la ressource
devienne disponible, soit renvoyer un résultat false,
comme approprié pour la fonction. Les verrous peuvent être soit partagés
soit exclusifs ; un verrou partagé n'entre pas en conflit avec
d'autres verrous partagés sur la même ressource, mais entre en conflit
avec les verrous exclusifs. Les verrous peuvent se prendre au niveau de la
session (pour qu'ils soient détenus jusqu'à leur suppression ou jusqu'à la
fin de la session) ou au niveau de la transaction (pour qu'ils soient
détenus jusqu'à la fin de la transaction ; il n'existe pas de moyen
pour les supprimer manuellement). Les demandes multiples de verrou au
niveau session s'empilent, pour que, si le même identifiant de ressource
est verrouillé trois fois, alors il doit y avoir trois demandes de
déverrouillage pour relâcher la ressource avant que la session se termine.
Tableau 9.98. Fonctions pour les verrous informatifs
Fonction Description |
|---|
Obtient un verrou informatif exclusif niveau session, en attendant si nécessaire. |
Obtient un verrou informatif partagé niveau session, en attendant si nécessaire. |
Relâche un verrou informatif exclusif niveau session précédemment
acquis. Renvoie |
Relâche tous les verrous informatifs niveau session détenus par la session en cours. (Cette fonction est appelée implicitement à la fin d'une session, même si le client s'est mal déconnecté.) |
Relâche un verrou informatif partagé niveau session précédemment
acquis. Renvoie |
Obtient un verrou informatif exclusif niveau transaction, en attendant si nécessaire. |
Obtient un verrou informatif partagé niveau transaction, en attendant si nécessaire. |
Obtient un verrou informatif exclusif niveau session si disponible.
Cela va soit obtenir immédiatement le verrou et renvoyer
|
Obtient un verrou informatif partagé niveau session si disponible.
Cela va soit obtenir immédiatement le verrou et renvoyer
|
Obtient un verrou informatif exclusif niveau transaction si disponible.
Cela va soit obtenir immédiatement le verrou et renvoyer
|
Obtient un verrou informatif partagé niveau transaction si disponible.
Cela va soit obtenir immédiatement le verrou et renvoyer
|