Fonctions de adminpack
-
-
- NomType en retourDescription
-
-
+
+
+
+
+ Fonction
+
+
+ Description
+
+
+
-
-
- pg_catalog.pg_file_write(filename text, data text, append boolean)
- bigint
-
- Écrit dans un fichier
-
-
-
- pg_catalog.pg_file_rename(oldname text, newname text , archivename text)
- boolean
-
- Renomme un fichier
-
-
-
- pg_catalog.pg_file_unlink(filename text)
- boolean
-
- Supprime un fichier
-
-
-
- pg_catalog.pg_logdir_ls()
- setof record
-
- Liste les fichiers de trace du répertoire précisé par log_directory
-
-
-
+
+
+
+ pg_catalog.pg_file_write ( filenametext, datatext, appendboolean )
+ bigint
+
+
+ Écrit dans un fichier
+
+
+
+
+
+ pg_catalog.pg_file_sync ( filenametext )
+ void
+
+
+ Vide un fichier ou un répertoire sur disque.
+
+
+
+
+
+ pg_catalog.pg_file_rename ( oldnametext, newnametext, archivenametext )
+ boolean
+
+
+ Renomme un fichier
+
+
+
+
+
+ pg_catalog.pg_file_unlink ( filenametext )
+ boolean
+
+
+ Supprime un fichier.
+
+
+
+
+
+ pg_catalog.pg_logdir_ls ()
+ setof record
+
+
+ Liste les fichiers de trace du répertoire précisé par log_directory.
+
+
+
@@ -80,6 +107,18 @@
seront ajoutées. Renvoit le nombre d'octets écrits.
+
+ pg_file_sync
+
+
+ pg_file_sync synchronise sur disque le fichier ou le
+ répertoire indiqué d'après son filename. Une erreur
+ est renvoyée en cas d'échec (par exemple si le fichier indiqué n'est pas
+ présent). Notez que n'a pas d'effet
+ sur cette fonction, et de ce fait, une erreur de niveau PANIC ne sera pas
+ renvoyée même en cas d'échec pour synchroniser les fichiers de la base.
+
+
pg_file_rename
diff --git a/postgresql/amcheck.xml b/postgresql/amcheck.xml
index e415bc66b..a03800471 100644
--- a/postgresql/amcheck.xml
+++ b/postgresql/amcheck.xml
@@ -130,8 +130,7 @@ ORDER BY c.relpages DESC LIMIT 10;
B-Tree, respecte un certain nombre de propriétés invariantes. En option,
quand l'argument heapallindexed vaut
true, la fonction vérifie la présence de toutes les
- lignes dans la table, et la présence de tous les liens dans la structure
- de l'index. Quand l'argument optionel rootdescend
+ lignes dans la table. Quand l'argument optionel rootdescend
vaut true, la vérification recherche de nouveau les
lignes au niveau des feuilles en réalisant une nouvelle recherche à partir
de la racine pour chaque ligne. Les vérifications réalisables par
@@ -141,7 +140,8 @@ ORDER BY c.relpages DESC LIMIT 10;
plus minutieuse de bt_index_check :
contrairement à bt_index_check,
bt_index_parent_check vérifie également les
- propriétés invariantes qui englobent les relations parent/enfant.
+ propriétés invariantes qui englobent les relations parent/enfant, et la
+ présence de tous les liens dans la structure de l'index.
bt_index_parent_check
respecte la convention habituelle qui consiste à retourner une erreur si
une incohérence ou tout autre problème est détecté.
@@ -174,6 +174,27 @@ ORDER BY c.relpages DESC LIMIT 10;
+
+
+
+ bt_index_check and
+ bt_index_parent_check both output log
+ messages about the verification process at
+ DEBUG1 and DEBUG2 severity
+ levels. These messages provide detailed information about the
+ verification process that may be of interest to
+ PostgreSQL developers. Advanced users
+ may also find this information helpful, since it provides
+ additional context should verification actually detect an
+ inconsistency. Running:
+
+SET client_min_messages = DEBUG1;
+
+ in an interactive psql session before
+ running a verification query will display messages about the
+ progress of verification with a manageable level of detail.
+
+
diff --git a/postgresql/auto-explain.xml b/postgresql/auto-explain.xml
index d69e67749..707afee9a 100644
--- a/postgresql/auto-explain.xml
+++ b/postgresql/auto-explain.xml
@@ -113,6 +113,26 @@
+
+
+ auto_explain.log_wal (boolean)
+
+ auto_explain.log_wal configuration parameter
+
+
+
+
+ auto_explain.log_wal controls whether WAL
+ usage statistics are printed when an execution plan is logged; it's
+ equivalent to the WAL option of EXPLAIN.
+ This parameter has no effect
+ unless auto_explain.log_analyze is enabled.
+ This parameter is off by default.
+ Only superusers can change this setting.
+
+
+
+
auto_explain.log_timing (boolean)
diff --git a/postgresql/backup-manifest.xml b/postgresql/backup-manifest.xml
new file mode 100644
index 000000000..9f23a151c
--- /dev/null
+++ b/postgresql/backup-manifest.xml
@@ -0,0 +1,217 @@
+
+
+
+
+ Backup Manifest Format
+
+
+ Backup Manifest
+
+
+
+ The backup manifest generated by is
+ primarily intended to permit the backup to be verified using
+ . However, it is
+ also possible for other tools to read the backup manifest file and use
+ the information contained therein for their own purposes. To that end,
+ this chapter describes the format of the backup manifest file.
+
+
+
+ A backup manifest is a JSON document encoded as UTF-8. (Although in
+ general JSON documents are required to be Unicode, PostgreSQL permits
+ the json and jsonb data types to be used with any
+ supported server encoding. There is no similar exception for backup
+ manifests.) The JSON document is always an object; the keys that are present
+ in this object are described in the next section.
+
+
+
+ Backup Manifest Toplevel Object
+
+
+ The backup manifest JSON document contains the following keys.
+
+
+
+
+ PostgreSQL-Backup-Manifest-Version
+
+
+ The associated value is always the integer 1.
+
+
+
+
+
+ Files
+
+
+ The associated value is always a list of objects, each describing one
+ file that is present in the backup. No entries are present in this
+ list for the WAL files that are needed in order to use the backup,
+ or for the backup manifest itself. The structure of each object in the
+ list is described in .
+
+
+
+
+
+ WAL-Ranges
+
+
+ The associated value is always a list of objects, each describing a
+ range of WAL records that must be readable from a particular timeline
+ in order to make use of the backup. The structure of these objects is
+ further described in .
+
+
+
+
+
+ Manifest-Checksum
+
+
+ This key is always present on the last line of the backup manifest file.
+ The associated value is a SHA256 checksum of all the preceding lines.
+ We use a fixed checksum method here to make it possible for clients
+ to do incremental parsing of the manifest. While a SHA256 checksum
+ is significantly more expensive than a CRC32C checksum, the manifest
+ should normally be small enough that the extra computation won't matter
+ very much.
+
+
+
+
+
+
+
+ Backup Manifest File Object
+
+
+ The object which describes a single file contains either a
+ Path key or an Encoded-Path key.
+ Normally, the Path key will be present. The
+ associated string value is the path of the file relative to the root
+ of the backup directory. Files located in a user-defined tablespace
+ will have paths whose first two components are pg_tblspc and the OID
+ of the tablespace. If the path is not a string that is legal in UTF-8,
+ or if the user requests that encoded paths be used for all files, then
+ the Encoded-Path key will be present instead. This
+ stores the same data, but it is encoded as a string of hexadecimal
+ digits. Each pair of hexadecimal digits in the string represents a
+ single octet.
+
+
+
+ The following two keys are always present:
+
+
+
+
+ Size
+
+
+ The expected size of this file, as an integer.
+
+
+
+
+
+ Last-Modified
+
+
+ The last modification time of the file as reported by the server at
+ the time of the backup. Unlike the other fields stored in the backup,
+ this field is not used by .
+ It is included only for informational purposes.
+
+
+
+
+
+
+ If the backup was taken with file checksums enabled, the following
+ keys will be present:
+
+
+
+
+ Checksum-Algorithm
+
+
+ The checksum algorithm used to compute a checksum for this file.
+ Currently, this will be the same for every file in the backup
+ manifest, but this may change in future releases. At present, the
+ supported checksum algorithms are CRC32C,
+ SHA224,
+ SHA256,
+ SHA384, and
+ SHA512.
+
+
+
+
+
+ Checksum
+
+
+ The checksum computed for this file, stored as a series of
+ hexadecimal characters, two for each byte of the checksum.
+
+
+
+
+
+
+
+ Backup Manifest WAL Range Object
+
+
+ The object which describes a WAL range always has three keys:
+
+
+
+
+ Timeline
+
+
+ The timeline for this range of WAL records, as an integer.
+
+
+
+
+
+ Start-LSN
+
+
+ The LSN at which replay must begin on the indicated timeline in order to
+ make use of this backup. The LSN is stored in the format normally used
+ by PostgreSQL; that is, it is a string
+ consisting of two strings of hexadecimal characters, each with a length
+ of between 1 and 8, separated by a slash.
+
+
+
+
+
+ End-LSN
+
+
+ The earliest LSN at which replay on the indicated timeline may end when
+ making use of this backup. This is stored in the same format as
+ Start-LSN.
+
+
+
+
+
+
+ Ordinarily, there will be only a single WAL range. However, if a backup is
+ taken from a standby which switches timelines during the backup due to an
+ upstream promotion, it is possible for multiple ranges to be present, each
+ with a different timeline. There will never be multiple WAL ranges present
+ for the same timeline.
+
+
+
diff --git a/postgresql/biblio.xml b/postgresql/biblio.xml
index dd097bf0e..ff6ac30df 100644
--- a/postgresql/biblio.xml
+++ b/postgresql/biblio.xml
@@ -311,7 +311,7 @@ ssimkovi@ag.or.at
Eleventh International Conference on Data Engineering
- 6-10 mars 1995
+ 6–10 mars 1995
Taipeh, Taiwan
Cat. No.95CH35724
@@ -320,7 +320,7 @@ ssimkovi@ag.or.at
Los Alamitos, Californie
1995
- 420-7
+ 420–7
@@ -423,7 +423,7 @@ ssimkovi@ag.or.at
SIGMOD Record 18(4)Décembre 1989
- 4-11
+ 4–11
diff --git a/postgresql/bki.xml b/postgresql/bki.xml
index 83ea6f10d..6533d34b5 100644
--- a/postgresql/bki.xml
+++ b/postgresql/bki.xml
@@ -404,8 +404,8 @@
Pour trouver un OID disponible pour une nouvelle ligne préchargée, exécutez
le script src/include/catalog/unused_oids. Il affiche
l'intervalle inclusif d'OID inutilisés (par exemple, la ligne en sortie
- 45-900 signifie que les OID 45 jusqu'à 900 n'ont pas encore
- été alloués). Pour le moment, les OID 1-9999 sont réservés pour des
+ 45-900 signifie que les OID 45 jusqu'à 900 n'ont pas encore
+ été alloués). Pour le moment, les OID 1–9999 sont réservés pour des
allocations manuelles ; le script unused_oids regarde
simplement dans les en-têtes de catalogue et les fichiers
.dat pour voir lesquels n'apparaissent pas. Vous
diff --git a/postgresql/btree-gin.xml b/postgresql/btree-gin.xml
index dc4b00dd0..c1a592f2d 100644
--- a/postgresql/btree-gin.xml
+++ b/postgresql/btree-gin.xml
@@ -32,6 +32,12 @@
qui devront être combinés par une opération de bitmap ET.
+
+ This module is considered trusted, that is, it can be
+ installed by non-superusers who have CREATE privilege
+ on the current database.
+
+
Exemple d'utilisation
diff --git a/postgresql/btree-gist.xml b/postgresql/btree-gist.xml
index 30886e483..50f82b575 100644
--- a/postgresql/btree-gist.xml
+++ b/postgresql/btree-gist.xml
@@ -54,6 +54,12 @@
oid et money.
+
+ This module is considered trusted, that is, it can be
+ installed by non-superusers who have CREATE privilege
+ on the current database.
+
+
Exemple d'utilisation
diff --git a/postgresql/btree.xml b/postgresql/btree.xml
index 99170ec51..8837047f9 100644
--- a/postgresql/btree.xml
+++ b/postgresql/btree.xml
@@ -220,241 +220,557 @@
Comme montré dans , btree définit
- une fonction de support obligatoire et deux facultatives.
+ une fonction de support obligatoire et trois facultatives. Les quatre
+ méthodes définies par l'utilisateur sont :
-
- Pour chaque combinaison de types de données pour laquelle une famille
- d'opérateur btree fournit des opérateurs de comparaison, elle doit fournir une
- fonction de support de comparaison inscrite dans
- pg_amproc avec la fonction de support 1 et
- amproclefttype/amprocrighttype
- égaux aux types de données gauche et droit pour la comparaison (c'est-à-dire
- les même types de données que l'opérateur correspondant a inscrit dans
- pg_amop).
- La fonction de comparaison doit prendre en entrée deux valeurs non nulles
- A et B et retourner une
- valeur int32 qui est
- <0, 0,
- ou >0
- quand, respectivement A<
- B, A
- =B,
- ou A>
- B. Une valeur de retour NULL est également
- interdite : toutes les valeurs du type de données doivent être
- comparables. Voir
- src/backend/access/nbtree/nbtcompare.c pour plus
- d'exemples.
-
-
-
- Si les valeurs comparées sont d'un type avec collation, l'identifiant de
- collation approprié sera passé à la fonction de support de comparaison, en
- utilisant le mécanisme standard PG_GET_COLLATION().
-
+
+
+ order
+
+
+ Pour chaque combinaison de types de données pour laquelle une famille
+ d'opérateur btree fournit des opérateurs de comparaison, elle doit fournir une
+ fonction de support de comparaison inscrite dans
+ pg_amproc avec la fonction de support 1 et
+ amproclefttype/amprocrighttype
+ égaux aux types de données gauche et droit pour la comparaison (c'est-à-dire
+ les même types de données que l'opérateur correspondant a inscrit dans
+ pg_amop).
+ La fonction de comparaison doit prendre en entrée deux valeurs non nulles
+ A et B et retourner une
+ valeur int32 qui est
+ <0, 0,
+ ou >0
+ quand, respectivement A<
+ B, A
+ =B,
+ ou A>
+ B. Une valeur de retour NULL est également
+ interdite : toutes les valeurs du type de données doivent être
+ comparables. Voir
+ src/backend/access/nbtree/nbtcompare.c pour plus
+ d'exemples.
+
-
- De manière facultative, une famille d'opérateur btree peut fournir une ou
- plusieurs fonctions sort support, inscrites comme
- fonctions de support numéro 2. Ces fonctions permettent d'implémenter des
- comparaisons dans l'optique de tri de manière plus efficace qu'appeler
- naivement la fonction de support de comparaison. Les API impliquées pour
- cela sont définies dans src/include/utils/sortsupport.h.
-
+
+ Si les valeurs comparées sont d'un type avec collation, l'identifiant de
+ collation approprié sera passé à la fonction de support de comparaison, en
+ utilisant le mécanisme standard PG_GET_COLLATION().
+
+
+
-
- fonctions de support in_range
-
+
+ sortsupport
+
+
+ De manière facultative, une famille d'opérateur btree peut fournir une ou
+ plusieurs fonctions sort support, inscrites comme
+ fonctions de support numéro 2. Ces fonctions permettent d'implémenter des
+ comparaisons dans l'optique de tri de manière plus efficace qu'appeler
+ naivement la fonction de support de comparaison. Les API impliquées pour
+ cela sont définies dans src/include/utils/sortsupport.h.
+
+
+
-
- fonctions de support
- in_range
-
+
+ inrange
+
+
+ fonctions de support in_range
+
+
+ fonctions de support
+ in_range
+
-
- De manière facultative, une famille d'opérateur btree peut fournir une ou
- plusieurs fonctions de support in_range inscrites comme
- fonction de support numéro 3. Celles-ci ne sont pas utilisées durant les
- opérations d'index btree ; mais plutôt, elles étendent les sémantiques de la
- famille d'opérateur de telle manière qu'elles puissent supporter les clauses de
- fenêtrage contenant les types de limite de cadre
- RANGEdécalage
- PRECEDING
- et RANGEdécalage
- FOLLOWING (voir
- ). Fondamentalement, les
- informations supplémentaires fournies sont comment additionner et soustraire
- une valeur d'un décalage d'une manière qui est
- compatible avec le tri de données de la famille.
-
+
+ De manière facultative, une famille d'opérateur btree peut fournir une ou
+ plusieurs fonctions de support in_range inscrites comme
+ fonction de support numéro 3. Celles-ci ne sont pas utilisées durant les
+ opérations d'index btree ; mais plutôt, elles étendent les sémantiques de la
+ famille d'opérateur de telle manière qu'elles puissent supporter les clauses de
+ fenêtrage contenant les types de limite de cadre
+ RANGEdécalage
+ PRECEDING
+ et RANGEdécalage
+ FOLLOWING (voir
+ ). Fondamentalement, les
+ informations supplémentaires fournies sont comment additionner et soustraire
+ une valeur d'un décalage d'une manière qui est
+ compatible avec le tri de données de la famille.
+
-
- Une fonction in_range doit avoir la signature
+
+ Une fonction in_range doit avoir la signature
in_range(val type1, base type1, offset type2, sub bool, less bool)
returns bool
- val et base doivent
- être du même type, qui est un des types supportés par la famille d'opérateur
- (c'est-à-dire un type pour lequel elle fournit un tri). Cependant,
- offset peut être d'un type de données différent,
- qui peut par ailleurs ne pas être supporté par la famille. Un exemple est
- que la famille time_ops incluse par défaut fournit une
- fonction in_range qui a un
- offset de type interval.
- Une famille peut fournir des fonctions in_range pour
- n'importe lesquels des types de données qu'elle supporte, et un ou plusieurs types
- offset. Chaque fonction
- in_range devrait être inscrite dans
- pg_amproc
- avec amproclefttype égal à type1
- et amprocrighttype égal à type2.
-
+ val et base doivent
+ être du même type, qui est un des types supportés par la famille d'opérateur
+ (c'est-à-dire un type pour lequel elle fournit un tri). Cependant,
+ offset peut être d'un type de données différent,
+ qui peut par ailleurs ne pas être supporté par la famille. Un exemple est
+ que la famille time_ops incluse par défaut fournit une
+ fonction in_range qui a un
+ offset de type interval.
+ Une famille peut fournir des fonctions in_range pour
+ n'importe lesquels des types de données qu'elle supporte, et un ou plusieurs types
+ offset. Chaque fonction
+ in_range devrait être inscrite dans
+ pg_amproc
+ avec amproclefttype égal à type1
+ et amprocrighttype égal à type2.
+
-
- Les sémantiques essentielles pour une fonction in_range
- dépendent des deux paramètres de drapeau booléens. Elle devrait ajouter ou
- soustraire base et
- offset, puis comparer
- val au résultat, comme ceci :
-
-
- si !sub et
- !less,
- renvoyer val>=
- (base+
- offset)
+ Les sémantiques essentielles pour une fonction in_range
+ dépendent des deux paramètres de drapeau booléens. Elle devrait ajouter ou
+ soustraire base et
+ offset, puis comparer
+ val au résultat, comme ceci :
+
+
+
+ si !sub et
+ !less,
+ renvoyer val>=
+ (base+
+ offset)
+
+
+
+
+ si !sub
+ et less,
+ renvoyer val<=
+ (base+
+ offset)
+
+
+
+
+ si sub
+ et !less,
+ renvoyer val>=
+ (base-
+ offset)
+
+
+
+
+ si sub et less,
+ renvoyer val<=
+ (base-
+ offset)
+
+
+
+ Avant de procéder, la fonction devrait vérifier le signe d'
+ offset : s'il est inférieur à zéro, lever l'erreur
+ ERRCODE_INVALID_PRECEDING_OR_FOLLOWING_SIZE (22013)
+ avec un message d'erreur tel que taille précédente ou suivante invalide
+ dans la fonction de fenêtrage. (Cela est requis par le standard SQL,
+ bien que des familles d'opérateur non standards pourraient peut être choisir
+ d'ignorer cette restriction, puisqu'il n'y a pas vraiment de nécessité de
+ sémantique dans ce cas.) Cette exigence est déléguée à la fonction
+ in_range si bien que le code du moteur n'a pas besoin de
+ comprendre ce que inférieur à zéro signifie pour un type de
+ données particulier.
-
-
+
- si !sub
- et less,
- renvoyer val<=
- (base+
- offset)
+ Une autre attente est que les fonctions in_range
+ devraient, si applicable, éviter de générer une erreur si
+ base+
+ offset
+ ou base-
+ offset devait causer un débordement.
+ Le résultat de comparaison correct peut être déterminé même si cette valeur
+ devait être en dehors de l'intervalle des valeurs du type de données.
+ Notez que si le type de données inclut des concepts tels que
+ infinity ou NaN, des précautions supplémentaires
+ pourraient être nécessaires pour s'assurer que les resultats de
+ in_range soient en accord avec l'ordre de tri normal de la
+ famille d'opérateur.
-
-
+
- si sub
- et !less,
- renvoyer val>=
- (base-
- offset)
+ Les résultats de la fonction in_range doivent être
+ cohérents avec l'ordre de tri imposé par la famille d'opérateur. Pour être
+ précis, pour n'importe quelles valeurs fixées de
+ offset et sub, alors :
+
+
+
+ Si in_range avec less =
+ true est vrai pour certains val1
+ et base, il doit être vrai pour chaque
+ val2<=
+ val1 avec le même
+ base.
+
+
+
+
+ Si in_range avec less =
+ true est faux pour certains val1
+ et base, il doit être faux pour chaque
+ val2>=
+ val1 avec le même
+ base.
+
+
+
+
+ Si in_range avec less =
+ true est vrai pour certains val
+ et base1, il doit être vrai pour chaque
+ base2>=
+ base1 avec le même
+ val.
+
+
+
+
+ Si in_range avec less =
+ true est faux pour certains val
+ et base1, il doit être faux pour chaque
+ base2<=
+ base1 avec le même
+ val.
+
+
+
+ Des déclarations similaires avec des conditions inversées continuent à
+ s'appliquer quand less = false.
-
-
+
- si sub et less,
- renvoyer val<=
- (base-
- offset)
+ Si le type est trié (type1) par rapport à une collation, l'OID de collation
+ approprié sera passé à la fonction in_range en utilisant
+ le mécanisme standard PG_GET_COLLATION().
-
-
- Avant de procéder, la fonction devrait vérifier le signe d'
- offset : s'il est inférieur ou égal à zéro, lever l'erreur
- ERRCODE_INVALID_PRECEDING_OR_FOLLOWING_SIZE (22013)
- avec un message d'erreur tel que taille précédente ou suivante invalide
- dans la fonction de fenêtrage. (Cela est requis par le standard SQL,
- bien que des familles d'opérateur non standards pourraient peut être choisir
- d'ignorer cette restriction, puisqu'il n'y a pas vraiment de nécessité de
- sémantique dans ce cas.) Cette exigence est déléguée à la fonction
- in_range si bien que le code du moteur n'a pas besoin de
- comprendre ce que inférieur à zéro signifie pour un type de
- données particulier.
-
-
- Une autre attente est que les fonctions in_range
- devraient, si applicable, éviter de générer une erreur si
- base+
- offset
- ou base-
- offset devait causer un débordement.
- Le résultat de comparaison correct peut être déterminé même si cette valeur
- devait être en dehors de l'intervalle des valeurs du type de données.
- Notez que si le type de données inclut des concepts tels que
- infinity ou NaN, des précautions supplémentaires
- pourraient être nécessaires pour s'assurer que les resultats de
- in_range soit en accord avec l'ordre de tri normal de la
- famille d'opérateur.
-
-
-
- Les résultats de la fonction in_range doivent être
- cohérents avec l'ordre de tri imposé par la famille d'opérateur. Pour être
- précis, pour n'importe quelles valeurs fixées de
- offset et sub, alors :
-
-
- Si in_range avec less =
- true est vrai pour certains val1
- et base, il doit être vrai pour chaque
- val2<=
- val1 avec le même
- base.
+ Les fonctions in_range n'ont pas besoin de gérer les
+ valeurs en entrée NULL, et typiquement elles seront marquées comme strict.
+
+
+
+ equalimage
- Si in_range avec less =
- true est faux pour certains val1
- et base, il doit être faux pour chaque
- val2>=
- val1 avec le même
- base.
+ Optionally, a btree operator family may provide
+ equalimage (equality implies image
+ equality) support functions, registered under support
+ function number 4. These functions allow the core code to
+ determine when it is safe to apply the btree deduplication
+ optimization. Currently, equalimage
+ functions are only called when building or rebuilding an index.
-
-
+
- Si in_range avec less =
- true est vrai pour certains val
- et base1, il doit être vrai pour chaque
- base2>=
- base1 avec le même
- val.
+ An equalimage function must have the
+ signature
+
+equalimage(opcintypeoid) returns bool
+
+ The return value is static information about an operator class
+ and collation. Returning true indicates that
+ the order function for the operator class is
+ guaranteed to only return 0 (arguments
+ are equal) when its A and
+ B arguments are also interchangeable
+ without any loss of semantic information. Not registering an
+ equalimage function or returning
+ false indicates that this condition cannot be
+ assumed to hold.
-
-
+
- Si in_range avec less =
- true est faux pour certains val
- et base1, il doit être faux pour chaque
- base2<=
- base1 avec le même
- val.
+ The opcintype argument is the
+ pg_type.oid of the
+ data type that the operator class indexes. This is a convenience
+ that allows reuse of the same underlying
+ equalimage function across operator classes.
+ If opcintype is a collatable data
+ type, the appropriate collation OID will be passed to the
+ equalimage function, using the standard
+ PG_GET_COLLATION() mechanism.
+
+
+
+ As far as the operator class is concerned, returning
+ true indicates that deduplication is safe (or
+ safe for the collation whose OID was passed to its
+ equalimage function). However, the core
+ code will only deem deduplication safe for an index when
+ every indexed column uses an operator class
+ that registers an equalimage function, and
+ each function actually returns true when
+ called.
-
-
- Des déclarations similaires avec des conditions inversées continuent à
- s'appliquer quand less = false.
-
-
- Si le type est trié (type1) par rapport à une collation, l'OID de collation
- approprié sera passé à la fonction in_range en utilisant
- le mécanisme standard PG_GET_COLLATION().
-
+
+ Image equality is almost the same condition
+ as simple bitwise equality. There is one subtle difference: When
+ indexing a varlena data type, the on-disk representation of two
+ image equal datums may not be bitwise equal due to inconsistent
+ application of TOAST compression on input.
+ Formally, when an operator class's
+ equalimage function returns
+ true, it is safe to assume that the
+ datum_image_eq() C function will always agree
+ with the operator class's order function
+ (provided that the same collation OID is passed to both the
+ equalimage and order
+ functions).
+
-
- Les fonctions in_range n'ont pas besoin de gérer les
- valeurs en entrée NULL, et typiquement elles seront marquées comme strict.
-
+
+ The core code is fundamentally unable to deduce anything about
+ the equality implies image equality status of an
+ operator class within a multiple-data-type family based on
+ details from other operator classes in the same family. Also, it
+ is not sensible for an operator family to register a cross-type
+ equalimage function, and attempting to do so
+ will result in an error. This is because equality implies
+ image equality status does not just depend on
+ sorting/equality semantics, which are more or less defined at the
+ operator family level. In general, the semantics that one
+ particular data type implements must be considered separately.
+
+
+ The convention followed by the operator classes included with the
+ core PostgreSQL distribution is to
+ register a stock, generic equalimage
+ function. Most operator classes register
+ btequalimage(), which indicates that
+ deduplication is safe unconditionally. Operator classes for
+ collatable data types such as text register
+ btvarstrequalimage(), which indicates that
+ deduplication is safe with deterministic collations. Best
+ practice for third-party extensions is to register their own
+ custom function to retain control.
+
+
+
+ Implémentation
+
+ This section covers B-Tree index implementation details that may be
+ of use to advanced users. See
+ src/backend/access/nbtree/README in the source
+ distribution for a much more detailed, internals-focused description
+ of the B-Tree implementation.
+
+
+
+ B-Tree Structure
+
+ PostgreSQL B-Tree indexes are
+ multi-level tree structures, where each level of the tree can be
+ used as a doubly-linked list of pages. A single metapage is stored
+ in a fixed position at the start of the first segment file of the
+ index. All other pages are either leaf pages or internal pages.
+ Leaf pages are the pages on the lowest level of the tree. All
+ other levels consist of internal pages. Each leaf page contains
+ tuples that point to table rows. Each internal page contains
+ tuples that point to the next level down in the tree. Typically,
+ over 99% of all pages are leaf pages. Both internal pages and leaf
+ pages use the standard page format described in .
+
+
+ New leaf pages are added to a B-Tree index when an existing leaf
+ page cannot fit an incoming tuple. A page
+ split operation makes room for items that originally
+ belonged on the overflowing page by moving a portion of the items
+ to a new page. Page splits must also insert a new
+ downlink to the new page in the parent page,
+ which may cause the parent to split in turn. Page splits
+ cascade upwards in a recursive fashion. When the
+ root page finally cannot fit a new downlink, a root page
+ split operation takes place. This adds a new level to
+ the tree structure by creating a new root page that is one level
+ above the original root page.
+
+
+
+
+ Deduplication
+
+ A duplicate is a leaf page tuple (a tuple that points to a table
+ row) where all indexed key columns have values
+ that match corresponding column values from at least one other leaf
+ page tuple that's close by in the same index. Duplicate tuples are
+ quite common in practice. B-Tree indexes can use a special,
+ space-efficient representation for duplicates when an optional
+ technique is enabled: deduplication.
+
+
+ Deduplication works by periodically merging groups of duplicate
+ tuples together, forming a single posting list tuple for each
+ group. The column key value(s) only appear once in this
+ representation. This is followed by a sorted array of
+ TIDs that point to rows in the table. This
+ significantly reduces the storage size of indexes where each value
+ (or each distinct combination of column values) appears several
+ times on average. The latency of queries can be reduced
+ significantly. Overall query throughput may increase
+ significantly. The overhead of routine index vacuuming may also be
+ reduced significantly.
+
+
+
+ While NULL is generally not considered to be equal to any other
+ value, including NULL, NULL is nevertheless treated as just
+ another value from the domain of indexed values by the B-Tree
+ implementation (except when enforcing uniqueness in a unique
+ index). B-Tree deduplication is therefore just as effective with
+ duplicates that contain a NULL value.
+
+
+
+ The deduplication process occurs lazily, when a new item is
+ inserted that cannot fit on an existing leaf page. This prevents
+ (or at least delays) leaf page splits. Unlike GIN posting list
+ tuples, B-Tree posting list tuples do not need to expand every time
+ a new duplicate is inserted; they are merely an alternative
+ physical representation of the original logical contents of the
+ leaf page. This design prioritizes consistent performance with
+ mixed read-write workloads. Most client applications will at least
+ see a moderate performance benefit from using deduplication.
+ Deduplication is enabled by default.
+
+
+ Write-heavy workloads that don't benefit from deduplication due to
+ having few or no duplicate values in indexes will incur a small,
+ fixed performance penalty (unless deduplication is explicitly
+ disabled). The deduplicate_items storage
+ parameter can be used to disable deduplication within individual
+ indexes. There is never any performance penalty with read-only
+ workloads, since reading posting list tuples is at least as
+ efficient as reading the standard tuple representation. Disabling
+ deduplication isn't usually helpful.
+
+
+ B-Tree indexes are not directly aware that under MVCC, there might
+ be multiple extant versions of the same logical table row; to an
+ index, each tuple is an independent object that needs its own index
+ entry. Thus, an update of a row always creates all-new index
+ entries for the row, even if the key values did not change. Some
+ workloads suffer from index bloat caused by these
+ implementation-level version duplicates (this is typically a
+ problem for UPDATE-heavy workloads that cannot
+ apply the HOT optimization due to modifying at
+ least one indexed column). B-Tree deduplication does not
+ distinguish between these implementation-level version duplicates
+ and conventional duplicates. Deduplication can nevertheless help
+ with controlling index bloat caused by implementation-level version
+ churn.
+
+
+
+ A special heuristic is applied to determine whether a
+ deduplication pass in a unique index should take place. It can
+ often skip straight to splitting a leaf page, avoiding a
+ performance penalty from wasting cycles on unhelpful deduplication
+ passes. If you're concerned about the overhead of deduplication,
+ consider setting deduplicate_items = off
+ selectively. Leaving deduplication enabled in unique indexes has
+ little downside.
+
+
+
+ Deduplication cannot be used in all cases due to
+ implementation-level restrictions. Deduplication safety is
+ determined when CREATE INDEX or
+ REINDEX is run.
+
+
+ Note that deduplication is deemed unsafe and cannot be used in the
+ following cases involving semantically significant differences
+ among equal datums:
+
+
+
+
+
+ text, varchar, and char
+ cannot use deduplication when a
+ nondeterministic collation is used. Case
+ and accent differences must be preserved among equal datums.
+
+
+
+
+
+ numeric cannot use deduplication. Numeric display
+ scale must be preserved among equal datums.
+
+
+
+
+
+ jsonb cannot use deduplication, since the
+ jsonb B-Tree operator class uses
+ numeric internally.
+
+
+
+
+
+ float4 and float8 cannot use
+ deduplication. These types have distinct representations for
+ -0 and 0, which are
+ nevertheless considered equal. This difference must be
+ preserved.
+
+
+
+
+
+ There is one further implementation-level restriction that may be
+ lifted in a future version of
+ PostgreSQL:
+
+
+
+
+
+ Container types (such as composite types, arrays, or range
+ types) cannot use deduplication.
+
+
+
+
+
+ There is one further implementation-level restriction that applies
+ regardless of the operator class or collation used:
+
- Une introduction à l'implémentation des index btree peut être trouvée dans
- src/backend/access/nbtree/README.
+
+
+
+ INCLUDE indexes can never use deduplication.
+
+
+
+
+
diff --git a/postgresql/charset.xml b/postgresql/charset.xml
index 45606acf8..3529daa86 100644
--- a/postgresql/charset.xml
+++ b/postgresql/charset.xml
@@ -868,12 +868,12 @@ CREATE COLLATION german (provider = libc, locale = 'de_DE');
Voir Unicode
+ url="https://www.unicode.org/reports/tr35/tr35-collation.html">Unicode
Technical Standard #35 et BCP 47 pour les détails.
La liste des types de collationnement possibles (sous-ensemble
co) peut être trouvée dans le dépôt
+ url="https://github.com/unicode-org/cldr/blob/master/common/bcp47/collation.xml">dépôt
CLDR. Le ICU Locale Explorer peut être utilisé pour vérifier
les détails de la définition d'une locale particulière. Les exemples
@@ -942,7 +942,7 @@ CREATE COLLATION french FROM "fr-x-icu";
d'implémenter des comparaisons de ce type ; le drapeau disant que
la collation est déterministe indique seulement si les chaînes égales
seront départagées ou non par une comparaison au niveau de l'octet.
- Voir aussi Unicode Technical
+ Voir aussi Unicode Technical
Standard 10 pour plus d'information sur la terminologie.
@@ -975,11 +975,22 @@ CREATE COLLATION ignore_accents (provider = icu, locale = 'und-u-ks-level1-kc-tr
d'Unicode et ses nombreux cas spécifiques, elles ont aussi quelques
inconvénients.
D'abord, leur utilisation génère une pénalité de performance.
- Certaines opérations ne sont également pas possibles avec des collations
- non déterministes, comme les recherches de motif.
- Par conséquent, elles ne devraient être utilisées que dans les cas
- où elles sont spécifiquement nécessaires.
+ Note, in particular, that B-tree cannot use
+ deduplication with indexes that use a nondeterministic collation. Also,
+ certain operations are not possible with nondeterministic collations,
+ such as pattern matching operations. Therefore, they should be used
+ only in cases where they are specifically wanted.
+
+
+
+ To deal with text in different Unicode normalization forms, it is also
+ an option to use the functions/expressions
+ normalize and is normalized to
+ preprocess or check the strings, instead of using nondeterministic
+ collations. There are different trade-offs for each approach.
+
+
@@ -1030,13 +1041,13 @@ CREATE COLLATION ignore_accents (provider = icu, locale = 'und-u-ks-level1-kc-tr
Jeux de caractères de PostgreSQL
-
-
-
-
-
-
-
+
+
+
+
+
+
+ Nom
@@ -1048,7 +1059,7 @@ CREATE COLLATION ignore_accents (provider = icu, locale = 'und-u-ks-level1-kc-tr
The Bytes/Char field is populated by looking at the values returned
by pg_wchar_table.mblen function for each encoding.
-->
- Octets/Caractère
+ Octets/&zwsp;CaractèreAlias
@@ -1059,7 +1070,7 @@ by pg_wchar_table.mblen function for each encoding.
Chinois traditionnelNonNon
- 1-2
+ 1–2WIN950, Windows950
@@ -1068,7 +1079,7 @@ by pg_wchar_table.mblen function for each encoding.
Chinois simplifiéOuiOui
- 1-3
+ 1–3
@@ -1077,7 +1088,7 @@ by pg_wchar_table.mblen function for each encoding.
JaponaisOuiOui
- 1-3
+ 1–3
@@ -1086,7 +1097,7 @@ by pg_wchar_table.mblen function for each encoding.
JaponaisOuiNon
- 1-3
+ 1–3
@@ -1102,7 +1113,7 @@ by pg_wchar_table.mblen function for each encoding.
CoréenOuiOui
- 1-3
+ 1–3
@@ -1111,7 +1122,7 @@ by pg_wchar_table.mblen function for each encoding.
Chinois traditionnel, taïwanaisOuiOui
- 1-3
+ 1–3
@@ -1120,7 +1131,7 @@ by pg_wchar_table.mblen function for each encoding.
ChinoisNonNon
- 1-4
+ 1–4
@@ -1129,7 +1140,7 @@ by pg_wchar_table.mblen function for each encoding.
Chinois simplifiéNonNon
- 1-2
+ 1–2WIN936, Windows936
@@ -1300,7 +1311,7 @@ by pg_wchar_table.mblen function for each encoding.
Emacs multi-languesOuiNon
- 1-4
+ 1–4
@@ -1309,7 +1320,7 @@ by pg_wchar_table.mblen function for each encoding.
JaponaisNonNon
- 1-2
+ 1–2Mskanji, ShiftJIS, WIN932, Windows932
@@ -1318,7 +1329,7 @@ by pg_wchar_table.mblen function for each encoding.
JaponaisNonNon
- 1-2
+ 1–2
@@ -1336,7 +1347,7 @@ by pg_wchar_table.mblen function for each encoding.
CoréenNonNon
- 1-2
+ 1–2WIN949, Windows949
@@ -1345,7 +1356,7 @@ by pg_wchar_table.mblen function for each encoding.
tousOuiOui
- 1-4
+ 1–4Unicode
@@ -1464,8 +1475,8 @@ by pg_wchar_table.mblen function for each encoding.
SQL_ASCII se comporte de façon considérablement
différente des autres valeurs. Quand le jeu de caractères du
serveur est SQL_ASCII, le serveur interprète les valeurs
- des octets 0-127 suivant le standard ASCII alors que les valeurs
- d'octets 128-255 sont considérées comme des caractères non interprétés.
+ des octets 0–127 suivant le standard ASCII alors que les valeurs
+ d'octets 128–255 sont considérées comme des caractères non interprétés.
Aucune conversion de codage n'est effectuée avec
SQL_ASCII. De ce fait, cette valeur ne déclare pas
tant un encodage spécifique que l'ignorance de l'encodage. Dans la
@@ -1566,322 +1577,12 @@ by pg_wchar_table.mblen function for each encoding.
Conversion automatique d'encodage entre serveur et client
- PostgreSQL automatise la conversion
- de jeux de caractères entre client et serveur pour
- certaines combinaisons de jeux de caractères. Les informations de conversion sont
- conservées dans le catalogue système pg_conversion.
- PostgreSQL est livré avec certaines
- conversions prédéfinies, conversions listées dans le
- . Une nouvelle
- conversion peut être créée en utilisant la commande SQL
- CREATE CONVERSION.
+ PostgreSQL automatise la conversion de jeux de
+ caractères entre client et serveur pour un grand nombre de combinaisons
+ de jeux de caractères (
+ montre lesquels).
-
-
Pour activer la conversion automatique des jeux de caractères, il
est nécessaire d'indiquer à PostgreSQL
@@ -1965,12 +1666,984 @@ by pg_wchar_table.mblen function for each encoding.
- Si l'encodage client est défini en tant que
- SQL_ASCII, la conversion de l'encodage est désactivée quelque
- soit celui du serveur. Comme pour le serveur,
- SQL_ASCII est déconseillé sauf à ne travailler qu'avec
- des données ASCII.
+ Si l'encodage client est défini en tant que SQL_ASCII,
+ la conversion de l'encodage est désactivée quelque soit celui du serveur.
+ (However, if the server's character set is not
+ SQL_ASCII, the server will still check that incoming
+ data is valid for that encoding; so the net effect is as though the
+ client character set were the same as the server's.) Comme pour le
+ serveur, SQL_ASCII est déconseillé sauf à ne
+ travailler qu'avec des données ASCII.
+
+
+
+
+ Available Character Set Conversions
+
+
+ PostgreSQL allows conversion between any
+ two character sets for which a conversion function is listed in the
+ pg_conversion
+ system catalog. PostgreSQL comes with
+ some predefined conversions, as summarized in
+ and shown in more
+ detail in . You can
+ create a new conversion using the SQL command
+ . (To be used for automatic
+ client/server conversions, a conversion must be marked
+ as default for its character set pair.)
+
+
@@ -1994,7 +2667,7 @@ by pg_wchar_table.mblen function for each encoding.
-
+
diff --git a/postgresql/citext.xml b/postgresql/citext.xml
index 717959b49..2d44e53ba 100644
--- a/postgresql/citext.xml
+++ b/postgresql/citext.xml
@@ -24,6 +24,12 @@
+
+ This module is considered trusted, that is, it can be
+ installed by non-superusers who have CREATE privilege
+ on the current database.
+
+
Intérêt
@@ -231,18 +237,19 @@
toujours à partir de la configuration LC_CTYPE de la
base de données (c'est-à-dire comme si COLLATE "default"
avait été donné). Cela pourrait changer dans une prochaine version pour que
- les deux étapes suivent la clause COLLATE
- specification.
+ les deux étapes suivent la clause COLLATE.
- citext n'est pas aussi performant que text parce que
- les fonctions opérateurs et les fonctions de comparaison B-tree
- doivent faire des copies des données et les convertir en minuscules pour les
- comparaisons. C'est cependant légèrement plus efficace qu'utiliser
- lower pour obtenir des comparaisons insensibles à la casse.
+ citext n'est pas aussi performant que text
+ parce que les fonctions opérateurs et les fonctions de comparaison B-tree
+ doivent faire des copies des données et les convertir en minuscules pour
+ les comparaisons. Also, only text can support B-Tree
+ deduplication. However, citext estlégèrement plus efficace
+ qu'utiliser lower pour obtenir des comparaisons
+ insensibles à la casse.
diff --git a/postgresql/color.xml b/postgresql/color.xml
new file mode 100644
index 000000000..33febddc8
--- /dev/null
+++ b/postgresql/color.xml
@@ -0,0 +1,102 @@
+
+
+
+
+ Color Support
+
+
+ color
+
+
+
+ Most programs in the PostgreSQL package can produce colorized console
+ output. This appendix describes how that is configured.
+
+
+
+ When Color is Used
+
+
+ To use colorized output, set the environment variable
+ PG_COLORPG_COLOR
+ as follows:
+
+
+
+
+ If the value is always, then color is used.
+
+
+
+
+
+ If the value is auto and the standard error stream
+ is associated with a terminal device, then color is used.
+
+
+
+
+
+ Otherwise, color is not used.
+
+
+
+
+
+
+
+ Configuring the Colors
+
+
+ The actual colors to be used are configured using the environment variable
+ PG_COLORSPG_COLORS
+ (note plural). The value is a colon-separated list of
+ key=value
+ pairs. The keys specify what the color is to be used for. The values are
+ SGR (Select Graphic Rendition) specifications, which are interpreted by the
+ terminal.
+
+
+
+ The following keys are currently in use:
+
+
+ error
+
+ used to highlight the text error in error messages
+
+
+
+
+ warning
+
+ used to highlight the text warning in warning
+ messages
+
+
+
+
+ locus
+
+ used to highlight location information (e.g., program name and
+ file name) in messages
+
+
+
+
+
+
+ The default value is error=01;31:warning=01;35:locus=01
+ (01;31 = bold red, 01;35 = bold
+ magenta, 01 = bold default color).
+
+
+
+
+ This color specification format is also used by other software packages
+ such as GCC, GNU
+ coreutils, and GNU grep.
+
+
+
+
diff --git a/postgresql/config.xml b/postgresql/config.xml
index 5b02f7c8c..9bd48c32a 100644
--- a/postgresql/config.xml
+++ b/postgresql/config.xml
@@ -799,7 +799,10 @@ include 'nom_fichier'
des sockets de domaine Unix, auquel cas seules les sockets TCP/IP
pourront être utilisées pour se connecter au serveur. La valeur
par défaut est habituellement /tmp, mais cela
- peut se changer au moment de la contruction. Ce paramètre ne peut
+ peut se changer au moment de la contruction.
+ On Windows, the default is empty, which means no Unix-domain socket is
+ created by default.
+ Ce paramètre ne peut
être configuré qu'au lancement du serveur.
@@ -819,8 +822,6 @@ include 'nom_fichier'
Un effet similaire peut être atteint en pointant
unix_socket_directories vers un répertoire ayant
un droit de recherche limité à l'audience acceptée.
- Ce paramètre n'a aucun intérêt sous Windows car ce système n'a pas
- de sockets domaine Unix.
@@ -845,8 +846,8 @@ include 'nom_fichier'
- Ce paramètre n'a aucun intérêt sous Windows car ce système n'a pas
- de sockets domaine Unix.
+ Ce paramètre n'est pas supporté sous Windows. Sa configuration sera
+ ignorée.
@@ -888,8 +889,10 @@ include 'nom_fichier'
- Ce paramètre n'a aucun intérêt sous Windows car ce système n'a pas
- de sockets domaine Unix.
+ This parameter is irrelevant on systems, notably Solaris as of Solaris
+ 10, that ignore socket permissions entirely. There, one can achieve a
+ similar effect by pointing unix_socket_directories to a
+ directory having search permission limited to the desired audience.
@@ -1421,11 +1424,8 @@ include 'nom_fichier'
- La valeur par défaut est TLSv1, principalement pour
- supporter les versions plus anciennes de la bibliothèque
- OpenSSL. Vous pourriez vouloir le configurer à
- une valeur plus haute si tous les composants logiciels peuvent supporter
- les versions plus récentes du protocole.
+ La valeur par défaut est TLSv1.2, which satisfies industry
+ best practices as of this writing.
@@ -1847,6 +1847,27 @@ include 'nom_fichier'
+
+ logical_decoding_work_mem (integer)
+
+ logical_decoding_work_mem configuration parameter
+
+
+
+
+ Specifies the maximum amount of memory to be used by logical decoding,
+ before some of the decoded changes are written to local disk. This
+ limits the amount of memory used by logical streaming replication
+ connections. It defaults to 64 megabytes (64MB).
+ Since each replication connection only uses a single buffer of this size,
+ and an installation normally doesn't have many such connections
+ concurrently (as limited by max_wal_senders), it's
+ safe to set this value significantly higher than work_mem,
+ reducing the amount of decoded changes written to disk.
+
+
+
+
max_stack_depth (integer)
@@ -2323,6 +2344,26 @@ block : bloc vidé, dirty bloc : bloc à vider ?
+
+ maintenance_io_concurrency (integer)
+
+ maintenance_io_concurrency configuration parameter
+
+
+
+
+ Similar to effective_io_concurrency, but used
+ for maintenance work that is done on behalf of many client sessions.
+
+
+ The default is 10 on supported systems, otherwise 0. This value can
+ be overridden for tables in a particular tablespace by setting the
+ tablespace parameter of the same name (see
+ ).
+
+
+
+
max_worker_processes (integer)
@@ -2398,9 +2439,10 @@ block : bloc vidé, dirty bloc : bloc à vider ?
Indique le nombre maximum de workers parallèles qu'une commande utilitaire
- peut démarrer. Actuellement, la seule commande utilitaire qui supporte
+ peut démarrer. Actuellement, les commandes utilitaires qui supportent
les workers parallèles est CREATE INDEX, et seulement
- à la création d'un index B-tree. Les workers parallèles sont déduits du
+ à la création d'un index B-tree, et VACUUM sans l'option
+ FULL. Les workers parallèles sont déduits du
pool de processus défini par ,
dans la limite de . Notez que le
nombre de workers demandé peut ne pas être disponible lors de l'exécution.
@@ -2576,17 +2618,23 @@ block : bloc vidé, dirty bloc : bloc à vider ?
serveur.
- Au niveau minimal, certains enregistrements dans
- les journaux de transactions peuvent être évités, ce qui peut
- rendre ces opérations plus rapides (voir ). Les opérations concernées par cette
- optimisation incluent :
+ Au niveau minimal, no information is logged for
+ permanent relations for the remainder of a transaction that creates or
+ rewrites them. This can make operations much faster (see
+ ). Operations that initiate this
+ optimization include:
CREATE TABLE ASCREATE INDEX
+ ALTER ... SET TABLESPACECLUSTERCOPY dans des tables qui ont été créées ou
tronquées dans la même transaction
+ CREATE TABLE
+ REFRESH MATERIALIZED VIEW
+ (without )
+ REINDEX
+ TRUNCATE
Mais, du coup, les journaux au niveau minimal ne contiennent pas suffisamment
d'informations pour reconstruire les données à partir d'une sauvegarde
@@ -3014,6 +3062,27 @@ block : bloc vidé, dirty bloc : bloc à vider ?
+
+ wal_skip_threshold (integer)
+
+ wal_skip_threshold configuration parameter
+
+
+
+
+ When wal_level is minimal and a
+ transaction commits after creating or rewriting a permanent relation,
+ this setting determines how to persist the new data. If the data is
+ smaller than this setting, write it to the WAL log; otherwise, use an
+ fsync of affected files. Depending on the properties of your storage,
+ raising or lowering this value might help if such commits are slowing
+ concurrent transactions. If this value is specified without units, it
+ is taken as kilobytes. The default is two megabytes
+ (2MB).
+
+
+
+
commit_delay (integer)
@@ -3743,6 +3812,14 @@ restore_command = 'copy "C:\\server\\archivedir\\%f" "%p"' # Windows
n'a été configurée. Si n'est pas
activé, une configuration à pause agira de la même
façon qu'une configuration à shutdown.
+ If the recovery target is reached while a promotion is ongoing,
+ a setting of pause will act the same as
+ promote.
+
+
+ In any case, if a recovery target is configured but the archive
+ recovery ends before the target is reached, the server will shut down
+ with a fatal error.
@@ -3909,6 +3986,29 @@ restore_command = 'copy "C:\\server\\archivedir\\%f" "%p"' # Windows
+
+ max_slot_wal_keep_size (integer)
+
+ max_slot_wal_keep_size configuration parameter
+
+
+
+
+ Specify the maximum size of WAL files
+ that replication
+ slots are allowed to retain in the pg_wal
+ directory at checkpoint time.
+ If max_slot_wal_keep_size is -1 (the default),
+ replication slots retain unlimited amount of WAL files. If
+ restart_lsn of a replication slot gets behind more than that megabytes
+ from the current LSN, the standby using the slot may no longer be able
+ to continue replication due to removal of required WAL files. You
+ can see the WAL availability of replication slots
+ in pg_replication_slots.
+
+
+
+
wal_sender_timeout (integer)
@@ -4187,8 +4287,12 @@ ANY nb_sync ( nb_sync ( ). Ce paramètre peut seulement
- être configuré au démarrage du serveur. Il n'a aucun effet si
- primary_conninfo n'est pas configuré.
+ linkend="streaming-replication-slots"/>). This parameter can only be set
+ in the postgresql.conf file or on the server command
+ line. If this parameter is changed while the WAL receiver process is
+ running, that process is signalled to shut down and expected to restart
+ with the new setting. Il n'a aucun effet si
+ primary_conninfo n'est pas configuré or the server is
+ not in standby mode.
@@ -4221,7 +4329,7 @@ ANY nb_sync ( nb_sync (
+ wal_receiver_create_temp_slot (boolean)
+
+ wal_receiver_create_temp_slot configuration parameter
+
+
+
+
+ Specifies whether the WAL receiver process should create a temporary replication
+ slot on the remote instance when no permanent replication slot to use
+ has been configured (using ).
+ The default is off. This parameter can only be set in the
+ postgresql.conf file or on the server command line.
+ If this parameter is changed while the WAL receiver process is running,
+ that process is signalled to shut down and expected to restart with
+ the new setting.
+
+
+
+
wal_receiver_status_interval (integer)
@@ -4639,6 +4767,23 @@ ANY nb_sync (
+ enable_groupingsets_hash_disk (boolean)
+
+ enable_groupingsets_hash_disk configuration parameter
+
+
+
+
+ Enables or disables the query planner's use of hashed aggregation plan
+ types for grouping sets when the total size of the hash tables is
+ expected to exceed work_mem. See . The default is
+ off.
+
+
+
+
enable_hashagg (boolean)
@@ -4653,6 +4798,21 @@ ANY nb_sync (
+ enable_hashagg_disk (boolean)
+
+ enable_hashagg_disk configuration parameter
+
+
+
+
+ Enables or disables the query planner's use of hashed aggregation plan
+ types when the memory usage is expected to exceed
+ work_mem. The default is on.
+
+
+
+
enable_hashjoin (boolean)
@@ -4667,6 +4827,20 @@ ANY nb_sync (
+ enable_incrementalsort (boolean)
+
+ enable_incrementalsort configuration parameter
+
+
+
+
+ Enables or disables the query planner's use of incremental sort steps.
+ The default is on.
+
+
+
+
enable_indexscan (boolean)
@@ -5105,11 +5279,14 @@ ANY nb_sync ( .
+ Si cette valeur est spécifiée sans unité, elle est comprise comme un
+ nombre de blocs, autrement dit BLCKSZ octets,
+ typiquement 8 Ko. La valeur par défaut est 512 kilooctets
+ (512kB).
@@ -6197,17 +6374,22 @@ local0.* /var/log/postgresql
Trace la durée de toute instruction terminée dont le temps d'exécution
- égale ou dépasse cette durée. SI cette valeur est indiquée sans unité,
- elle est comprise comme un nombre de millisecondes. Positionné à zéro, les
- durées de toutes les instructions sont tracées. -1
- (valeur par défaut) désactive la trace de la durée des requêtes. Par
- exemple, si le paramètre est positionné à
- 250ms, alors toutes les instructions SQL dont la durée
- est supérieure ou égale à 250 ms sont tracées. Il est utile d'activer
- ce paramètre pour tracer les requêtes non optimisées des applications.
+ égale ou dépasse cette durée. Par exemple, si le paramètre est positionné
+ à 250ms, alors toutes les instructions SQL dont la
+ durée est supérieure ou égale à 250 ms sont tracées. Il est utile
+ d'activer ce paramètre pour tracer les requêtes non optimisées des
+ applications. If this value is specified without units, it is taken as
+ milliseconds. Setting this to zero prints all statement durations.
+ -1 (the default) disables logging statement durations.
Seuls les superutilisateurs peuvent modifier cette configuration.
+
+ This overrides ,
+ meaning that queries with duration exceeding this setting are not
+ subject to sampling and are always logged.
+
+
Pour les clients utilisant le protocole de requêtage étendu, les durées
des étapes Parse (analyse), Bind (lien) et Execute (exécution) sont
@@ -6229,32 +6411,99 @@ local0.* /var/log/postgresql
-
- log_transaction_sample_rate (real)
-
- paramètre de configuration log_transaction_sample_rate
-
-
-
-
- Initialise la fraction de transactions dont les requêtes seront toutes
- tracées en plus des requêtes tracées pour d'autres raisons. Cela
- s'applique à toute nouvelle transaction, quelque soit les durées des
- requêtes. La valeur par défaut est 0, signifiant de
- ne pas tracer les requêtes des transactions. Configurer ce paramètre à
- 1 permet de tracer toutes les requêtes de toutes les
- transactions. log_transaction_sample_rate est utile
- pour tracer un exemple de transaction.
- Seuls les superutilisateurs peuvent changer ce paramètre.
-
-
-
- Comme toutes les options sur les traces des requêtes, cette option peut
- ajouter une surcharge importante.
-
-
-
-
+
+ log_min_duration_sample (integer)
+
+ log_min_duration_sample configuration parameter
+
+
+
+
+ Allows sampling the duration of completed statements that ran for
+ at least the specified amount of time. This produces the same
+ kind of log entries as
+ , but only for a
+ subset of the executed statements, with sample rate controlled by
+ .
+ For example, if you set it to 100ms then all
+ SQL statements that run 100ms or longer will be considered for
+ sampling. Enabling this parameter can be helpful when the
+ traffic is too high to log all queries.
+ If this value is specified without units, it is taken as milliseconds.
+ Setting this to zero samples all statement durations.
+ -1 (the default) disables sampling statement
+ durations. Only superusers can change this setting.
+
+
+
+ This setting has lower priority
+ than log_min_duration_statement, meaning that
+ statements with durations
+ exceeding log_min_duration_statement are not
+ subject to sampling and are always logged.
+
+
+
+ Other notes for log_min_duration_statement
+ apply also to this setting.
+
+
+
+
+
+ log_statement_sample_rate (floating point)
+
+ log_statement_sample_rate configuration parameter
+
+
+
+
+ Determines the fraction of statements with duration exceeding
+ that will be logged.
+ Sampling is stochastic, for example 0.5 means
+ there is statistically one chance in two that any given statement
+ will be logged.
+ The default is 1.0, meaning to log all sampled
+ statements.
+ Setting this to zero disables sampled statement-duration logging,
+ the same as setting
+ log_min_duration_sample to
+ -1.
+ Only superusers can change this setting.
+
+
+
+
+
+ log_transaction_sample_rate (floating point)
+
+ paramètre de configuration log_transaction_sample_rate
+
+
+
+
+ Initialise la fraction de transactions dont les requêtes seront toutes
+ tracées en plus des requêtes tracées pour d'autres raisons. Cela
+ s'applique à toute nouvelle transaction, quelque soit les durées des
+ requêtes.
+ Sampling is stochastic, for example 0.1 means
+ there is statistically one chance in ten that any given transaction
+ will be logged.
+ log_transaction_sample_rate can be helpful to
+ construct a sample of transactions.
+ The default is 0, meaning not to log
+ statements from any additional transactions. Setting this
+ to 1 logs all statements of all transactions.
+ Seuls les superutilisateurs peuvent changer ce paramètre.
+
+
+
+ Comme toutes les options sur les traces des requêtes, cette option peut
+ ajouter une surcharge importante.
+
+
+
+
@@ -6269,6 +6518,10 @@ local0.* /var/log/postgresql
Niveaux de sévérité des messages
+
+
+
+ Sévérité
@@ -6280,7 +6533,7 @@ local0.* /var/log/postgresql
- DEBUG1..DEBUG5
+ DEBUG1 .. DEBUG5Fournit des informations successivement plus détaillées
à destination des développeurs.DEBUG
@@ -6579,11 +6832,16 @@ local0.* /var/log/postgresql
l'option. Une valeur négative implique un alignement à droite par
ajout d'espaces alors qu'une valeur positive est pour un alignement à
gauche. L'alignement peut être utile pour aider à la lecture des
- fichiers de trace. Ce paramètre ne peut être configuré que dans le
+ fichiers de trace.
+
+
+
+ Ce paramètre ne peut être configuré que dans le
fichier postgresql.conf ou indiqué sur la ligne
de commande. La valeur par défaut est '%m [%p] '
ce qui affiche dans les trace l'heure courante ainsi que l'identifiant de
processus.
+
@@ -6623,6 +6881,11 @@ local0.* /var/log/postgresql
Nom d'hôte distant ou adresse IPoui
+
+ %b
+ Backend type
+ no
+ %pID du processus
@@ -6695,6 +6958,14 @@ local0.* /var/log/postgresql
+
+ The backend type corresponds to the column
+ backend_type in the view , but additional types can appear
+ in the log that don't show in that view.
+
+
+
L'échappement %c affiche un identifiant de session
quasi-unique constitué de deux nombres hexadécimaux sur quatre octets
(sans les zéros initiaux) et séparés par un point. Les nombres
@@ -6759,6 +7030,61 @@ log_line_prefix = '%m [%p] %q%u@%d/%a '
+
+ log_parameter_max_length (integer)
+
+ log_parameter_max_length configuration parameter
+
+
+
+
+ If greater than zero, each bind parameter value reported in
+ non-error statement-logging messages is trimmed to this many bytes.
+ Zero disables logging bind parameters with statements.
+ -1 (the default) allows bind parameters to be
+ logged in full.
+ If this value is specified without units, it is taken as bytes.
+ Only superusers can change this setting.
+
+
+
+ This setting only affects log messages printed as a result of
+ ,
+ , and related settings. Non-zero
+ values of this setting add some overhead, particularly if parameters
+ are sent in binary form, since then conversion to text is required.
+
+
+
+
+
+ log_parameter_max_length_on_error (integer)
+
+ log_parameter_max_length_on_error configuration parameter
+
+
+
+
+ If greater than zero, each bind parameter value reported in error
+ messages is trimmed to this many bytes.
+ Zero (the default) disables including bind parameters in error
+ messages.
+ -1 allows bind parameters to be printed in full.
+ If this value is specified without units, it is taken as bytes.
+
+
+
+ Non-zero values of this setting add overhead, as
+ PostgreSQL will need to store textual
+ representations of parameter values in memory at the start of each
+ statement, whether or not an error eventually occurs. The overhead
+ is greater when bind parameters are sent in binary form than when
+ they are sent as text, since the former case requires data
+ conversion while the latter only requires copying the string.
+
+
+
+
log_statement (enum)
@@ -6887,7 +7213,8 @@ log_line_prefix = '%m [%p] %q%u@%d/%a '
de caractères pour arriver à la position de l'erreur, l'emplacement de
l'erreur dans le code source de PostgreSQL (si
log_error_verbosity est configuré à
- verbose) et le nom de l'application.
+ verbose), le nom de l'application et le type du processus
+ serveur.
@@ -6921,6 +7248,7 @@ CREATE TABLE postgres_log
query_pos integer,
location text,
application_name text,
+ backend_type text,
PRIMARY KEY (session_id, session_line_num)
);
@@ -7242,8 +7570,7 @@ Ces paramètres contrôlent le comportement de la fonctionnalité appelée
autovacuum. Se référer à la
pour plus de détails.
Notez que beaucoup de ces paramètres peuvent être surchargés au niveau
- de chaque table ; voir .
+ de chaque table ; voir .
@@ -7355,6 +7682,28 @@ Ces paramètres contrôlent le comportement de la fonctionnalité appelée
+
+ autovacuum_vacuum_insert_threshold (integer)
+
+ autovacuum_vacuum_insert_threshold
+ configuration parameter
+
+
+
+
+ Specifies the number of inserted tuples needed to trigger a
+ VACUUM in any one table.
+ The default is 1000 tuples. If -1 is specified, autovacuum will not
+ trigger a VACUUM operation on any tables based on
+ the number of inserts.
+ This parameter can only be set in the postgresql.conf
+ file or on the server command line;
+ but the setting can be overridden for individual tables by
+ changing table storage parameters.
+
+
+
+
autovacuum_analyze_threshold (integer)
@@ -7374,6 +7723,27 @@ Ces paramètres contrôlent le comportement de la fonctionnalité appelée
+
+ autovacuum_vacuum_insert_scale_factor (floating point)
+
+ autovacuum_vacuum_insert_scale_factor
+ configuration parameter
+
+
+
+
+ Specifies a fraction of the table size to add to
+ autovacuum_vacuum_insert_threshold
+ when deciding whether to trigger a VACUUM.
+ The default is 0.2 (20% of table size).
+ This parameter can only be set in the postgresql.conf
+ file or on the server command line;
+ but the setting can be overridden for individual tables by
+ changing table storage parameters.
+
+
+
+
autovacuum_vacuum_scale_factor (floating point)
@@ -7962,10 +8332,13 @@ Ces paramètres contrôlent le comportement de la fonctionnalité appelée
Le délai est mesuré à partir du moment où une commande arrive au serveur
- jusqu'à sa fin par le serveur. Dans le protocole de requête étendue, le
- délai commence lors du début de l'exécution de tout message relatif à la
- requête (Parse, Bind, Execute, Describe) et elle est annulée à la fin du
- message Execute ou Sync.
+ jusqu'à sa fin par le serveur. If multiple SQL statements appear in a
+ single simple-Query message, the timeout is applied to each statement
+ separately. (PostgreSQL versions before 13
+ usually treated the timeout as applying to the whole query string.) Dans
+ le protocole de requête étendue, le délai commence lors du début de
+ l'exécution de tout message relatif à la requête (Parse, Bind, Execute,
+ Describe) et elle est annulée à la fin du message Execute ou Sync.
@@ -9727,9 +10100,37 @@ SET XML OPTION { DOCUMENT | CONTENT };
paramètre de configuration allow_system_table_mods
- Autorise la modification de la structure des tables systèmes.
- Ce paramètre, utilisé par initdb,
- n'est modifiable qu'au démarrage du serveur.
+ Allows modification of the structure of system tables as well as
+ certain other risky actions on system tables. This is otherwise not
+ allowed even for superusers. Ill-advised use of this setting can
+ cause irretrievable data loss or seriously corrupt the database
+ system. Only superusers can change this setting.
+
+
+
+
+
+ backtrace_functions (string)
+
+ backtrace_functions configuration parameter
+
+
+
+
+ This parameter contains a comma-separated list of C function names.
+ If an error is raised and the name of the internal C function where
+ the error happens matches a value in the list, then a backtrace is
+ written to the server log together with the error message. This can
+ be used to debug specific areas of the source code.
+
+
+
+ Backtrace support is not available on all platforms, and the quality
+ of the backtraces depends on compilation options.
+
+
+
+ This parameter can only be set by superusers.
@@ -10103,6 +10504,31 @@ LOG: CleanUpLock: deleting: lock(0xb7acd844) id(24688,24696,0,0,0,1)
+
+ ignore_invalid_pages (boolean)
+
+ ignore_invalid_pages configuration parameter
+
+
+
+
+ If set to off (the default), detection of
+ WAL records having references to invalid pages during
+ recovery causes PostgreSQL to
+ raise a PANIC-level error, aborting the recovery. Setting
+ ignore_invalid_pages to on
+ causes the system to ignore invalid page references in WAL records
+ (but still report a warning), and continue the recovery.
+ This behavior may cause crashes, data loss,
+ propagate or hide corruption, or other serious problems.
+ However, it may allow you to get past the PANIC-level error,
+ to finish the recovery, and to cause the server to start up.
+ The parameter can only be set at server start. It only has effect
+ during recovery or in standby mode.
+
+
+
+
jit_debugging_support (boolean)
@@ -10204,6 +10630,8 @@ LOG: CleanUpLock: deleting: lock(0xb7acd844) id(24688,24696,0,0,0,1)
Clé d'option courte
+
+ Option courte
diff --git a/postgresql/contrib.xml b/postgresql/contrib.xml
index b0d0a558a..ce5a4ec1d 100644
--- a/postgresql/contrib.xml
+++ b/postgresql/contrib.xml
@@ -53,8 +53,7 @@
Beaucoup de ces modules fournissent de nouvelles fonctions, de nouveaux
opérateurs ou types utilisateurs. Pour pouvoir utiliser un de ces
modules, après avoir installé le code, il faut enregistrer les
- nouveaux objets SQL dans la base de données. À partir de
- PostgreSQL, cela se fait en exécutant la
+ nouveaux objets SQL dans la base de données. Cela se fait en exécutant la
commande . Dans une base de données
neuve, vous pouvez simplement faire :
@@ -64,7 +63,7 @@ CREATE EXTENSION nom_module;
- Cette commande doit être exécutée par un superutilisateur. Cela enregistre
+ Cette commande enregistre
de nouveaux objets SQL dans la base de données courante, donc vous avez
besoin d'exécuter cette commande dans chaque base de données où vous
souhaitez l'utiliser. Autrement, exécutez-la dans la base de données
@@ -72,6 +71,16 @@ CREATE EXTENSION nom_module;
de données créées après.
+
+ For all these modules, CREATE EXTENSION must be run
+ by a database superuser, unless the module is
+ considered trusted, in which case it can be run by any
+ user who has CREATE privilege on the current
+ database. Modules that are trusted are identified as such in the
+ sections that follow. Generally, trusted modules are ones that cannot
+ provide access to outside-the-database functionality.
+
+
Beaucoup de modules vous permettent d'installer leurs objets dans le schéma
de votre choix. Pour cela, ajoutez SCHEMA
@@ -80,22 +89,6 @@ CREATE EXTENSION nom_module;
de création par défaut, qui est par défaut public.
-
- Si votre base de données a été mise à jour par une sauvegarde puis un
- rechargement à partir d'une version antérieure à la 9.1 et que vous avez
- utilisé la version antérieure du module, vous devez utiliser à la place
-
-
-CREATE EXTENSION nom_module FROM unpackaged;
-
-
- Ceci mettra à jour les objets pré-9.1 du module dans une
- extension propre. Les prochaines mises à jour du
- module seront gérées par . Pour plus
- d'informations sur les mises à jour d'extensions, voir
- .
-
-
Néanmoins, notez que certains de ces modules ne sont pas des
extensions dans ce sens, mais sont chargés sur le serveur
diff --git a/postgresql/cube.xml b/postgresql/cube.xml
index 84dd6ff7a..177f404bf 100644
--- a/postgresql/cube.xml
+++ b/postgresql/cube.xml
@@ -11,6 +11,12 @@
représenter des cubes à plusieurs dimensions.
+
+ This module is considered trusted, that is, it can be
+ installed by non-superusers who have CREATE privilege
+ on the current database.
+
+
Syntaxe
@@ -106,115 +112,112 @@
Utilisation
- affiche les opérateurs fournis par le
- type cube.
+ affiche les opérateurs spécialisés
+ fournis par le type cube.
Opérateurs pour cube
-
+
- Opérateur
- Résultat
- Description
+
+ Operator
+
+
+ Description
+
- a = b
- boolean
- Les cubes a et b sont identiques.
-
-
-
- a && b
- boolean
- Les cubes a et b se chevauchent.
-
-
-
- a @> b
- boolean
- Le cube a contient le cube b.
-
-
-
- a <@ b
- boolean
- Le cube a est contenu dans le cube b.
-
-
-
- a < b
- boolean
- Le cube a est inférieur au cube b.
+
+ cube&&cube
+ boolean
+
+
+ Do the cubes overlap?
+
- a <= b
- boolean
- Le cube a est inférieur au égal au cube b.
+
+ cube@>cube
+ boolean
+
+
+ Does the first cube contain the second?
+
- a > b
- boolean
- Le cube a est plus grand que le cube b.
+
+ cube<@cube
+ boolean
+
+
+ Is the first cube contained in the second?
+
- a >= b
- boolean
- Le cube a est plus grand ou égam au cube b.
+
+ cube->integer
+ float8
+
+
+ Extracts the n-th coordinate of the cube
+ (counting from 1).
+
- a <> b
- boolean
- Le cube a est différent du cube b.
+
+ cube~>integer
+ float8
+
+
+ Extracts the n-th coordinate of the cube,
+ counting in the following way: n = 2
+ * k - 1 means lower bound
+ of k-th dimension, n = 2
+ * k means upper bound of
+ k-th dimension. Negative
+ n denotes the inverse value of the corresponding
+ ositive coordinate. This operator is designed for KNN-GiST support.
+
- a -> n
- float8
- Obtient la n-ième coordonnée du cube
- (compteur à partir de 1).
+
+ cube<->cube
+ float8
+
+
+ Computes the Euclidean distance between the two cubes.
+
- a ~> n
- float8
-
- Obtient la n-ième coordonnée du cube de la
- façon suivante : n = 2 * k - 1 signifie la limite basse de la
- k-ième dimension, n = 2 * k signifie la
- limite haute de la k-ième dimension. Une
- valeur négative pour n indique la valeur
- inverse de la coordonnée positive correspondante. Cet opérateur est
- conçu pour le support de KNN-GiST.
-
+
+ cube<#>cube
+ float8
+
+
+ Computes the taxicab (L-1 metric) distance between the two cubes.
+
- a <-> b
- float8
- Distance euclidienne entre a et b.
+
+ cube<=>cube
+ float8
+
+
+ Computes the Chebyshev (L-inf metric) distance between the two cubes.
+
-
-
- a <#> b
- float8
- Distance Taxicab (métrique L-1) entre a et b.
-
-
-
- a <=> b
- float8
- Distance Chebyshev (métrique L-inf) entre a et b.
-
-
@@ -229,14 +232,15 @@
- Les opérateurs d'ordre scalaire (<,
- >=, etc) n'ont pas réellement de sens pour tout sens
- pratique en dehors de tri. Ces opérateurs comparent tout d'abord les
+ In addition to the above operators, the usual comparison
+ operators shown in are
+ available for type cube. Ces opérateurs comparent tout d'abord les
premiers coordonnées et, si ces derniers sont égaux, comparent les
deuxièmes coordonnées. Ils existent principalement pour supporter la classe
d'opérateur d'index b-tree pour cube, qui peut seulement être
utile par exemple si vous souhaitez une contrainte UNIQUE sur une colonne
cube.
+ Otherwise, this ordering is not of much practical use.
@@ -282,199 +286,269 @@ SELECT c FROM test ORDER BY c ~> 3 DESC LIMIT 5;
Fonctions cube
-
-
-
- Fonction
- Résultat
- Description
- Exemple
-
-
-
-
-
- cube(float8)
- cube
- Crée un cube uni-dimensionnel de coordonnées identiques.
-
-
- cube(1) == '(1)'
-
-
-
-
- cube(float8, float8)
- cube
- Crée un cube uni-dimensionnel.
-
-
- cube(1,2) == '(1),(2)'
-
-
-
-
- cube(float8[])
- cube
- Crée un cube de volume nul en utilisant les coordonnées
- définies par le tableau.
-
-
- cube(ARRAY[1,2]) == '(1,2)'
-
-
-
-
- cube(float8[], float8[])
- cube
- Crée un cube avec les coordonnées haut droit et
- bas gauche définies par deux tableaux de flottants, obligatoirement
- de même taille.
-
-
- cube(ARRAY[1,2], ARRAY[3,4]) == '(1,2),(3,4)'
-
-
-
-
-
- cube(cube, float8)
- cube
- Créer un nouveau cube en ajoutant une dimension à un cube
- existant, avec les mêmes valeurs pour les deux points finaux de la
- nouvelle coordonnée. Ceci est utile pour construire des cubes pièce par
- pièce à partir des valeurs calculées.
-
-
- cube('(1,2),(3,4)'::cube, 5) == '(1,2,5),(3,4,5)'
-
-
-
-
- cube(cube, float8, float8)
- cube
- Crée un nouveau cube en ajoutant une dimension à un cube existant.
- Ceci est utile pour construire des cubes pièce par pièce à partir de
- valeurs calculées.
-
-
- cube('(1,2),(3,4)'::cube, 5, 6) == '(1,2,5),(3,4,6)'
-
-
-
-
- cube_dim(cube)
- integer
- Renvoie le nombe de dimensions du cube.
-
-
- cube_dim('(1,2),(3,4)') == '2'
-
-
-
-
- cube_ll_coord(cube, integer)
- float8
- Renvoie la n-ième coordonnée pour le
- coin bas gauche du cube.
-
-
- cube_ll_coord('(1,2),(3,4)', 2) == '2'
-
-
-
-
- cube_ur_coord(cube, integer)
- float8
- Renvoie la n-ième valeur de coordonnée
- pour le coin haut à droite du cube.
-
-
- cube_ur_coord('(1,2),(3,4)', 2) == '4'
-
-
-
-
- cube_is_point(cube)
- boolean
- Renvoie true si le cube est un point, autrement dit si
- les deux coins de définition sont identiques.
-
-
-
-
-
- cube_distance(cube, cube)
- float8
- Renvoie la distance entre deux cubes. Si les deux cubes sont des
- points, il s'agit de la fonction de distance habituelle.
-
-
-
-
-
-
- cube_subset(cube, integer[])
- cube
- Crée un nouveau cube à partir d'un cube existant, en utilisant
- une liste d'index de dimension à partir d'un tableau. Peut être utilisé
- pour extraire les points finaux d'une seule dimension ou pour supprimer
- les dimensions ou pour les réordonner comme souhaité.
-
-
- cube_subset(cube('(1,3,5),(6,7,8)'), ARRAY[2]) == '(3),(7)'
- cube_subset(cube('(1,3,5),(6,7,8)'), ARRAY[3,2,1,1]) ==
- '(5,3,1,1),(8,7,6,6)'
-
-
-
-
- cube_union(cube, cube)
- cube
- Produit l'union de deux cubes.
-
-
-
-
-
-
- cube_inter(cube, cube)
- cube
- Produit l'intersection de deux cubes.
-
-
-
-
-
-
- cube_enlarge(c cube, r double, n integer)
- cube
- Augmente la taille du cube suivant le radius
- r spécifié sur au moins
- n dimensions. Si le radius est négatif, le
- cube est réduit. Toutes les dimensions définies sont modifiées par le
- radius r. Les coordonnées bas-gauche sont
- réduites de r et les coordonnées haut-droite
- sont augmentées de r. Si une coordonnée bas-
- gauche est augmentée suffisamment pour être plus importante que la
- coordonnées haute-droite (ceci peut seulement survenir quand
- r < 0), alors les deux coordonnées sont
- configurées avec leur moyenne. Si n est
- supérieur au nombre de dimensions définies et que le cube est grossi
- (r > 0), alors les dimensions
- supplémentaires sont ajoutées pour tout
- n ; 0 est utilisé comme valeur initiale
- pour les coordonnées supplémentaires. Cette fonction est utile pour
- créer les bounding boxes autour d'un point permettant de
- chercher les points les plus proches.
-
-
- cube_enlarge('(1,2),(3,4)', 0.5, 3) ==
- '(0.5,1.5,-0.5),(3.5,4.5,0.5)'
-
-
-
-
+
+
+
+
+ Fonction
+
+
+ Description
+
+
+ Exemple(s)
+
+
+
+
+
+
+
+ cube ( float8 )
+ cube
+
+
+ Crée un cube uni-dimensionnel de coordonnées identiques.
+
+
+ cube(1)
+ (1)
+
+
+
+
+
+ cube ( float8, float8 )
+ cube
+
+
+ Crée un cube uni-dimensionnel.
+
+
+ cube(1,2)
+ (1),(2)
+
+
+
+
+
+ cube ( float8[] )
+ cube
+
+
+ Crée un cube de volume nul en utilisant les coordonnées
+ définies par le tableau.
+
+
+ cube(ARRAY[1,2,3])
+ (1, 2, 3)
+
+
+
+
+
+ cube ( float8[], float8[] )
+ cube
+
+
+ Crée un cube avec les coordonnées haut droit et
+ bas gauche définies par deux tableaux de flottants, obligatoirement
+ de même taille.
+
+
+ cube(ARRAY[1,2], ARRAY[3,4])
+ (1, 2),(3, 4)
+
+
+
+
+
+ cube ( cube, float8 )
+ cube
+
+
+ Crée un nouveau cube en ajoutant une dimension à un cube
+ existant, avec les mêmes valeurs pour les deux points finaux de la
+ nouvelle coordonnée. Ceci est utile pour construire des cubes pièce par
+ pièce à partir de valeurs calculées.
+
+
+ cube('(1,2),(3,4)'::cube, 5)
+ (1, 2, 5),(3, 4, 5)
+
+
+
+
+
+ cube ( cube, float8, float8 )
+ cube
+
+
+ Crée un nouveau cube en ajoutant une dimension à un cube existant.
+ Ceci est utile pour construire des cubes pièce par pièce à partir de
+ valeurs calculées.
+
+
+ cube('(1,2),(3,4)'::cube, 5, 6)
+ (1, 2, 5),(3, 4, 6)
+
+
+
+
+
+ cube_dim ( cube )
+ integer
+
+
+ Renvoie le nombe de dimensions du cube.
+
+
+ cube_dim('(1,2),(3,4)')
+ 2
+
+
+
+
+
+ cube_ll_coord ( cube, integer )
+ float8
+
+
+ Renvoie la n-ième valeur de coordonnée pour
+ le coin bas gauche du cube.
+
+
+ cube_ll_coord('(1,2),(3,4)', 2)
+ 2
+
+
+
+
+
+ cube_ur_coord ( cube, integer )
+ float8
+
+
+ Renvoie la n-ième valeur de coordonnée pour
+ le coin haut droite du cube.
+
+
+ cube_ur_coord('(1,2),(3,4)', 2)
+ 4
+
+
+
+
+
+ cube_is_point ( cube )
+ boolean
+
+
+ Renvoie true si le cube est un point, autrement dit si
+ les deux coins de définition sont identiques.
+
+
+ cube_is_point(cube(1,1))
+ t
+
+
+
+
+
+ cube_distance ( cube, cube )
+ float8
+
+
+ Renvoie la distance entre deux cubes. Si les deux cubes sont des
+ points, il s'agit de la fonction de distance habituelle.
+
+
+ cube_distance('(1,2)', '(3,4)')
+ 2.8284271247461903
+
+
+
+
+
+ cube_subset ( cube, integer[] )
+ cube
+
+
+ Crée un nouveau cube à partir d'un cube existant, en utilisant
+ une liste d'index de dimension à partir d'un tableau. Peut être utilisé
+ pour extraire les points finaux d'une seule dimension ou pour supprimer
+ les dimensions, ou pour les réordonner comme souhaité.
+
+
+ cube_subset(cube('(1,3,5),(6,7,8)'), ARRAY[2])
+ (3),(7)
+
+
+ cube_subset(cube('(1,3,5),(6,7,8)'), ARRAY[3,2,1,1])
+ (5, 3, 1, 1),(8, 7, 6, 6)
+
+
+
+
+
+ cube_union ( cube, cube )
+ cube
+
+
+ Produit l'union de deux cubes.
+
+
+ cube_union('(1,2)', '(3,4)')
+ (1, 2),(3, 4)
+
+
+
+
+
+ cube_inter ( cube, cube )
+ cube
+
+
+ Produit l'intersection de deux cubes.
+
+
+ cube_inter('(1,2)', '(3,4)')
+ (3, 4),(1, 2)
+
+
+
+
+
+ cube_enlarge ( ccube, rdouble, ninteger )
+ cube
+
+
+ Augmente la taille du cube suivant le radius
+ r spécifié sur au moins
+ n dimensions. Si le radius est négatif, le
+ cube est réduit. Toutes les dimensions définies sont modifiées par le
+ radius r. Les coordonnées bas-gauche sont
+ réduites de r et les coordonnées haut-droite
+ sont augmentées de r. Si une coordonnée bas-
+ gauche est augmentée suffisamment pour être plus importante que la
+ coordonnée haute-droite (ceci peut seulement survenir quand
+ r < 0), alors les deux coordonnées sont
+ configurées avec leur moyenne. Si n est
+ supérieur au nombre de dimensions définies et que le cube est grossi
+ (r > 0), alors les dimensions
+ supplémentaires sont ajoutées pour tout
+ n ; 0 est utilisé comme valeur initiale
+ pour les coordonnées supplémentaires. Cette fonction est utile pour
+ créer les bounding boxes autour d'un point permettant de
+ chercher les points les plus proches.
+
+
+ cube_enlarge('(1,2),(3,4)', 0.5, 3)
+ (0.5, 1.5, -0.5),(3.5, 4.5, 0.5)
+
+
+
+
diff --git a/postgresql/datatype.xml b/postgresql/datatype.xml
index 21ab294d1..0420bd541 100644
--- a/postgresql/datatype.xml
+++ b/postgresql/datatype.xml
@@ -35,7 +35,7 @@
-
+ Nom
@@ -205,6 +205,12 @@
Séquence numérique de journal (Log Sequence Number) de PostgreSQL
+
+ pg_snapshot
+
+ user-level transaction ID snapshot
+
+
point
@@ -286,7 +292,8 @@
txid_snapshot
- image de l'identifiant de transaction au niveau utilisateur
+ image de l'identifiant de transaction au niveau utilisateur
+ (deprecated; see pg_snapshot)
@@ -350,10 +357,10 @@
Types numériques
-
-
-
-
+
+
+
+ Nom
@@ -994,10 +1001,10 @@ ALTER SEQUENCE nom_de_table_Types monétaires
-
-
-
-
+
+
+
+ Nom
@@ -1355,7 +1362,7 @@ SELECT b, char_length(b) FROM test2;
Types de données binaires
-
+
@@ -1473,6 +1480,11 @@ SELECT '\xDEADBEEF';
Octets littéraux bytea à échapper
+
+
+
+
+ Valeur décimale de l'octet
@@ -1488,7 +1500,7 @@ SELECT '\xDEADBEEF';
0octet zéro'\000'
- SELECT '\000'::bytea;
+ '\000'::bytea;\x00
@@ -1496,7 +1508,7 @@ SELECT '\xDEADBEEF';
39apostrophe'''' ou '\047'
- SELECT ''''::bytea;
+ ''''::bytea;\x27
@@ -1504,7 +1516,7 @@ SELECT '\xDEADBEEF';
92antislash'\\' or '\134'
- SELECT '\\'::bytea;
+ '\\'::bytea;\x5c
@@ -1512,7 +1524,7 @@ SELECT '\xDEADBEEF';
de 0 à 31 et de 127 à 255octets non affichables'\xxx' (valeur octale)
- SELECT '\001'::bytea;
+ '\001'::bytea;\x01
@@ -1571,6 +1583,11 @@ SELECT 'abc \153\154\155 \052\251\124'::bytea;
Octets échappés en sortie pour bytea
+
+
+
+
+ Valeur décimale de l'octet
@@ -1587,7 +1604,7 @@ SELECT 'abc \153\154\155 \052\251\124'::bytea;
92antislash\\
- SELECT '\134'::bytea;
+ '\134'::bytea;\\
@@ -1595,7 +1612,7 @@ SELECT 'abc \153\154\155 \052\251\124'::bytea;
0 à 31 et 127 à 255octetsnon affichables\xxx (valeur octale)
- SELECT '\001'::bytea;
+ '\001'::bytea;\001
@@ -1603,7 +1620,7 @@ SELECT 'abc \153\154\155 \052\251\124'::bytea;
32 à 126octets affichablesReprésentation dans le jeu de caractères du client
- SELECT '\176'::bytea;
+ '\176'::bytea;~
@@ -1843,7 +1860,7 @@ SELECT 'abc \153\154\155 \052\251\124'::bytea;
Saisie de date
-
+ Exemple
@@ -1967,8 +1984,8 @@ SELECT 'abc \153\154\155 \052\251\124'::bytea;
Types d'adresses réseau
+
+
+ Nom
@@ -3649,8 +3675,8 @@ SELECT personne.nom, vacances.nombre_de_semaines FROM personne, vacances
adresse/y
où
adresse
- est une adresse IPv4 ou IPv6 et
- y
+ est l'adresse la plus basse du réseau en IPv4 ou en IPv6
+ et y
est le nombre de bits du masque réseau.
Si y
est omis, alors le masque vaut 32 pour IPv4 et
@@ -3762,12 +3788,12 @@ SELECT personne.nom, vacances.nombre_de_semaines FROM personne, vacances
2001:4f8:3:ba::/642001:4f8:3:ba::/64
- 2001:4f8:3:ba::/64
+ 2001:4f8:3:ba/64
- 2001:4f8:3:ba:2e0:81ff:fe22:d1f1/128
- 2001:4f8:3:ba:2e0:81ff:fe22:d1f1/128
- 2001:4f8:3:ba:2e0:81ff:fe22:d1f1
+ 2001:4f8:3:ba:&zwsp;2e0:81ff:fe22:d1f1/128
+ 2001:4f8:3:ba:&zwsp;2e0:81ff:fe22:d1f1/128
+ 2001:4f8:3:ba:&zwsp;2e0:81ff:fe22:d1f1/128::ffff:1.2.3.0/120
@@ -3908,10 +3934,14 @@ opposition de deux choses -->
minuscules sont acceptées pour les caractères de
a jusqu'à f. La sortie sera
toujours au même format que le premier exemple.
+
+
Les six derniers formats en entrée qui sont mentionnés au-dessus ne
font partie d'aucun standard.
+
+
Pour convertir une adresse MAC traditionnelle de 48 bits au format
EUI-48 vers le format modifié EUI-64 pour pouvoir être incluse dans la
partie hôte d'une adresse IPv6, utilisez
@@ -4315,14 +4345,8 @@ a0ee-bc99-9c0b-4ef8-bb6d-6bb9-bd38-0a11
- Pour générer des UUID, le module
- fournit des fonctions qui implémentent
- les algorithmes standards.
- Le module fournit également une fonction de
- génération d'UUID aléatoires.
- Sinon, les UUID
- peuvent être générés par des applications clientes ou par d'autres
- bibliothèques appelées par une fonction serveur.
+ See for how to generate a UUID in
+ PostgreSQL.
@@ -4606,11 +4630,23 @@ INSERT INTO mytable VALUES(-1); -- fails
- regproc
+ regclass
- regprocedure
+ regcollation
+
+
+
+ regconfig
+
+
+
+ regdictionary
+
+
+
+ regnamespace
@@ -4622,23 +4658,23 @@ INSERT INTO mytable VALUES(-1); -- fails
- regclass
+ regproc
- regtype
+ regprocedure
- regconfig
+ regrole
- regdictionary
+ regtype
- xid
+ xid8
@@ -4649,15 +4685,17 @@ INSERT INTO mytable VALUES(-1); -- fails
tid
+
+ xid
+
+
Les identifiants d'objets (OID) sont utilisés en interne par
PostgreSQL comme clés primaires de
différentes tables système. Le type oid représente un
identifiant d'objet. Il existe aussi différents types alias pour un
- oid : regproc, regprocedure,
- regoper, regoperator, regclass,
- regtype, regrole, regnamespace,
- regconfig et regdictionary. Le oid nommés
+ regquelquechose. Le en donne un aperçu.
@@ -4725,17 +4763,38 @@ WHERE attrelid = (SELECT oid FROM pg_class WHERE relname = 'ma_table');
- regproc
- pg_proc
- nom de fonction
- sum
+ regclass
+ pg_class
+ relation name
+ pg_type
- regprocedure
- pg_proc
- fonction avec types d'arguments
- sum(int4)
+ regcollation
+ pg_collation
+ collation name
+ "POSIX"
+
+
+
+ regconfig
+ pg_ts_config
+ text search configuration
+ english
+
+
+
+ regdictionary
+ pg_ts_dict
+ text search dictionary
+ simple
+
+
+
+ regnamespace
+ pg_namespace
+ namespace name
+ pg_catalog
@@ -4749,21 +4808,22 @@ WHERE attrelid = (SELECT oid FROM pg_class WHERE relname = 'ma_table');regoperatorpg_operatoropérateur avec types d'arguments
- *(integer,integer) ou -(NONE,integer)
+ *(integer,&zwsp;integer)
+ ou -(NONE,&zwsp;integer)
- regclass
- pg_class
- nom de relation
- pg_type
+ regproc
+ pg_proc
+ function name
+ sum
- regtype
- pg_type
- nom de type de données
- integer
+ regprocedure
+ pg_proc
+ function with argument types
+ sum(int4)
@@ -4774,24 +4834,10 @@ WHERE attrelid = (SELECT oid FROM pg_class WHERE relname = 'ma_table');
- regnamespace
- pg_namespace
- nom de schéma
- pg_catalog
-
-
-
- regconfig
- pg_ts_config
- configuration de la recherche plein texte
- english
-
-
-
- regdictionary
- pg_ts_dict
- dictionnaire de la recherche plein texte
- simple
+ regtype
+ pg_type
+ data type name
+ integer
@@ -4839,6 +4885,9 @@ WHERE attrelid = (SELECT oid FROM pg_class WHERE relname = 'ma_table');xmin et
xmax. Les identifiants de transactions sont
stockés sur 32 bits.
+ In some contexts, a 64-bit variant xid8 is used. Unlike
+ xid values, xid8 values increase strictly
+ monotonically and cannot be reused in the lifetime of a database cluster.
@@ -4863,7 +4912,7 @@ WHERE attrelid = (SELECT oid FROM pg_class WHERE relname = 'ma_table');
- pg_lsn Type
+ Type pg_lsnpg_lsn
@@ -4921,6 +4970,22 @@ WHERE attrelid = (SELECT oid FROM pg_class WHERE relname = 'ma_table');anyrange
+
+ anycompatible
+
+
+
+ anycompatiblearray
+
+
+
+ anycompatiblenonarray
+
+
+
+ anycompatiblerange
+
+
void
@@ -4949,6 +5014,10 @@ WHERE attrelid = (SELECT oid FROM pg_class WHERE relname = 'ma_table');fdw_handler
+
+ table_am_handler
+
+
index_am_handler
@@ -4969,10 +5038,6 @@ WHERE attrelid = (SELECT oid FROM pg_class WHERE relname = 'ma_table');unknown
-
- opaque
-
-
Le système de types de PostgreSQL
contient un certain nombre de types à usage spécial qui sont
@@ -4989,7 +5054,7 @@ WHERE attrelid = (SELECT oid FROM pg_class WHERE relname = 'ma_table');Pseudo-Types
-
+ Nom
@@ -5040,6 +5105,35 @@ WHERE attrelid = (SELECT oid FROM pg_class WHERE relname = 'ma_table');).
+
+ anycompatible
+ Indicates that a function accepts any data type,
+ with automatic promotion of multiple arguments to a common data type
+ (see ).
+
+
+
+ anycompatiblearray
+ Indicates that a function accepts any array data type,
+ with automatic promotion of multiple arguments to a common data type
+ (see ).
+
+
+
+ anycompatiblenonarray
+ Indicates that a function accepts any non-array data type,
+ with automatic promotion of multiple arguments to a common data type
+ (see ).
+
+
+
+ anycompatiblerange
+ Indicates that a function accepts any range data type,
+ with automatic promotion of multiple arguments to a common data type
+ (see and
+ ).
+
+
cstringIndique qu'une fonction accepte ou retourne une chaîne de caractères
@@ -5064,6 +5158,11 @@ WHERE attrelid = (SELECT oid FROM pg_class WHERE relname = 'ma_table');fdw_handler.
+
+ table_am_handler
+ A table access method handler is declared to return table_am_handler.
+
+
index_am_handlerUn gestionnaire pour une méthode d'accès d'index est déclaré
@@ -5109,12 +5208,6 @@ WHERE attrelid = (SELECT oid FROM pg_class WHERE relname = 'ma_table');Identifie un type non encore résolu, par exemple une chaîne de
texte non décorée.
-
-
- opaque
- Un type de données obsolète qui servait précédemment pour
- beaucoup des usages cités ci-dessus.
-
@@ -5135,9 +5228,8 @@ WHERE attrelid = (SELECT oid FROM pg_class WHERE relname = 'ma_table');trigger ou event_trigger lorsque la fonction est
utilisée respectivement comme trigger ou triggers d'événement).
Certains supportent également les fonctions polymorphes qui utilisent les
- types anyelement,
- anyarray, anynonarray, anyenum et
- anyrange.
+ polymorphic pseudo-types, which are shown above and discussed
+ in detail in .
diff --git a/postgresql/datetime.xml b/postgresql/datetime.xml
index 8c06e8260..dc99c875b 100644
--- a/postgresql/datetime.xml
+++ b/postgresql/datetime.xml
@@ -184,7 +184,7 @@
- Les années du calendrier Grégorien AD 1-99 peuvent être saisie avec 4
+ Les années du calendrier Grégorien AD 1–99 peuvent être saisie avec 4
chiffres, deux zéros en tête (0099 pour
AD 99, par exemple).
@@ -694,9 +694,9 @@ di lu ma me je ve sa
type de calendrier, non relatif au calendrier Julien, malgré la
similarité du nom.
Le système de date Julien a été inventé par le précepteur
- français Joseph Justus Scaliger (1540-1609) et tient probablement son nom
+ français Joseph Justus Scaliger (1540–1609) et tient probablement son nom
du père de Scaliger, le précepteur italien Julius Caesar Scaliger
- (1484-1558). Dans le système de date Julien, chaque jour est un nombre
+ (1484–1558). Dans le système de date Julien, chaque jour est un nombre
séquentiel, commençant à partir de JD 0, appelé quelque fois
la date Julien. JD 0 correspond au 1er janvier
4713 avant JC dans le calendrier Julien, ou au 24 novembre 4714 avant JC
diff --git a/postgresql/dblink.xml b/postgresql/dblink.xml
index 9f4ee41c9..3ab1296c5 100644
--- a/postgresql/dblink.xml
+++ b/postgresql/dblink.xml
@@ -156,7 +156,6 @@ SELECT dblink_connect('dbname=postgres options=-csearch_path=');
-- cela fonctionne correctement
-- Sinon, vous recevrez le message d'erreur suivant provenant de
-- dblink_connect() :
- -- ----------------------------------------------------------------------
-- ERROR: password is required
-- DETAIL: Non-superuser cannot connect if the server does not request a password.
-- HINT: Target server's authentication method must be changed.
diff --git a/postgresql/ddl.xml b/postgresql/ddl.xml
index ab6bab05d..88d288140 100644
--- a/postgresql/ddl.xml
+++ b/postgresql/ddl.xml
@@ -1648,7 +1648,10 @@ ALTER TABLE produits ADD FOREIGN KEY (id_groupe_produit) REFERENCES groupes_prod
- Le droit de modifier ou de détruire un objet est le privilège du seul propriétaire.
+ The right to modify or destroy an object is inherent in being the
+ object's owner, and cannot be granted or revoked in itself.
+ (However, like all privileges, that right can be inherited by
+ members of the owning role; see .)
@@ -1684,16 +1687,9 @@ ALTER TABLE nom_table OWNER TO nouveau_p
- Pour révoquer un privilège, on utilise la commande bien nommée
+ Pour révoquer un privilège précédemment donné, on utilise la commande bien nommée
, comme dans l'exemple ci-dessous :
REVOKE ALL ON comptes FROM PUBLIC;
- Les privilèges spéciaux du propriétaire de l'objet (c'est-à-dire le droit
- d'exécuter DROP, GRANT,
- REVOKE, etc.) appartiennent toujours implicitement au
- propriétaire. Ils ne peuvent être ni
- accordés ni révoqués. Mais le propriétaire de l'objet peut choisir
- de révoquer ses propres droits ordinaires pour, par exemple, mettre
- une table en lecture seule pour lui-même et pour les autres.
@@ -1709,6 +1705,13 @@ ALTER TABLE nom_table OWNER TO nouveau_p
.
+
+ An object's owner can choose to revoke their own ordinary privileges,
+ for example to make a table read-only for themselves as well as others.
+ But owners are always treated as holding all grant options, so they
+ can always re-grant their own privileges.
+
+
Les privilèges disponibles sont :
@@ -1812,7 +1815,8 @@ ALTER TABLE nom_table OWNER TO nouveau_p
Pour les bases de données, autorise la création de nouveaux schémas
- et publications dans la base.
+ et publications dans la base, and allows trusted extensions to be installed within
+ the database.
Pour les schémas, autorise la création de nouveaux objets dans le
@@ -1824,7 +1828,10 @@ ALTER TABLE nom_table OWNER TO nouveau_p
Pour les tablespaces, permet de créer des tables, index et fichiers
temporaires dans le tablespace, et de créer des bases de données
- ayant ce tablespace comme tablespace par défaut. (Notez que révoquer
+ ayant ce tablespace comme tablespace par défaut.
+
+
+ Notez que révoquer
ce privilège ne modifiera pas l'emplacement des objets.)
@@ -1956,6 +1963,9 @@ ALTER TABLE nom_table OWNER TO nouveau_p
Abréviations des privilèges dans les ACL
+
+
+ Privilège
@@ -2061,6 +2071,10 @@ ALTER TABLE nom_table OWNER TO nouveau_p
Résumé des privilèges d'accès
+
+
+
+ Type d'objet
@@ -3502,15 +3516,7 @@ VALUES ('Albany', NULL, NULL, 'NY');
sont accédées via la table villes. Ceci préserve
l'apparence que les données proviennent (aussi) de la table parent. Mais la
table capitales ne pouvait pas être mise à jour
- directement sans droit supplémentaire. Deux exceptions à
- cette règle sont TRUNCATE et LOCK
- TABLE, où les droits sur les tables filles sont toujours
- vérifiées qu'elles soient traitées directement ou par récursivité via les
- commandes réalisées sur la table parent.
-
-
-
- De façon similaire, les politiques
+ directement sans droit supplémentaire. De façon similaire, les politiques
de sécurité au niveau ligne de la table parent (voir ) sont appliquées aux lignes provenant des
tables filles avec une requête héritée. Les politiques de tables enfant
diff --git a/postgresql/dict-int.xml b/postgresql/dict-int.xml
index af8d9956b..80652375f 100644
--- a/postgresql/dict-int.xml
+++ b/postgresql/dict-int.xml
@@ -15,10 +15,16 @@
grandement la performance de la recherche.
+
+ This module is considered trusted, that is, it can be
+ installed by non-superusers who have CREATE privilege
+ on the current database.
+
+
Configuration
- Le dictionnaire accepte deux options :
+ Le dictionnaire accepte trois options :
@@ -42,6 +48,15 @@
pas être recherché.
+
+
+ The absval parameter specifies whether leading
+ + or -
+ signs should be removed from integer words. The default
+ is false. When true, the sign is
+ removed before maxlen is applied.
+
+
diff --git a/postgresql/docguide.xml b/postgresql/docguide.xml
index b1b46e834..6d96eb6a9 100644
--- a/postgresql/docguide.xml
+++ b/postgresql/docguide.xml
@@ -91,7 +91,7 @@
Il s'agit de la définition de DocBook elle-même. C'est actuellement la
- version 4.2 qui est utilisée. Vous avez besoin de la variante
+ version 4.5 qui est utilisée. Vous avez besoin de la variante
XML de la DTD DocBook, et non pas SGML, de
même version. Ils seront généralement dans des paquets séparés.
@@ -227,7 +227,7 @@ pkg install docbook-xml docbook-xsl fop libxslt
Si vous utilisez MacPorts, voici comment configurer cela :
-sudo port install docbook-xml-4.2 docbook-xsl fop
+sudo port install docbook-xml-4.5 docbook-xsl fop
Si vous utilisez Homebrew, utilisez ceci :
@@ -283,7 +283,7 @@ make install
Récupérer la distribution DocBook
+ url="http://www.docbook.org/sgml/4.5/docbook-4.2.zip">DocBook
V4.2.
@@ -396,6 +396,13 @@ checking for fop... fop
doc/src/sgml$ make STYLE=website html
+
+
+ If the STYLE=website option is used, the generated HTML
+ files include references to stylesheets hosted on postgresql.org and
+ require network access to view.
+
diff --git a/postgresql/earthdistance.xml b/postgresql/earthdistance.xml
index 93fdb1b2c..8fb1245b9 100644
--- a/postgresql/earthdistance.xml
+++ b/postgresql/earthdistance.xml
@@ -28,6 +28,12 @@
doit être considéré.)
+
+ This module is considered trusted, that is, it can be
+ installed by non-superusers who have CREATE privilege
+ on the current database.
+
+
Distances sur Terre à partir de cubes
@@ -68,74 +74,118 @@
Fonctions earthdistance par cubes
-
-
-
- Fonction
- Retour
- Description
-
-
-
-
- earth()earth
- float8
- Renvoie le rayon estimé de la Terre.
-
-
- sec_to_gc(float8)sec_to_gc
- float8
- Convertit la distance en ligne droite (sécant) entre deux
- points à la surface de la Terre en distane circulaire.
-
-
-
- gc_to_sec(float8)gc_to_sec
- float8
- Convertit la distance circulaire entre deux points à la surface
- de la Terre en une distance en ligne droite (sécant).
-
-
-
- ll_to_earth(float8, float8)ll_to_earth
- earth
- Renvoie l'emplacement d'un point à la surface de la Terre étant
- données sa latitude (argument 1) et sa longitude (argument 2) en degrés.
-
-
-
- latitude(earth)latitude
- float8
- Renvoie la latitude en degrés d'un point à la surface de la
- Terre.
-
-
-
- longitude(earth)longitude
- float8
- Renvoie la longitude en degrés d'un point à la surface de la
- Terre.
-
-
-
- earth_distance(earth, earth)earth_distance
- float8
- Renvoie la distance circulaire entre deux points à la surface
- de la Terre.
-
-
-
- earth_box(earth, float8)earth_box
- cube
- Renvoie une boîte autorisant une recherche par index avec
- l'opérateur @> du type cube pour les
- points situés au maximum à une distance circulaire donnée d'un
- emplacement. Certains points de cette boîte sont plus éloignés que
- la distance circulaire indiquée. Une deuxième vérification utilisant
- earth_distance doit, donc, être incluse dans la requête.
-
-
-
+
+
+
+
+ Fonction
+
+
+ Description
+
+
+
+
+
+
+
+ earth
+ earth ()
+ float8
+
+
+ Renvoie le rayon estimé de la Terre.
+
+
+
+
+
+ sec_to_gc
+ sec_to_gc ( float8 )
+ float8
+
+
+ Convertit la distance en ligne droite (sécant) entre deux
+ points à la surface de la Terre en distane circulaire.
+
+
+
+
+
+ gc_to_sec
+ gc_to_sec ( float8 )
+ float8
+
+
+ Convertit la distance circulaire entre deux points à la surface
+ de la Terre en une distance en ligne droite (sécant).
+
+
+
+
+
+ ll_to_earth
+ ll_to_earth ( float8, float8 )
+ earth
+
+
+ Renvoie l'emplacement d'un point à la surface de la Terre étant
+ données sa latitude (argument 1) et sa longitude (argument 2) en degrés.
+
+
+
+
+
+ latitude
+ latitude ( earth )
+ float8
+
+
+ Renvoie la latitude en degrés d'un point à la surface de la
+ Terre.
+
+
+
+
+
+ longitude
+ longitude ( earth )
+ float8
+
+
+ Renvoie la longitude en degrés d'un point à la surface de la
+ Terre.
+
+
+
+
+
+ earth_distance
+ earth_distance ( earth, earth )
+ float8
+
+
+ Renvoie la distance circulaire entre deux points à la surface
+ de la Terre.
+
+
+
+
+
+ earth_box
+ earth_box ( earth, float8 )
+ cube
+
+
+ Renvoie une boîte autorisant une recherche par index avec
+ l'opérateur @> du type cube pour les
+ points situés au maximum à une distance circulaire donnée d'un
+ emplacement. Certains points de cette boîte sont plus éloignés que
+ la distance circulaire indiquée. Une deuxième vérification utilisant
+ earth_distance doit, donc, être incluse dans la requête.
+
+
+
@@ -160,24 +210,29 @@
Opérateurs earthdistance par points
-
-
-
- Opérateur
- Retour
- Description
-
-
-
-
-
- point<@>point
- float8
- Donne la distance en miles entre deux points à la surface de
- la Terre.
-
-
-
+
+
+
+
+ Opérateur
+
+
+ Description
+
+
+
+
+
+
+ point<@>point
+ float8
+
+
+ Donne la distance en miles entre deux points à la surface de
+ la Terre.
+
+
+
diff --git a/postgresql/ecpg.xml b/postgresql/ecpg.xml
index 5db1ea348..1203d90ad 100644
--- a/postgresql/ecpg.xml
+++ b/postgresql/ecpg.xml
@@ -1,6 +1,6 @@
- ECPG SQL embarqué en C
+ ECPG — SQL embarqué en CSQL embarquéen CC
@@ -1038,7 +1038,7 @@ struct varchar_var { int len; char arr[180]; } var;
- timestamp, date
+ timestamp, date
Voici une méthode pour manipuler des variables timestamp
@@ -1201,7 +1201,7 @@ EXEC SQL END DECLARE SECTION;
- bytea
+ bytea
La gestion du type bytea est aussi similaire au type
@@ -2997,7 +2997,7 @@ int PGTYPEStimestamp_fmt_asc(timestamp *ts, char *output, int str_len, char *fmt
%d - est remplacé par le jour du mois sous forme de
- nombre décimal (01-31).
+ nombre décimal (01–31).
@@ -3033,7 +3033,7 @@ int PGTYPEStimestamp_fmt_asc(timestamp *ts, char *output, int str_len, char *fmt
%e - est remplacé par le jour du mois comme nombre décimal
- (1-31); les chiffres seuls sont précédés par un blanc.
+ (1–31) ; les chiffres seuls sont précédés par un blanc.
@@ -3052,13 +3052,13 @@ int PGTYPEStimestamp_fmt_asc(timestamp *ts, char *output, int str_len, char *fmt
%g - est remplacé par la même année que dans
%G, mais comme un nombre décimal sans le siècle.
- (00-99).
+ (00–99).
%H - est remplacé par l'heure (horloge sur 24 heures) comme
- nombre décimal (00-23).
+ nombre décimal (00–23).
@@ -3069,37 +3069,37 @@ int PGTYPEStimestamp_fmt_asc(timestamp *ts, char *output, int str_len, char *fmt
%I - est remplacé par l'heure (horloge sur 12 heures) comme
- nombre décimal(01-12).
+ nombre décimal(01–12).
%j - est remplacé par le jour de l'année comme
- nombre décimal (001-366).
+ nombre décimal (001–366).
%k - est remplacé par l'heure (horloge sur 24 heures) comme
- nombre décimal (0-23); les chiffres seuls sont précédés par un blanc.
+ nombre décimal (0–23) ; les chiffres seuls sont précédés par un blanc.
%l - est remplacé par l'heure (horloge sur 12 heures) comme
- nombre décimal (1-12); les chiffres seuls sont précédés par un blanc.
+ nombre décimal (1–12) ; les chiffres seuls sont précédés par un blanc.
%M - est remplacé par la minute comme
- nombre décimal (00-59).
+ nombre décimal (00–59).
%m - est remplacé par le mois comme nombre décimal
- (01-12).
+ (01–12).
@@ -3132,7 +3132,7 @@ int PGTYPEStimestamp_fmt_asc(timestamp *ts, char *output, int str_len, char *fmt
%S - est remplacé par la seconde comme
- nombre décimal (00-60).
+ nombre décimal (00–60).
@@ -3154,19 +3154,20 @@ int PGTYPEStimestamp_fmt_asc(timestamp *ts, char *output, int str_len, char *fmt
%U - est remplacé par le numéro de la semaine dans
- l'année (Dimanche est le premier jour de la semaine) comme nombre décimal(00-53).
+ l'année (Dimanche est le premier jour de la semaine) comme nombre décimal
+ (00–53).
%u - est remplacé par le jour de la semaine (Lundi comme
- premier jour de la semaine) comme nombre décimal (1-7).
+ premier jour de la semaine) comme nombre décimal (1–7).
%V - est remplacé par le numéro de la semaine dans l'année
- (Lundi est le premier jour de la semaine) comme nombre décimal (01-53).
+ (Lundi est le premier jour de la semaine) comme nombre décimal (01–53).
Si l'année contenant le 1er Janvier a 4 jours ou plus dans la nouvelle année,
alors c'est la semaine numéro 1; sinon, c'est la dernière semaine de l'année
précédente, et la semaine suivante est la semaine 1.
@@ -3181,13 +3182,13 @@ int PGTYPEStimestamp_fmt_asc(timestamp *ts, char *output, int str_len, char *fmt
%W - est remplacé par le numéro de la semaine dans l'année
- (Lundi est le premier jour de la semaine) comme nombre décimal (00-53).
+ (Lundi est le premier jour de la semaine) comme nombre décimal (00–53).
%w - est remplacé par le jour de la semaine (Dimanche comme
- premier jour de la semaine) comme nombre décimal (0-6).
+ premier jour de la semaine) comme nombre décimal (0–6).
@@ -3211,7 +3212,7 @@ int PGTYPEStimestamp_fmt_asc(timestamp *ts, char *output, int str_len, char *fmt
%y - est remplacé par l'année sans le siècle comme
- un nombre décimal (00-99).
+ un nombre décimal (00–99).
@@ -5947,7 +5948,8 @@ ECPG = ecpg
ECPGtransactionStatus(const char *nom_connexion)
retourne l'état de la transaction courante de la connexion identifiée par nom_connexion.
- Voyez et la fonction de la libpq PQtransactionStatus() pour les détails
+ Voyez et la fonction de la libpq
+ pour les détails
à propos des codes d'état retournés.
@@ -8299,7 +8301,7 @@ if (*(int2 *)sqldata->sqlvar[i].sqlind != 0)
sqlformat
- Réservé dans Informix, valeurs de PQfformat() pour le champ.
+ Réservé dans Informix, valeurs de pour le champ.
@@ -8330,7 +8332,7 @@ if (*(int2 *)sqldata->sqlvar[i].sqlind != 0)
sqlxid
- Type étendu du champ, résultat de PQftype().
+ Type étendu du champ, résultat de .
diff --git a/postgresql/errcodes.xml b/postgresql/errcodes.xml
index 42f89c006..bb0f63b97 100644
--- a/postgresql/errcodes.xml
+++ b/postgresql/errcodes.xml
@@ -72,8 +72,8 @@
Codes d'erreur de PostgreSQL
-
-
+
+
diff --git a/postgresql/event-trigger.xml b/postgresql/event-trigger.xml
index 4d7ecf747..d02fa4a66 100644
--- a/postgresql/event-trigger.xml
+++ b/postgresql/event-trigger.xml
@@ -142,13 +142,19 @@
Support des triggers sur évènement par commande
+
+
+
+
+
+ Commande
- ddl_command_start
- ddl_command_end
- sql_drop
- table_rewrite
+ ddl_&zwsp;command_&zwsp;start
+ ddl_&zwsp;command_&zwsp;end
+ sql_&zwsp;drop
+ table_&zwsp;rewriteNotes
@@ -159,7 +165,7 @@
X--
-
+ ALTER COLLATION
@@ -167,7 +173,7 @@
X--
-
+ ALTER CONVERSION
@@ -175,7 +181,7 @@
X--
-
+ ALTER DOMAIN
@@ -183,7 +189,7 @@
X--
-
+ ALTER DEFAULT PRIVILEGES
@@ -191,7 +197,7 @@
X--
-
+ ALTER EXTENSION
@@ -199,7 +205,7 @@
X--
-
+ ALTER FOREIGN DATA WRAPPER
@@ -207,7 +213,7 @@
X--
-
+ ALTER FOREIGN TABLE
@@ -215,7 +221,7 @@
XX-
-
+ ALTER FUNCTION
@@ -223,7 +229,7 @@
X--
-
+ ALTER LANGUAGE
@@ -231,7 +237,7 @@
X--
-
+ ALTER LARGE OBJECT
@@ -239,7 +245,7 @@
X--
-
+ ALTER MATERIALIZED VIEW
@@ -247,7 +253,7 @@
X--
-
+ ALTER OPERATOR
@@ -255,7 +261,7 @@
X--
-
+ ALTER OPERATOR CLASS
@@ -263,7 +269,7 @@
X--
-
+ ALTER OPERATOR FAMILY
@@ -271,7 +277,7 @@
X--
-
+ ALTER POLICY
@@ -279,7 +285,7 @@
X--
-
+ ALTER PROCEDURE
@@ -287,7 +293,7 @@
X--
-
+ ALTER PUBLICATION
@@ -295,7 +301,7 @@
X--
-
+ ALTER SCHEMA
@@ -303,7 +309,7 @@
X--
-
+ ALTER SEQUENCE
@@ -311,7 +317,7 @@
X--
-
+ ALTER SERVER
@@ -319,7 +325,7 @@
X--
-
+ ALTER STATISTICS
@@ -327,7 +333,7 @@
X--
-
+ ALTER SUBSCRIPTION
@@ -335,7 +341,7 @@
X--
-
+ ALTER TABLE
@@ -343,7 +349,7 @@
XXX
-
+ ALTER TEXT SEARCH CONFIGURATION
@@ -351,7 +357,7 @@
X--
-
+ ALTER TEXT SEARCH DICTIONARY
@@ -359,7 +365,7 @@
X--
-
+ ALTER TEXT SEARCH PARSER
@@ -367,7 +373,7 @@
X--
-
+ ALTER TEXT SEARCH TEMPLATE
@@ -375,7 +381,7 @@
X--
-
+ ALTER TRIGGER
@@ -383,7 +389,7 @@
X--
-
+ ALTER TYPE
@@ -391,7 +397,7 @@
X-X
-
+ ALTER USER MAPPING
@@ -399,7 +405,7 @@
X--
-
+ ALTER VIEW
@@ -407,7 +413,7 @@
X--
-
+ COMMENT
@@ -415,7 +421,7 @@
X--
- Seulement pour les objets locaux
+ Seulement pour les objets locauxCREATE ACCESS METHOD
@@ -423,7 +429,7 @@
X--
-
+ CREATE AGGREGATE
@@ -431,7 +437,7 @@
X--
-
+ CREATE CAST
@@ -439,7 +445,7 @@
X--
-
+ CREATE COLLATION
@@ -447,7 +453,7 @@
X--
-
+ CREATE CONVERSION
@@ -455,7 +461,7 @@
X--
-
+ CREATE DOMAIN
@@ -463,7 +469,7 @@
X--
-
+ CREATE EXTENSION
@@ -471,7 +477,7 @@
X--
-
+ CREATE FOREIGN DATA WRAPPER
@@ -479,7 +485,7 @@
X--
-
+ CREATE FOREIGN TABLE
@@ -487,7 +493,7 @@
X--
-
+ CREATE FUNCTION
@@ -495,7 +501,7 @@
X--
-
+ CREATE INDEX
@@ -503,7 +509,7 @@
X--
-
+ CREATE LANGUAGE
@@ -511,7 +517,7 @@
X--
-
+ CREATE MATERIALIZED VIEW
@@ -519,7 +525,7 @@
X--
-
+ CREATE OPERATOR
@@ -527,7 +533,7 @@
X--
-
+ CREATE OPERATOR CLASS
@@ -535,7 +541,7 @@
X--
-
+ CREATE OPERATOR FAMILY
@@ -543,7 +549,7 @@
X--
-
+ CREATE POLICY
@@ -551,7 +557,7 @@
X--
-
+ CREATE PROCEDURE
@@ -559,7 +565,7 @@
X--
-
+ CREATE PUBLICATION
@@ -567,7 +573,7 @@
X--
-
+ CREATE RULE
@@ -575,7 +581,7 @@
X--
-
+ CREATE SCHEMA
@@ -583,7 +589,7 @@
X--
-
+ CREATE SEQUENCE
@@ -591,7 +597,7 @@
X--
-
+ CREATE SERVER
@@ -599,7 +605,7 @@
X--
-
+ CREATE STATISTICS
@@ -607,7 +613,7 @@
X--
-
+ CREATE SUBSCRIPTION
@@ -615,7 +621,7 @@
X--
-
+ CREATE TABLE
@@ -623,7 +629,7 @@
X--
-
+ CREATE TABLE AS
@@ -631,7 +637,7 @@
X--
-
+ CREATE TEXT SEARCH CONFIGURATION
@@ -639,7 +645,7 @@
X--
-
+ CREATE TEXT SEARCH DICTIONARY
@@ -647,7 +653,7 @@
X--
-
+ CREATE TEXT SEARCH PARSER
@@ -655,7 +661,7 @@
X--
-
+ CREATE TEXT SEARCH TEMPLATE
@@ -663,7 +669,7 @@
X--
-
+ CREATE TRIGGER
@@ -671,7 +677,7 @@
X--
-
+ CREATE TYPE
@@ -679,7 +685,7 @@
X--
-
+ CREATE USER MAPPING
@@ -687,7 +693,7 @@
X--
-
+ CREATE VIEW
@@ -695,7 +701,7 @@
X--
-
+ DROP ACCESS METHOD
@@ -703,7 +709,7 @@
XX-
-
+ DROP AGGREGATE
@@ -711,7 +717,7 @@
XX-
-
+ DROP CAST
@@ -719,7 +725,7 @@
XX-
-
+ DROP COLLATION
@@ -727,7 +733,7 @@
XX-
-
+ DROP CONVERSION
@@ -735,7 +741,7 @@
XX-
-
+ DROP DOMAIN
@@ -743,7 +749,7 @@
XX-
-
+ DROP EXTENSION
@@ -751,7 +757,7 @@
XX-
-
+ DROP FOREIGN DATA WRAPPER
@@ -759,7 +765,7 @@
XX-
-
+ DROP FOREIGN TABLE
@@ -767,7 +773,7 @@
XX-
-
+ DROP FUNCTION
@@ -775,7 +781,7 @@
XX-
-
+ DROP INDEX
@@ -783,7 +789,7 @@
XX-
-
+ DROP LANGUAGE
@@ -791,7 +797,7 @@
XX-
-
+ DROP MATERIALIZED VIEW
@@ -799,7 +805,7 @@
XX-
-
+ DROP OPERATOR
@@ -807,7 +813,7 @@
XX-
-
+ DROP OPERATOR CLASS
@@ -815,7 +821,7 @@
XX-
-
+ DROP OPERATOR FAMILY
@@ -823,7 +829,7 @@
XX-
-
+ DROP OWNED
@@ -831,7 +837,7 @@
XX-
-
+ DROP POLICY
@@ -839,7 +845,7 @@
XX-
-
+ DROP PROCEDURE
@@ -847,7 +853,7 @@
XX-
-
+ DROP PUBLICATION
@@ -855,7 +861,7 @@
XX-
-
+ DROP RULE
@@ -863,7 +869,7 @@
XX-
-
+ DROP SCHEMA
@@ -871,7 +877,7 @@
XX-
-
+ DROP SEQUENCE
@@ -879,7 +885,7 @@
XX-
-
+ DROP SERVER
@@ -887,7 +893,7 @@
XX-
-
+ DROP STATISTICS
@@ -895,7 +901,7 @@
XX-
-
+ DROP SUBSCRIPTION
@@ -903,7 +909,7 @@
XX-
-
+ DROP TABLE
@@ -911,7 +917,7 @@
XX-
-
+ DROP TEXT SEARCH CONFIGURATION
@@ -919,7 +925,7 @@
XX-
-
+ DROP TEXT SEARCH DICTIONARY
@@ -927,7 +933,7 @@
XX-
-
+ DROP TEXT SEARCH PARSER
@@ -935,7 +941,7 @@
XX-
-
+ DROP TEXT SEARCH TEMPLATE
@@ -943,7 +949,7 @@
XX-
-
+ DROP TRIGGER
@@ -951,7 +957,7 @@
XX-
-
+ DROP TYPE
@@ -959,7 +965,7 @@
XX-
-
+ DROP USER MAPPING
@@ -967,7 +973,7 @@
XX-
-
+ DROP VIEW
@@ -975,7 +981,7 @@
XX-
-
+ GRANT
@@ -991,7 +997,7 @@
X--
-
+ REFRESH MATERIALIZED VIEW
@@ -999,7 +1005,7 @@
X--
-
+ REVOKE
@@ -1023,7 +1029,7 @@
X--
-
+
@@ -1086,7 +1092,7 @@ typedef struct EventTriggerData
NodeTag type;
const char *event; /* event name */
Node *parsetree; /* parse tree */
- const char *tag; /* command tag */
+ CommandTag tag; /* command tag */
} EventTriggerData;
diff --git a/postgresql/extend.xml b/postgresql/extend.xml
index 62e8f8941..88ebd1515 100644
--- a/postgresql/extend.xml
+++ b/postgresql/extend.xml
@@ -240,21 +240,118 @@
- Cinq pseudo-types sont particulièrement intéressants :
- anyelement, anyarray, anynonarray,
- anyenum et anyrange, collectivement appelés types
- polymorphes.
- Toute fonction déclarée utiliser ces types est dite fonction
- polymorphe. Une fonction polymorphe peut opérer sur de nombreux
- types de données différents, les types de données spécifiques étant
- déterminés par les types des données réellement passés lors d'un appel
- particulier de la fonction.
+ Some pseudo-types of special interest are the polymorphic
+ types, which are used to declare polymorphic
+ functions. This powerful feature allows a single function
+ definition to operate on many different data types, with the specific
+ data type(s) being determined by the data types actually passed to it
+ in a particular call. The polymorphic types are shown in
+ . Some examples of
+ their use appear in .
+
+ Polymorphic Types
+
+
+
+
+
+
+ Name
+ Family
+ Description
+
+
+
+
+
+ anyelement
+ Simple
+ Indicates that a function accepts any data type
+
+
+
+ anyarray
+ Simple
+ Indicates that a function accepts any array data type
+
+
+
+ anynonarray
+ Simple
+ Indicates that a function accepts any non-array data type
+
+
+
+ anyenum
+ Simple
+ Indicates that a function accepts any enum data type
+ (see )
+
+
+
+
+ anyrange
+ Simple
+ Indicates that a function accepts any range data type
+ (see )
+
+
+
+
+ anycompatible
+ Common
+ Indicates that a function accepts any data type,
+ with automatic promotion of multiple arguments to a common data type
+
+
+
+
+ anycompatiblearray
+ Common
+ Indicates that a function accepts any array data type,
+ with automatic promotion of multiple arguments to a common data type
+
+
+
+
+ anycompatiblenonarray
+ Common
+ Indicates that a function accepts any non-array data type,
+ with automatic promotion of multiple arguments to a common data type
+
+
+
+
+ anycompatiblerange
+ Common
+ Indicates that a function accepts any range data type,
+ with automatic promotion of multiple arguments to a common data type
+
+
+
+
+
+
Les arguments et résultats polymorphes sont liés entre eux et
sont résolus dans un type de données spécifique quand une requête faisant
- appel à une fonction polymorphe est analysée. Chaque occurrence (argument
+ appel à une fonction polymorphe est analysée. When there is more than one
+ polymorphic argument, the actual
+ data types of the input values must match up as described below. If the
+ function's result type is polymorphic, or it has output parameters of
+ polymorphic types, the types of those results are deduced from the
+ actual types of the polymorphic inputs as described below.
+
+
+
+ For the simple family of polymorphic types, the
+ matching and deduction rules work like this:
+
+
+
+ Chaque occurrence (argument
ou valeur de retour) déclarée comme anyelement
peut prendre n'importe quel type réel de données mais, lors d'un
appel de fonction donné, elles doivent toutes avoir le
@@ -293,8 +390,8 @@
Quand la valeur renvoyée par une fonction est déclarée de type polymorphe,
il doit exister au moins une occurrence d'argument également polymorphe, et
- le type réel de donnée passé comme argument détermine le type réel de
- résultat renvoyé lors de cet appel à la fonction. Par exemple, s'il
+ le type réel de donnée passé comme argument détermine le(s) type(s) réel(s)
+ du résultat renvoyé lors de cet appel à la fonction. Par exemple, s'il
n'existe pas déjà un mécanisme d'indexation d'éléments de
tableau, on peut définir une fonction qui code ce mécanisme :
indice(anyarray, integer) returns anyelement. La
@@ -308,8 +405,9 @@
Dans la plupart des cas, l'analyseur peut inférer que le type de données
réel pour un type résultat polymorphique pour des arguments qui sont d'un
- type polymorphique différent par exemple anyarray peut
- être déduit à partir de anyelement et vice versa. L'exception
+ type polymorphique différent dans la même famille par exemple
+ anyarray peut
+ être déduit à partir de anyelement et vice versa. Une exception
est qu'un résultat polymorphique de type anyrange nécessite
un argument de type anyrange ; il ne peut pas être
déduit d'arguments anyarray ou anyelement. Ceci
@@ -326,15 +424,70 @@
les deux arguments réels doivent être du même type enum.
+
+ For the common family of polymorphic types, the
+ matching and deduction rules work approximately the same as for
+ the simple family, with one major difference: the
+ actual types of the arguments need not be identical, so long as they
+ can be implicitly cast to a single common type. The common type is
+ selected following the same rules as for UNION and
+ related constructs (see ).
+ Selection of the common type considers the actual types
+ of anycompatible and anycompatiblenonarray
+ inputs, the array element types of anycompatiblearray
+ inputs, and the range subtypes of anycompatiblerange
+ inputs. If anycompatiblenonarray is present then the
+ common type is required to be a non-array type. Once a common type is
+ identified, arguments in anycompatible
+ and anycompatiblenonarray positions are automatically
+ cast to that type, and arguments in anycompatiblearray
+ positions are automatically cast to the array type for that type.
+
+
+
+ Since there is no way to select a range type knowing only its subtype,
+ use of anycompatiblerange requires that all arguments
+ declared with that type have the same actual range type, and that that
+ type's subtype agree with the selected common type, so that no casting
+ of the range values is required. As with anyrange, use
+ of anycompatiblerange as a function result type requires
+ that there be an anycompatiblerange argument.
+
+
+
+ Notice that there is no anycompatibleenum type. Such a
+ type would not be very useful, since there normally are not any
+ implicit casts to enum types, meaning that there would be no way to
+ resolve a common type for dissimilar enum inputs.
+
+
+
+ The simple and common polymorphic
+ families represent two independent sets of type variables. Consider
+ for example
+
+CREATE FUNCTION myfunc(a anyelement, b anyelement,
+ c anycompatible, d anycompatible)
+RETURNS anycompatible AS ...
+
+ In an actual call of this function, the first two inputs must have
+ exactly the same type. The last two inputs must be promotable to a
+ common type, but this type need not have anything to do with the type
+ of the first two inputs. The result will have the common type of the
+ last two inputs.
+
+
Une fonction variadic (c'est-à-dire une fonction acceptant un nombre
variable d'arguments, comme dans ) peut être polymorphique :
cela se fait en déclarant son dernier paramètre VARIADIC
- anyarray. Pour s'assurer de la correspondance des arguments
- et déterminer le type de la valeur en retour, ce type de fonction se
- comporte de la même façon que si vous aviez écrit le nombre approprié de
- paramètres anynonarray.
+ anyarray ou VARIADIC
+ anycompatiblearray. Pour s'assurer de la correspondance des
+ arguments et déterminer le type de la valeur en retour, ce type de
+ fonction se comporte de la même façon que si vous aviez écrit le nombre
+ approprié de paramètres anynonarray ou
+ anycompatiblenonarray.
@@ -606,6 +759,31 @@
seuls les superutilisateurs pourront créer cet extension ou la mettre à jour.
Si ce paramètre est à false, seuls les droits nécessaires
seront requis pour installer ou mettre à jour l'extension.
+ This should normally be set to true if any of the
+ script commands require superuser privileges. (Such commands would
+ fail anyway, but it's more user-friendly to give the error up front.)
+
+
+
+
+
+ trusted (boolean)
+
+
+ This parameter, if set to true (which is not the
+ default), allows some non-superusers to install an extension that
+ has superuser set to true.
+ Specifically, installation will be permitted for anyone who has
+ CREATE privilege on the current database.
+ When the user executing CREATE EXTENSION is not
+ a superuser but is allowed to install by virtue of this parameter,
+ then the installation or update script is run as the bootstrap
+ superuser, not as the calling user.
+ This parameter is irrelevant if superuser is
+ false.
+ Generally, this should not be set true for extensions that could
+ allow access to otherwise-superuser-only abilities, such as
+ filesystem access.
@@ -673,14 +851,28 @@
- Bien que les fichiers de script puissent contenir n'importe quel caractère autorisé
- par l'encodage spécifié, les fichiers de contrôle ne peuvent contenir que des caractères
- ASCII non formatés. En effet, PostgreSQL ne peut pas déterminer
- l'encodage utilisé par les fichiers de contrôle. Dans la pratique, cela ne pose problème
- que dans le cas où vous voudriez utiliser des caractères non ASCII dans le commentaire
- de l'extension. Dans ce cas de figure, il est recommandé de ne pas utiliser le paramètre
- comment du fichier de contrôle pour définir ce commentaire, mais plutôt
- la commande COMMENT ON EXTENSION dans un fichier de script.
+ If the extension script contains the
+ string @extowner@, that string is replaced with the
+ (suitably quoted) name of the user calling CREATE
+ EXTENSION or ALTER EXTENSION. Typically
+ this feature is used by extensions that are marked trusted to assign
+ ownership of selected objects to the calling user rather than the
+ bootstrap superuser. (One should be careful about doing so, however.
+ For example, assigning ownership of a C-language function to a
+ non-superuser would create a privilege escalation path for that user.)
+
+
+
+ Bien que les fichiers de script puissent contenir n'importe quel caractère
+ autorisé par l'encodage spécifié, les fichiers de contrôle ne peuvent
+ contenir que des caractères ASCII non formatés. En effet,
+ PostgreSQL ne peut pas déterminer l'encodage
+ utilisé par les fichiers de contrôle. Dans la pratique, cela ne pose
+ problème que dans le cas où vous voudriez utiliser des caractères non
+ ASCII dans le commentaire de l'extension. Dans ce cas de figure, il est
+ recommandé de ne pas utiliser le paramètre comment du
+ fichier de contrôle pour définir ce commentaire, mais plutôt la commande
+ COMMENT ON EXTENSION dans un fichier de script.
@@ -910,29 +1102,6 @@ SELECT pg_catalog.pg_extension_config_dump('my_config', 'WHERE NOT standard_entr
cible.
-
- Le mécanisme de mise à jour peut être utilisé pour résoudre un cas particulier important :
- convertir une collection éparse d'objets en une extension.
- Avant que le mécanisme d'extension ne soit introduit à PostgreSQL
- (dans la version 9.1), de nombreuses personnes écrivaient des modules d'extension qui créaient
- simplement un assortiment d'objets non empaquetés.
- Etant donné une base de donnée existante contenant de tels objets, comment convertir ces objets
- en des extensions proprement empaquetées ? Les supprimer puis exécuter la commande
- CREATE EXTENSION est une première méthode, mais elle n'est pas envisageable lorsque
- les objets ont des dépendances (par exemple, s'il y a des colonnes de table dont le type de
- données appartient à une extension). Le moyen proposé pour résoudre ce problème est de créer
- une extension vide, d'utiliser la commande ALTER EXTENSION ADD pour lier
- chaque objet pré-existant à l'extension, et finalement créer les nouveaux objets présents dans
- la nouvelle extension mais absents de celle non empaquetée. La commande CREATE EXTENSION
- prend en charge cette fonction avec son option FROMold_version,
- qui permet de ne pas charger le script d'installation par défaut pour la version ciblée, mais celui nommé
- extension--old_version--target_version.sql.
- Le choix de la valeur de old_version
- relève de la responsabilité de l'auteur de l'extension, même si unpackaged est souvent rencontré.
- Il est aussi possible de multiplier les valeurs de old_version pour prendre en compte
- une mise à jour depuis différentes anciennes versions.
-
-
La commande ALTER EXTENSION peut exécuter des mises à jour en séquence pour
réussir une mise à jour. Par exemple, si seuls les fichiers foo--1.0--1.1.sql
diff --git a/postgresql/features.xml b/postgresql/features.xml
index 4dd357fa3..4c20c08eb 100644
--- a/postgresql/features.xml
+++ b/postgresql/features.xml
@@ -52,9 +52,7 @@
de fonctionnalités définis dans SQL-92. Une
grande partie représente les fonctionnalités centrales que
chaque implantation conforme de SQL doit fournir. Les fonctionnalités
- restantes sont purement optionnelles. Certaines sont regroupées au sein de
- paquetages auxquels une implantation peut se déclarer conforme.
- On parle alors de conformité à un groupe de fonctionnalités.
+ restantes sont purement optionnelles.
@@ -73,6 +71,7 @@
ISO/IEC 9075-11 Information and Definition Schemas (SQL/Schemata)SQL/SchemataISO/IEC 9075-13 Routines and Types using the Java Language (SQL/JRT)SQL/JRTISO/IEC 9075-14 XML-related specifications (SQL/XML)SQL/XML
+ ISO/IEC 9075-15 Multi-dimensional arrays (SQL/MDA)SQL/MDA
@@ -81,15 +80,15 @@
La partie 3 est couverte par l'interface ODBC, et la partie 13 est couverte
par le plugin PL/Java, mais une conformance exacte n'est pas actuellement
vérifiée par ses composants. Il n'y a pas actuellement d'implantations des
- parties 4 et 10 pour PostgreSQL.
+ parties 4, 10 et 15 pour PostgreSQL.
PostgreSQL supporte la plupart des fonctionnalités majeures de SQL:2016. Sur
- les 179 fonctionnalités requises pour une conformité
+ les 177 fonctionnalités requises pour une conformité
« centrale » complète (full Core
conformance), PostgreSQL se conforme à plus de
- 160. De plus, il existe une longue liste de
+ 170. De plus, il existe une longue liste de
fonctionnalités optionelles supportées. À la date de rédaction de ce
document, aucune version de quelque système de gestion de bases de
données que ce soit n'affiche une totale conformité au cœur de SQL:2016.
@@ -122,14 +121,14 @@
-
-
-
-
+
+
+
+ Identifiant
- Paquetage
+ Coeur ?DescriptionCommentaire
@@ -152,15 +151,15 @@
similaires sont disponibles.
-
-
-
-
+
+
+
+ Identifiant
- Paquetage
+ Coeur ?DescriptionCommentaire
diff --git a/postgresql/file-fdw.xml b/postgresql/file-fdw.xml
index 60726a4a7..76d4eabbc 100644
--- a/postgresql/file-fdw.xml
+++ b/postgresql/file-fdw.xml
@@ -215,7 +215,7 @@
- Créer une table distante pour les journaux applicatifs PostgreSQL au format CSV
+ Créer une table distante pour les journaux applicatifs PostgreSQL au format CSV
Une des utilisations évidentes de file_fdw est de rendre
@@ -266,7 +266,8 @@ CREATE FOREIGN TABLE pglog (
query text,
query_pos integer,
location text,
- application_name text
+ application_name text,
+ backend_type text
) SERVER pglog
OPTIONS ( filename '/home/josh/data/log/pglog.csv', format 'csv' );
diff --git a/postgresql/filelist.xml b/postgresql/filelist.xml
index 739efc318..b27d74a44 100644
--- a/postgresql/filelist.xml
+++ b/postgresql/filelist.xml
@@ -106,6 +106,7 @@
+
@@ -170,10 +171,12 @@
-
+
+
+
diff --git a/postgresql/fuzzystrmatch.xml b/postgresql/fuzzystrmatch.xml
index 6b8405f29..d3ad859db 100644
--- a/postgresql/fuzzystrmatch.xml
+++ b/postgresql/fuzzystrmatch.xml
@@ -25,6 +25,12 @@
+
+ This module is considered trusted, that is, it can be
+ installed by non-superusers who have CREATE privilege
+ on the current database.
+
+
Soundex
diff --git a/postgresql/geqo.xml b/postgresql/geqo.xml
index a1264649a..609057ed1 100644
--- a/postgresql/geqo.xml
+++ b/postgresql/geqo.xml
@@ -93,9 +93,19 @@
(recombinaison, mutation et
sélection) permet de trouver de nouvelles
générations de points de recherche qui présentent une meilleure adaptation
- moyenne que leurs ancêtres.
+ moyenne que leurs ancêtres.
+ illustrates these steps.
+
+ Structure of a Genetic Algorithm
+
+
+
+
+
+
+
Selon la FAQ de comp.ai.genetic, on ne peut pas réellement
@@ -104,49 +114,6 @@
le résultat est assurément non-aléatoire (il est mieux qu'aléatoire).
-
- Diagramme structuré d'un algorithme génétique
-
-
-
-
-
- P(t)
- génération des ancêtres au temps t
-
-
-
- P''(t)
- génération des descendants au temps t
-
-
-
-
-
-
- +=========================================+
- |>>>>>>>>>>> Algorithme GA <<<<<<<<<<<<<<|
- +=========================================+
- | INITIALISE t := 0 |
- +=========================================+
- | INITIALISE P(t) |
- +=========================================+
- | évalue ADAPTATION de P(t) |
- +=========================================+
- | tant que pas CRITERE ARRET faire |
- | +-------------------------------------+
- | | P'(t) := RECOMBINAISON{P(t)} |
- | +-------------------------------------+
- | | P''(t) := MUTATION{P'(t)} |
- | +-------------------------------------+
- | | P(t+1) := SELECTION{P''(t) + P(t)} |
- | +-------------------------------------+
- | | évalue ADAPTATION de P''(t) |
- | +-------------------------------------+
- | | t := t + 1 |
- +===+=====================================+
-
-
diff --git a/postgresql/gist.xml b/postgresql/gist.xml
index 2d2fd810e..df5008544 100644
--- a/postgresql/gist.xml
+++ b/postgresql/gist.xml
@@ -90,6 +90,7 @@
~=
+ <->
diff --git a/postgresql/glossary.xml b/postgresql/glossary.xml
new file mode 100644
index 000000000..0c9e07ddd
--- /dev/null
+++ b/postgresql/glossary.xml
@@ -0,0 +1,1870 @@
+
+
+ Glossary
+
+ This is a list of terms and their meaning in the context of
+ PostgreSQL and relational database
+ systems in general.
+
+
+
+
+ ACID
+
+
+ Atomicity,
+ Consistency,
+ Isolation, and
+ Durability.
+ This set of properties of database transactions is intended to
+ guarantee validity in concurrent operation and even in event of
+ errors, power failures, etc.
+
+
+
+
+
+ Aggregate function
+
+
+ A function that
+ combines (aggregates) multiple input values,
+ for example by counting, averaging or adding,
+ yielding a single output value.
+
+
+ For more information, see
+ .
+
+
+
+
+
+
+ Analyze (operation)
+
+
+ The process of collecting statistics from data in
+ tables
+ and other relations
+ to help the query planner
+ to make decisions about how to execute
+ queries.
+
+
+ (Don't confuse this term with the ANALYZE option
+ to the command.)
+
+
+
+
+
+ Analytic function
+
+
+
+
+ Atomic
+
+
+ In reference to a datum:
+ the fact that its value cannot be broken down into smaller
+ components.
+
+
+
+
+ In reference to a
+ database transaction:
+ see atomicity.
+
+
+
+
+
+ Atomicity
+
+
+ The property of a transaction
+ that either all its operations complete as a single unit or none do.
+ In addition, if a system failure occurs during the execution of a
+ transaction, no partial results are visible after recovery.
+ This is one of the ACID properties.
+
+
+
+
+
+ Attribute
+
+
+ An element with a certain name and data type found within a
+ tuple or
+ table.
+
+
+
+
+
+ Autovacuum
+
+
+ A set of background processes that routinely perform
+ vacuum
+ and analyze
+ operations.
+
+
+ For more information, see
+ .
+
+
+
+
+
+ Backend (process)
+
+
+ Process of an instance
+ which acts on behalf of a client session
+ and handles its requests.
+
+
+ (Don't confuse this term with the similar terms
+ Background Worker or
+ Background Writer).
+
+
+
+
+
+ Background worker (process)
+
+
+ Process within an instance,
+ which runs system- or user-supplied code.
+ Serves as infrastructure for several features in
+ PostgreSQL, such as
+ logical replication
+ and parallel queries.
+ In addition, Extensions can add
+ custom background worker processes.
+
+
+ For more information, see
+ .
+
+
+
+
+
+ Background writer (process)
+
+
+ A process that writes dirty
+ data pages from
+ shared memory to
+ the file system. It wakes up periodically, but works only for a short
+ period in order to distribute its expensive I/O
+ activity over time to avoid generating larger
+ I/O peaks which could block other processes.
+
+
+ For more information, see
+ .
+
+
+
+
+
+ Bloat
+
+
+ Space in data pages which does not contain current row versions,
+ such as unused (free) space or outdated row versions.
+
+
+
+
+
+ Cast
+
+
+ A conversion of a datum
+ from its current data type to another data type.
+
+
+ For more information, see
+ .
+
+
+
+
+
+ Catalog
+
+
+ The SQL standard uses this term to
+ indicate what is called a
+ database in
+ PostgreSQL's terminology.
+
+
+ (Don't confuse this term with
+ system catalog).
+
+
+ For more information, see
+ .
+
+
+
+
+
+ Check constraint
+
+
+ A type of constraint
+ defined on a relation
+ which restricts the values allowed in one or more
+ attributes. The
+ check constraint can make reference to any attribute of the same row in
+ the relation, but cannot reference other rows of the same relation or
+ other relations.
+
+
+ For more information, see
+ .
+
+
+
+
+
+ Checkpoint
+
+
+ A point in the WAL sequence
+ at which it is guaranteed that the heap and index data files have been
+ updated with all information from
+ shared memory
+ modified before that checkpoint;
+ a checkpoint record is written and flushed to WAL
+ to mark that point.
+
+
+ A checkpoint is also the act of carrying out all the actions that
+ are necessary to reach a checkpoint as defined above.
+ This process is initiated when predefined conditions are met,
+ such as a specified amount of time has passed, or a certain volume
+ of records has been written; or it can be invoked by the user
+ with the command CHECKPOINT.
+
+
+ For more information, see
+ .
+
+
+
+
+
+ Checkpointer (process)
+
+
+ A specialized process responsible for executing checkpoints.
+
+
+
+
+
+ Class (archaic)
+
+
+
+
+ Client (process)
+
+
+ Any process, possibly remote, that establishes a
+ session
+ by connecting to an
+ instance
+ to interact with a database.
+
+
+
+
+
+ Column
+
+
+ An attribute found in
+ a table or
+ view.
+
+
+
+
+
+ Commit
+
+
+ The act of finalizing a
+ transaction within
+ the database, which
+ makes it visible to other transactions and assures its
+ durability.
+
+
+ For more information, see
+ .
+
+
+
+
+
+ Concurrency
+
+
+ The concept that multiple independent operations happen within the
+ database at the same time.
+ In PostgreSQL, concurrency is controlled by
+ the multiversion concurrency control
+ mechanism.
+
+
+
+
+
+ Connection
+
+
+ An established line of communication between a client process and a
+ backend process,
+ usually over a network, supporting a
+ session. This term is
+ sometimes used as a synonym for session.
+
+
+ For more information, see
+ .
+
+
+
+
+
+ Consistency
+
+
+ The property that the data in the
+ database
+ is always in compliance with
+ integrity constraints.
+ Transactions may be allowed to violate some of the constraints
+ transiently before it commits, but if such violations are not resolved
+ by the time it commits, such a transaction is automatically
+ rolled back.
+ This is one of the ACID properties.
+
+
+
+
+
+ Constraint
+
+
+ A restriction on the values of data allowed within a
+ table,
+ or in attributes of a
+
+ domain.
+
+
+ For more information, see
+ .
+
+
+
+
+
+ Data area
+
+
+
+
+ Data directory
+
+
+ The base directory on the filesystem of a
+ server that contains all
+ data files and subdirectories associated with an
+ instance (with the
+ exception of tablespaces).
+ The environment variable PGDATA is commonly used to
+ refer to the
+ data directory.
+
+
+ An instance's storage
+ space comprises the data directory plus any additional tablespaces.
+
+
+ For more information, see
+ .
+
+
+
+
+
+ Database
+
+
+ A named collection of
+ SQL objects.
+
+
+ For more information, see
+ .
+
+
+
+
+
+ Database server
+
+
+
+
+ Data page
+
+
+ The basic structure used to store relation data.
+ All pages are of the same size.
+ Data pages are typically stored on disk, each in a specific file,
+ and can be read to shared buffers
+ where they can be modified, becoming
+ dirty. They become clean when written
+ to disk. New pages, which initially exist in memory only, are also
+ dirty until written.
+
+
+
+
+
+ Datum
+
+
+ The internal representation of one value of an SQL
+ data type.
+
+
+
+
+
+ Delete
+
+
+ An SQL command which removes
+ rows from a given
+ table
+ or relation.
+
+
+ For more information, see
+ .
+
+
+
+
+
+ Durability
+
+
+ The assurance that once a
+ transaction has
+ been committed, the
+ changes remain even after a system failure or crash.
+ This is one of the ACID properties.
+
+
+
+
+
+ Epoch
+
+
+
+
+ Extension
+
+
+ A software add-on package that can be installed on an
+ instance to
+ get extra features.
+
+
+ For more information, see
+ .
+
+
+
+
+
+ File segment
+
+
+ A physical file which stores data for a given
+ relation.
+ File segments are limited in size by a configuration value
+ (typically 1 gigabyte),
+ so if a relation exceeds that size, it is split into multiple segments.
+
+
+ For more information, see
+ .
+
+
+ (Don't confuse this term with the similar term
+ WAL segment).
+
+
+
+
+
+ Foreign data wrapper
+
+
+ A means of representing data that is not contained in the local
+ database so that it appears as if were in local
+ table(s). With a foreign data wrapper it is
+ possible to define a foreign server and
+ foreign tables.
+
+
+ For more information, see
+ .
+
+
+
+
+
+ Foreign key
+
+
+ A type of constraint
+ defined on one or more columns
+ in a table which
+ requires the value(s) in those columns to
+ identify zero or one row
+ in another (or, infrequently, the same)
+ table.
+
+
+
+
+
+ Foreign server
+
+
+ A named collection of
+ foreign tables which
+ all use the same
+ foreign data wrapper
+ and have other configuration values in common.
+
+
+ For more information, see
+ .
+
+
+
+
+
+ Foreign table
+
+
+ A relation which appears to have
+ rows and
+ columns similar to a
+ regular table, but will forward
+ requests for data through its
+ foreign data wrapper,
+ which will return result sets
+ structured according to the definition of the
+ foreign table.
+
+
+ For more information, see
+ .
+
+
+
+
+
+ Fork
+
+
+ Each of the separate segmented file sets in which a relation is stored.
+ The main fork is where the actual data resides.
+ There also exist two secondary forks for metadata:
+ the free space map
+ and the visibility map.
+ Unlogged relations
+ also have an init fork.
+
+
+
+
+
+ Free space map (fork)
+
+
+ A storage structure that keeps metadata about each data page of a table's
+ main fork. The free space map entry for each page stores the
+ amount of free space that's available for future tuples, and is structured
+ to be efficiently searched for available space for a new tuple of a given
+ size.
+
+
+ For more information, see
+ .
+
+
+
+
+
+ Function
+
+
+ Any defined transformation of data. Many functions are already defined
+ within PostgreSQL itself, but user-defined
+ ones can also be added.
+
+
+ For more information, see
+ .
+
+
+
+
+
+ Grant
+
+
+ An SQL command that is used to allow a
+ user or
+ role to access
+ specific objects within the database.
+
+
+ For more information, see
+ .
+
+
+
+
+
+ Heap
+
+
+ Contains the values of row
+ attributes (i.e. the data) for a
+ relation.
+ The heap is realized within one or more
+ file segments
+ in the relation's main fork.
+
+
+
+
+
+ Host
+
+
+ A computer that communicates with other computers over a network.
+ This is sometimes used as a synonym for
+ server.
+ It is also used to refer to a computer where
+ client processes run.
+
+
+
+
+
+ Index
+
+
+ A relation that contains
+ data derived from a table
+ (or relation types
+ such as a materialized view).
+ Its internal structure supports fast retrieval of and access to the original
+ data.
+
+
+ For more information, see
+ .
+
+
+
+
+
+ Insert
+
+
+ An SQL command used to add new data into a
+ table.
+
+
+ For more information, see
+ .
+
+
+
+
+
+ Instance
+
+
+ A set of databases and accompanying global SQL objects that are stored in
+ the same data directory
+ in a single server.
+ If running, one
+ postmaster process
+ manages a group of backend and auxiliary processes that communicate
+ using a common shared memory
+ area. Many instances can run on the same
+ server
+ as long as their TCP ports do not conflict.
+
+
+ The instance handles all key features of a DBMS:
+ read and write access to files and shared memory,
+ assurance of the ACID properties,
+ connections to client processes,
+ privilege verification, crash recovery, replication, etc.
+
+
+ In PostgreSQL, the term
+ cluster is also sometimes used to refer to an instance.
+ (Don't confuse this term with the SQL command CLUSTER.)
+
+
+
+
+
+ Isolation
+
+
+ The property that the effects of a transaction are not visible to
+ concurrent transactions
+ before it commits.
+ This is one of the ACID properties.
+
+
+ For more information, see .
+
+
+
+
+
+ Join
+
+
+ An SQL keyword used in SELECT statements for
+ combining data from multiple relations.
+
+
+
+
+
+ Key
+
+
+ A means of identifying a row within a
+ table or
+ relation by
+ values contained within one or more
+ attributes
+ in that table.
+
+
+
+
+
+ Lock
+
+
+ A mechanism that allows a process to limit or prevent simultaneous
+ access to a resource.
+
+
+
+
+
+ Log file
+
+
+ Log files contain human-readable text lines about events.
+ Examples include login failures, long-running queries, etc.
+
+
+ For more information, see
+ .
+
+
+
+
+
+ Log record
+
+
+ Archaic term for a WAL record.
+
+
+
+
+
+ Logged
+
+
+ A table is considered
+ logged if changes to it are sent to the
+ WAL. By default, all regular
+ tables are logged. A table can be specified as
+ unlogged either at
+ creation time or via the ALTER TABLE command.
+
+
+
+
+
+ Logger (process)
+
+
+ If activated, the
+ Logger process
+ writes information about database events into the current
+ log file.
+ When reaching certain time- or
+ volume-dependent criteria, a new log file is created.
+ Also called syslogger.
+
+
+ For more information, see
+ .
+
+
+
+
+
+ Master (server)
+
+
+
+
+ Materialized
+
+
+ The property that some information has been pre-computed and stored
+ for later use, rather than computing it on-the-fly.
+
+
+ This term is used in
+ materialized view,
+ to mean that the data derived from the view's query is stored on
+ disk separately from the sources of that data.
+
+
+ This term is also used to refer to some multi-step queries to mean that
+ the data resulting from executing a given step is stored in memory
+ (with the possibility of spilling to disk), so that it can be read multiple
+ times by another step.
+
+
+
+
+
+ Materialized view
+
+
+ A relation that is
+ defined in the same way that a view
+ is, but stores data in the same way that a
+ table does. It cannot be
+ modified via INSERT, UPDATE, or
+ DELETE operations.
+
+
+ For more information, see
+ .
+
+
+
+
+
+ Multi-version concurrency control (MVCC)
+
+
+ A mechanism designed to allow several
+ transactions to be
+ reading and writing the same rows without one process causing other
+ processes to stall.
+ In PostgreSQL, MVCC is implemented by
+ creating copies (versions) of
+ tuples as they are
+ modified; after transactions that can see the old versions terminate,
+ those old versions need to be removed.
+
+
+
+
+
+ Null
+
+
+ A concept of non-existence that is a central tenet of relational
+ database theory. It represents the absence of a definite value.
+
+
+
+
+
+ Optimizer
+
+
+
+
+ Parallel query
+
+
+ The ability to handle parts of executing a
+ query to take advantage
+ of parallel processes on servers with multiple CPUs.
+
+
+
+
+
+ Partition
+
+
+ One of several disjoint (not overlapping) subsets of a larger set.
+
+
+ In reference to a
+ partitioned table:
+ One of the tables that each contain part of the data of the partitioned table,
+ which is said to be the parent.
+ The partition is itself a table, so it can also be queried directly;
+ at the same time, a partition can sometimes be a partitioned table,
+ allowing hierarchies to be created.
+
+
+
+
+ In reference to a window function:
+ a partition is a user-defined criterion that identifies which neighboring
+ rows can be considered by the
+ function.
+
+
+
+
+
+ Partitioned table
+
+
+ A relation that is
+ in semantic terms the same as a table,
+ but whose storage is distributed across several
+ partitions.
+
+
+
+
+
+ Postmaster (process)
+
+
+ The very first process of an instance.
+ It starts and manages the other auxiliary processes and creates
+ backend processes
+ on demand.
+
+
+ For more information, see
+ .
+
+
+
+
+
+ Primary (server)
+
+
+ When two or more databases
+ are linked via replication,
+ the server
+ that is considered the authoritative source of information is called
+ the primary,
+ also known as a master.
+
+
+
+
+
+ Primary key
+
+
+ A special case of a
+ unique constraint
+ defined on a
+ table or other
+ relation that also
+ guarantees that all of the
+ attributes
+ within the primary key
+ do not have null values.
+ As the name implies, there can be only one
+ primary key per table, though it is possible to have multiple unique
+ constraints that also have no null-capable attributes.
+
+
+
+
+
+ Procedure
+
+
+ A defined set of instructions for manipulating data within a
+ database.
+ A procedure can
+ be written in a variety of programming languages. They are
+ similar to functions,
+ but are different in that they must be invoked via the CALL
+ command rather than the SELECT or PERFORM
+ commands, and they are allowed to make transactional statements such
+ as COMMIT and ROLLBACK.
+
+
+ For more information, see
+ .
+
+
+
+
+
+ Query
+
+
+ A request sent by a client to a backend,
+ usually to return results or to modify data on the database.
+
+
+
+
+
+ Query planner
+
+
+ The part of PostgreSQL that is devoted to
+ determining (planning) the most efficient way to
+ execute queries.
+ Also known as query optimizer,
+ optimizer, or simply planner.
+
+
+
+
+
+ Record
+
+
+
+
+ Recycling
+
+
+
+
+ Referential integrity
+
+
+ A means of restricting data in one relation
+ by a foreign key
+ so that it must have matching data in another
+ relation.
+
+
+
+
+
+ Relation
+
+
+ The generic term for all objects in a
+ database
+ that have a name and a list of
+ attributes
+ defined in a specific order.
+ Tables,
+ sequences,
+ views,
+ foreign tables,
+ materialized views,
+ composite types, and
+ indexes are all relations.
+
+
+ Class is an archaic synonym for
+ relation.
+
+
+
+
+
+ Replica (server)
+
+
+ A database that is paired
+ with a primary
+ database and is maintaining a copy of some or all of the primary database's
+ data. The foremost reasons for doing this are to allow for greater access
+ to that data, and to maintain availability of the data in the event that
+ the primary
+ becomes unavailable.
+
+
+
+
+
+ Replication
+
+
+ The act of reproducing data on one
+ server onto another
+ server called a replica.
+ This can take the form of physical replication,
+ where all file changes from one server are copied verbatim,
+ or logical replication where a defined subset
+ of data changes are conveyed using a higher-level representation.
+
+
+
+
+
+ Result set
+
+
+ A data structure transmitted from a
+ backend process to
+ a client upon the
+ completion of an SQL
+ command, usually a SELECT but it can be an
+ INSERT, UPDATE, or
+ DELETE command if the RETURNING
+ clause is specified. The data structure consists of zero or more
+ rows with the same ordered set of
+ attributes.
+
+
+
+
+
+ Revoke
+
+
+ A command to prevent access to a named set of
+ database objects for a
+ named list of roles.
+
+
+ For more information, see
+ .
+
+
+
+
+
+ Role
+
+
+ A collection of access privileges to the
+ instance.
+ Roles are themselves a privilege that can be granted to other roles.
+ This is often done for convenience or to ensure completeness
+ when multiple users need
+ the same privileges.
+
+
+ For more information, see
+ .
+
+
+
+
+
+ Rollback
+
+
+ A command to undo all of the operations performed since the beginning
+ of a transaction.
+
+
+ For more information, see
+ .
+
+
+
+
+
+ Row
+
+
+
+
+ Savepoint
+
+
+ A special mark in the sequence of steps in a
+ transaction.
+ Data modifications after this point in time may be reverted
+ to the time of the savepoint.
+
+
+ For more information, see
+ .
+
+
+
+
+
+ Schema
+
+
+ A schema is a namespace for
+ SQL objects,
+ which all reside in the same
+ database.
+ Each SQL object must reside in exactly one schema.
+
+
+ The names of SQL objects of the same type in the same schema are enforced
+ to be unique.
+ There is no restriction on reusing a name in multiple schemas.
+
+
+ All system-defined SQL objects reside in schema pg_catalog,
+ and commonly many user-defined SQL objects reside in the default schema
+ public,
+ but it is common and recommended that other schemas are created to hold
+ application-specific SQL objects.
+
+
+
+
+ More generically, the term schema is used to mean
+ all data descriptions (table definitions,
+ constraints, comments, etc)
+ for a given database or
+ subset thereof.
+
+
+ For more information, see
+ .
+
+
+
+
+
+ Segment
+
+
+
+
+ Select
+
+
+ The SQL command used to request data from a
+ database.
+ Normally, SELECT commands are not expected to modify the
+ database in any way,
+ but it is possible that
+ functions invoked within
+ the query could have side effects that do modify data.
+
+
+ For more information, see
+ .
+
+
+
+
+
+
+
+ Server
+
+
+ A computer on which PostgreSQL
+ instances run.
+ The term server denotes real hardware, a
+ container, or a virtual machine.
+
+
+ This term is sometimes used to refer to an instance or to a host.
+
+
+
+
+
+ Session
+
+
+ A state that allows a client and a backend to interact,
+ communicating over a connection.
+
+
+
+
+
+ Sequence
+
+
+ A type of relation that is used to generate values.
+ Typically the generated values are sequential non-repeating numbers.
+ They are commonly used to generate surrogate
+ primary key
+ values.
+
+
+
+
+
+ Shared memory
+
+
+ RAM which is used by the processes common to an
+ instance.
+ It mirrors parts of database
+ files, provides a transient area for
+ WAL records,
+ and stores additional common information.
+ Note that shared memory belongs to the complete instance, not to a single
+ database.
+
+
+ The largest part of shared memory is known as shared buffers
+ and is used to mirror part of data files, organized into pages.
+ When a page is modified, it is called a dirty page until it is
+ written back to the file system.
+
+
+ For more information, see
+ .
+
+
+
+
+
+ Standby (server)
+
+
+
+
+ SQL Object
+
+
+ Any object that can be created with a CREATE
+ command. Most objects are specific to one database, and are commonly
+ known as local objects.
+ Roles,
+ tablespaces,
+ replication origins, subscriptions for logical replication, and
+ databases themselves are not local SQL objects since they exist
+ entirely outside of any specific database;
+ they are called global objects.
+
+
+ Most local objects belong to a specific
+ schema in their containing database.
+ There also exist local objects that do not belong to schemas; some examples are
+ extensions,
+ data type casts, and
+ foreign data wrappers.
+
+
+ For more information, see
+ .
+
+
+
+
+
+ SQL standard
+
+
+ A series of documents that define the SQL language.
+
+
+
+
+
+ Stats collector
+
+
+ This process collects statistical information about the
+ instance's activities.
+
+
+ For more information, see
+ .
+
+
+
+
+
+ System catalog
+
+
+ A collection of tables
+ which describe the structure of all
+ SQL objects
+ of the instance.
+ The system catalog resides in the schema pg_catalog.
+ These tables contain data in internal representation and are
+ not typically considered useful for user examination;
+ a number of user-friendlier views,
+ also in schema pg_catalog, offer more convenient access to
+ some of that information, while additional tables and views
+ exist in schema information_schema
+ (see ) that expose some
+ of the same and additional information as mandated by the
+ SQL standard.
+
+
+ For more information, see
+ .
+
+
+
+
+
+ Table
+
+
+ A collection of tuples having
+ a common data structure (the same number of
+ attributes, in the same
+ order, having the same name and type per position).
+ A table is the most common form of
+ relation in
+ PostgreSQL.
+
+
+ For more information, see
+ .
+
+
+
+
+
+ Tablespace
+
+
+ A named location on the server filesystem.
+ All SQL objects
+ which require storage beyond their definition in the
+ system catalog
+ must belong to a single tablespace.
+ Initially, an instance contains a single usable tablespace which is
+ used as the default one for all SQL objects, called pg_default.
+
+
+ For more information, see
+ .
+
+
+
+
+
+ Temporary table
+
+
+ Tables that exist either
+ for the lifetime of a
+ session or a
+ transaction, as
+ specified at the time of creation.
+ The data in them is not visible to other sessions, and is not
+ logged.
+ Temporary tables are often used to store intermediate data for a
+ multi-step operation.
+
+
+ For more information, see
+ .
+
+
+
+
+
+ TOAST
+
+
+ A mechanism by which large attributes of table rows are split and
+ stored in a secondary table, called the TOAST table.
+ Each relation with large attributes has its own TOAST table.
+
+
+ For more information, see
+ .
+
+
+
+
+
+ Transaction
+
+
+ A combination of commands that must act as a single
+ atomic command: they all
+ succeed or all fail as a single unit, and their effects are not visible to
+ other sessions until
+ the transaction is complete, and possibly even later, depending on the
+ isolation level.
+
+
+ For more information, see
+ .
+
+
+
+
+
+ Transaction ID
+
+
+ The numerical, unique, sequentially-assigned identifier that each
+ transaction receives when it first causes a database modification.
+ Frequently abbreviated as xid.
+ When stored on disk, xids are only 32-bits wide, so only
+ approximately four billion write transaction IDs can be generated;
+ to permit the system to run for longer than that,
+ epochs are used, also 32 bits wide.
+ When the counter reaches the maximum xid value, it starts over at
+ 3 (values under that are reserved) and the
+ epoch value is incremented by one.
+ In some contexts, the epoch and xid values are
+ considered together as a single 64-bit value.
+
+
+ For more information, see
+ .
+
+
+
+
+
+ Trigger
+
+
+ A function which can
+ be defined to execute whenever a certain operation (INSERT,
+ UPDATE, DELETE,
+ TRUNCATE) is applied to a
+ relation.
+ A trigger executes within the same
+ transaction as the
+ statement which invoked it, and if the function fails, then the invoking
+ statement also fails.
+
+
+ For more information, see
+ .
+
+
+
+
+
+ Tuple
+
+
+ A collection of attributes
+ in a fixed order.
+ That order may be defined by the table
+ where the tuple is contained, in which case the tuple is often called a
+ row. It may also be defined by the structure of a
+ result set, in which case it is sometimes called a record.
+
+
+
+
+
+ Unique constraint
+
+
+ A type of constraint
+ defined on a relation
+ which restricts the values allowed in one or a combination of columns
+ so that each value or combination of values can only appear once in the
+ relation — that is, no other row in the relation contains values
+ that are equal to those.
+
+
+ Because null values are
+ not considered equal to each other, multiple rows with null values are
+ allowed to exist without violating the unique constraint.
+
+
+
+
+
+ Unlogged
+
+
+ The property of certain relations
+ that the changes to them are not reflected in the
+ WAL.
+ This disables replication and crash recovery for these relations.
+
+
+ The primary use of unlogged tables is for storing
+ transient work data that must be shared across processes.
+
+
+ Temporary tables
+ are always unlogged.
+
+
+
+
+
+ Update
+
+
+ An SQL command used to modify
+ rows
+ that may already exist in a specified table.
+ It cannot create or remove rows.
+
+
+ For more information, see
+ .
+
+
+
+
+
+ User
+
+
+ A role that has the
+ LOGIN privilege.
+
+
+
+
+
+ User mapping
+
+
+ The translation of login credentials in the local
+ database to credentials
+ in a remote data system defined by a
+ foreign data wrapper.
+
+
+ For more information, see
+ .
+
+
+
+
+
+ Vacuum
+
+
+ The process of removing outdated
+ tuple versions
+ from tables or materialized views, and other closely related
+ processing required by PostgreSQL's
+ implementation of MVCC.
+ This can be initiated through the use of
+ the VACUUM command, but can also be handled automatically
+ via autovacuum processes.
+
+
+ For more information, see
+ .
+
+
+
+
+
+ View
+
+
+ A relation that is defined by a
+ SELECT statement, but has no storage of its own.
+ Any time a query references a view, the definition of the view is
+ substituted into the query as if the user had typed it as a subquery
+ instead of the name of the view.
+
+
+ For more information, see
+ .
+
+
+
+
+
+ Visibility map (fork)
+
+
+ A storage structure that keeps metadata about each data page
+ of a table's main fork. The visibility map entry for
+ each page stores two bits: the first one
+ (all-visible) indicates that all tuples
+ in the page are visible to all transactions. The second one
+ (all-frozen) indicates that all tuples
+ in the page are marked frozen.
+
+
+
+
+
+ WAL
+
+
+
+
+ WAL archiver (process)
+
+
+ A process that saves copies of WAL files
+ for the purpose of creating backups or keeping
+ replicas current.
+
+
+ For more information, see
+ .
+
+
+
+
+
+ WAL file
+
+
+ Also known as WAL segment or
+ WAL segment file.
+ Each of the sequentially-numbered files that provide storage space for
+ WAL.
+ The files are all of the same predefined size
+ and are written in sequential order, interspersing changes
+ as they occur in multiple simultaneous sessions.
+ If the system crashes, the files are read in order, and each of the
+ changes is replayed to restore the system to the state it was in
+ before the crash.
+
+
+ Each WAL file can be released after a
+ checkpoint
+ writes all the changes in it to the corresponding data files.
+ Releasing the file can be done either by deleting it, or by changing its
+ name so that it will be used in the future, which is called
+ recycling.
+
+
+ For more information, see
+ .
+
+
+
+
+
+ WAL record
+
+
+ A low-level description of an individual data change.
+ It contains sufficient information for the data change to be
+ re-executed (replayed) in case a system failure
+ causes the change to be lost.
+ WAL records use a non-printable binary format.
+
+
+ For more information, see
+ .
+
+
+
+
+
+ WAL segment
+
+
+
+
+ WAL writer (process)
+
+
+ A process that writes WAL records
+ from shared memory to
+ WAL files.
+
+
+ For more information, see
+ .
+
+
+
+
+
+ Window function
+
+
+ A type of function whose
+ result is based on values found in
+ rows of the same
+ partition.
+ All aggregate functions
+ can be used as window functions, but window functions can also be
+ used to, for example, give ranks to each of the rows in the partition.
+ Also known as analytic functions.
+
+
+ For more information, see
+ .
+
+
+
+
+
+ Write-ahead log
+
+
+ The journal that keeps track of the changes in the
+ instance as user- and
+ system-invoked operations take place.
+ It comprises many individual
+ WAL records written
+ sequentially to WAL files.
+
+
+
+
+
diff --git a/postgresql/high-availability.xml b/postgresql/high-availability.xml
index 48450d9bd..981cc6ec2 100644
--- a/postgresql/high-availability.xml
+++ b/postgresql/high-availability.xml
@@ -181,7 +181,7 @@ ce que les nœuds s'accordent dans un système transactionnel sérialisable.
- Logical Replication
+ Réplication logique
La réplication logique autorise un serveur de bases de données d'envoyer
@@ -224,13 +224,13 @@ ce que les nœuds s'accordent dans un système transactionnel sérialisable.
- Middleware de réplication basé sur les
- instructions
+ Middleware de réplication basé sur le
+ SQL
Avec les middleware de réplication basés
- sur les instructions, un programme intercepte chaque requête SQL et
+ sur le SQL, un programme intercepte chaque requête SQL et
l'envoie à un ou tous les serveurs. Chaque serveur opère indépendamment.
Les requêtes en lecture/écriture doivent être envoyées à tous les
serveurs pour que chaque serveur reçoive les modifications. Les
@@ -324,21 +324,6 @@ ce que les nœuds s'accordent dans un système transactionnel sérialisable.
-
- Solutions commerciales
-
-
-
- Parce que PostgreSQL est libre et facilement
- extensible, certaines sociétés utilisent PostgreSQL
- dans des solutions commerciales fermées
- (closed-source) proposant des fonctionnalités de
- bascule sur incident (failover),
- réplication et répartition de charge.
-
-
-
-
@@ -350,30 +335,37 @@ ce que les nœuds s'accordent dans un système transactionnel sérialisable.
Matrice de fonctionnalités : haute disponibilité, répartition de
charge et réplication
+
+
+
+
+
+
+
+
+ Fonctionnalité
- Bascule par disques partagés (Shared Disk
- Failover)
- Réplication par système de fichiers
+ Disques partagés
+ Répl. par système de fichiersEnvoi des journaux de transactions
- Réplication logique
- Réplication primaire/secondaire basé sur les triggers
- Middleware de réplication
- sur instructions
- Réplication asynchrone multi-primaires
- Réplication synchrone multi-primaires
+ Répl. logique
+ Répl. par triggers
+ Middleware de Répl. SQL
+ Répl. asynch. MM
+ Répl. synch. MM
- Exemple d'implémentations
+ Exemple populairesNASDRBD
- réplication en flux interne
- réplication logique interne, pglogical
+ répl. en flux interne
+ répl. logique interne, pglogicalLondiste, Slonypgpool-IIBucardo
@@ -381,7 +373,7 @@ ce que les nœuds s'accordent dans un système transactionnel sérialisable.
- Méthode de communication
+ Méthode de comm.Disque partagéBlocs disqueWAL
@@ -535,6 +527,14 @@ ce que les nœuds s'accordent dans un système transactionnel sérialisable.
+
+ It should also be noted that because PostgreSQL
+ is open source and easily extended, a number of companies have
+ taken PostgreSQL and created commercial
+ closed-source solutions with unique failover, replication, and load
+ balancing capabilities. These are not discussed here.
+
+
@@ -700,11 +700,13 @@ ce que les nœuds s'accordent dans un système transactionnel sérialisable.
- Le mode de standby est quitté et le serveur bascule en mode de fonctionnement normal
- quand pg_ctl promote est exécuté ou qu'un fichier de trigger est trouvé (promote_trigger_file).
- Avant de basculer, tout WAL immédiatement disponible dans l'archive ou le
- pg_wal sera
- restauré, mais aucune tentative ne sera faite pour se connecter au primaire.
+ Le mode de standby est quitté et le serveur bascule en mode de
+ fonctionnement normal quand pg_ctl promote est exécuté,
+ que pg_promote() est appelé ou qu'un fichier de trigger
+ est trouvé (promote_trigger_file). Avant de basculer,
+ tout WAL immédiatement disponible dans l'archive ou le
+ pg_wal sera restauré, mais aucune tentative ne sera
+ faite pour se connecter au primaire.
@@ -888,24 +890,26 @@ archive_cleanup_command = 'pg_archivecleanup /path/to/archive %r'
Quand le standby est démarré et que primary_conninfo est
positionné correctement, le standby se connectera au primaire après avoir
rejoué tous les fichiers WAL disponibles dans l'archive. Si la connexion
- est établie avec succès, vous verrez un processus walreceiver dans le standby, et
- un processus walsender correspondant sur le primaire.
+ est établie avec succès, vous verrez un processus
+ walreceiver dans le standby, et un processus
+ walsender correspondant sur le primaire.
Authentification
- Il est très important que les privilèges d'accès pour la réplications soient
- paramétrés pour que seuls les utilisateurs de confiance puissent lire le
- flux WAL, parce qu'il est facile d'en extraire des informations
+ Il est très important que les privilèges d'accès pour la réplications
+ soient paramétrés pour que seuls les utilisateurs de confiance puissent
+ lire le flux WAL, parce qu'il est facile d'en extraire des informations
privilégiées. Les serveurs de standby doivent s'authentifier au serveur
- primaire en tant que superutilisateur ou avec un compte disposant de
- l'attribut REPLICATION. Il est recommandé de créer
- un compte utilisateur dédié pour la réplication. Il doit disposer des
- attributs REPLICATION et LOGIN.
- Alors que l'attribut REPLICATION donne beaucoup de
- droits, il ne permet pas à l'utilisateur de modifier de données sur le
- serveur primaire, contrairement à l'attribut SUPERUSER.
+ primaire en tant qu'un compte disposant de l'attribut
+ REPLICATION ou SUPERUSER. Il est
+ recommandé de créer un compte utilisateur dédié pour la réplication. Il
+ doit disposer des attributs REPLICATION et
+ LOGIN. Alors que l'attribut
+ REPLICATION donne beaucoup de droits, il ne permet pas
+ à l'utilisateur de modifier de données sur le serveur primaire,
+ contrairement à l'attribut SUPERUSER.
@@ -1002,10 +1006,11 @@ primary_conninfo = 'host=192.168.1.50 port=5432 user=foo password=foopass'
répertoire d'archive en utilisant .
Cependant, ces méthodes ont souvent pour résultat le stockage de plus de
journaux de transactions que nécessaire, alors que les slots de réplication
- ne conservent que le nombre nécessaire de journaux de transactions. Un
- avantage de ces méthodes est qu'elles limitent l'espace requis pour
- pg_wal ; il n'y a pour le moment aucun moyen d'en
- faire de même en utilisant les slots de réplication.
+ ne conservent que le nombre nécessaire de journaux de transactions. On the
+ other hand, replication slots can retain so many WAL segments that they
+ fill up the space allocated for pg_wal; limits the size of WAL files
+ retained by replication slots.
De la même manière,
@@ -1586,12 +1591,12 @@ synchronous_standby_names = 'FIRST 2 (s1, s2, s3)'
Pour déclencher le failover d'un serveur de standby en log-shipping,
exécutez la commande pg_ctl promote, lancez la fonction
- pg_promote ou créez un fichier trigger (déclencheur)
+ pg_promote() ou créez un fichier trigger (déclencheur)
avec le nom de fichier et le chemin spécifiés par le paramètre
promote_trigger_file de
recovery.conf. Si vous comptez utiliser la commande
pg_ctl promote ou la fonction
- pg_promote pour effectuer la bascule, la variable
+ pg_promote() pour effectuer la bascule, la variable
promote_trigger_file n'est pas nécessaire. S'il s'agit
d'ajouter des serveurs qui ne seront utilisés que pour alléger le serveur
primaire des requêtes en lecture seule, et non pas pour des considérations
@@ -1834,22 +1839,22 @@ if (!triggered)
- Accès par requête - SELECT, COPY TO
+ Accès par requête : SELECT, COPY TO
- Commandes de curseur - DECLARE, FETCH, CLOSE
+ Commandes de curseur : DECLARE, FETCH, CLOSE
- Paramètres - SHOW, SET, RESET
+ Paramètres : SHOW, SET, RESET
- Commandes de gestion de transaction
+ Commandes de gestion de transaction :
@@ -1877,13 +1882,13 @@ if (!triggered)
- Plans et ressources - PREPARE, EXECUTE,
+ Plans et ressources : PREPARE, EXECUTE,
DEALLOCATE, DISCARD
- Plugins et extensions - LOAD
+ Plugins et extensions : LOAD
@@ -1903,7 +1908,7 @@ if (!triggered)
- Langage de Manipulation de Données (LMD ou DML) - INSERT,
+ Langage de Manipulation de Données (LMD ou DML) : INSERT,
UPDATE, DELETE, COPY FROM,
TRUNCATE.
Notez qu'il n'y a pas d'action autorisée qui entraînerait l'exécution d'un
@@ -1916,7 +1921,7 @@ if (!triggered)
- Langage de Définition de Données (LDD ou DDL) - CREATE,
+ Langage de Définition de Données (LDD ou DDL) : CREATE,
DROP, ALTER, COMMENT.
Cette restriction s'applique aussi aux tables temporaires car, pour
mener à bien ces opérations, cela nécessiterait de mettre à jour les
@@ -1947,7 +1952,7 @@ if (!triggered)
- Commandes de gestion de transaction qui positionnent explicitement un état n'étant pas en lecture-seule:
+ Commandes de gestion de transaction qui positionnent explicitement un état n'étant pas en lecture-seule :
@@ -1971,7 +1976,7 @@ if (!triggered)
- Commandes de two-phase commit PREPARE TRANSACTION,
+ Commandes de two-phase commit : PREPARE TRANSACTION,
COMMIT PREPARED, ROLLBACK PREPARED
parce que même les transactions en lecture seule ont besoin d'écrire dans le WAL
durant la phase de préparation (la première des deux phases du two-phase commit).
@@ -1979,7 +1984,7 @@ if (!triggered)
- Mise à jour de séquence - nextval(), setval()
+ Mise à jour de séquence : nextval(), setval()
@@ -2382,18 +2387,18 @@ LOG: database system is ready to accept read only connections
- Langage de Définition de Données (LDD ou DDL) - comme CREATE INDEX
+ Langage de Définition de Données (LDD ou DDL) : comme CREATE INDEX
- Privilège et possession - GRANT, REVOKE,
+ Privilège et possession : GRANT, REVOKE,
REASSIGN
- Commandes de maintenance - ANALYZE, VACUUM,
+ Commandes de maintenance : ANALYZE, VACUUM,
CLUSTER, REINDEX
@@ -2513,10 +2518,10 @@ LOG: database system is ready to accept read only connections
- En fonctionnement normal (pas en récupération), si vous exécutez
+ En fonctionnement normal (pas en restauration), si vous exécutez
DROP USER ou DROP ROLE
pour un rôle ayant le privilège LOGIN alors que cet utilisateur est toujours
- connecté alors rien ne se produit pour cet utilisateur connecté - il reste connecté. L'utilisateur
+ connecté alors rien ne se produit pour cet utilisateur connecté — il reste connecté. L'utilisateur
ne peut toutefois pas se reconnecter. Ce comportement est le même en récupération, un
DROP USER sur le primaire ne déconnecte donc pas cet utilisateur sur le standby.
diff --git a/postgresql/hstore.xml b/postgresql/hstore.xml
index 58f2685c9..4bfedc5e7 100644
--- a/postgresql/hstore.xml
+++ b/postgresql/hstore.xml
@@ -19,6 +19,12 @@
semi-structurées. Les clés et les valeurs sont de simples chaînes de texte.
+
+ This module is considered trusted, that is, it can be
+ installed by non-superusers who have CREATE privilege
+ on the current database.
+
+
Représentation externe de hstore
@@ -103,123 +109,223 @@ SELECT 'a=>1,a=>2'::hstore;
Opérateurshstore
-
-
-
-
- Opérateur
- Description
- Exemple
- Résultat
-
-
-
-
-
- hstore->text
- obtenir la valeur de la clé (NULL si inexistante)
- 'a=>x, b=>y'::hstore -> 'a'
- x
-
-
-
- hstore->text[]
- obtenir les valeurs pour les clés (NULL si inexistant)
- 'a=>x, b=>y, c=>z'::hstore -> ARRAY['c','a']
- {"z","x"}
-
-
-
- hstore||hstore
- concaténation de hstore
- 'a=>b, c=>d'::hstore || 'c=>x, d=>q'::hstore
- "a"=>"b", "c"=>"x", "d"=>"q"
-
-
-
- hstore?text
- hstore contient-il une clé donnée ?
- 'a=>1'::hstore ? 'a'
- t
-
-
-
- hstore?&text[]
- hstore contient-il toutes les clés indiquées ?
- 'a=>1,b=>2'::hstore ?& ARRAY['a','b']
- t
-
-
-
- hstore?|text[]
- hstore contient-il une des clés spécifiées ?
- 'a=>1,b=>2'::hstore ?| ARRAY['b','c']
- t
-
-
-
- hstore@>hstore
- l'opérande gauche contient-il l'opérande droit ?
- 'a=>b, b=>1, c=>NULL'::hstore @> 'b=>1'
- t
-
-
-
- hstore<@hstore
- l'opérande gauche est-il contenu dans l'opérande
- droit ?
- 'a=>c'::hstore <@ 'a=>b, b=>1, c=>NULL'
- f
-
-
-
- hstore-text
- supprimer la clé à partir de l'opérande gauche
- 'a=>1, b=>2, c=>3'::hstore - 'b'::text
- "a"=>"1", "c"=>"3"
-
-
-
- hstore-text[]
- supprimer les clés à partir de l'opérande gauche
- 'a=>1, b=>2, c=>3'::hstore - ARRAY['a','b']
- "c"=>"3"
-
-
-
- hstore-hstore
- supprimer les paires correspondantes à partir de l'opérande
- gauche
- 'a=>1, b=>2, c=>3'::hstore - 'a=>4, b=>2'::hstore
- "a"=>"1", "c"=>"3"
-
-
-
- record#=hstore
- remplacer les chanmps dans record avec des valeurs
- correspondantes à hstore
- see Examples section
-
-
-
-
- %%hstore
- convertir hstore en un tableau de clés et valeurs
- alternatives
- %% 'a=>foo, b=>bar'::hstore
- {a,foo,b,bar}
-
-
-
- %#hstore
- convertir hstore en un tableau clé/valeur à deux
- dimensions
- %# 'a=>foo, b=>bar'::hstore
- {{a,foo},{b,bar}}
-
-
-
-
+
+
+
+
+ Operator
+
+
+ Description
+
+
+ Example(s)
+
+
+
+
+
+
+
+ hstore->text
+ text
+
+
+ Returns value associated with given key, or NULL if
+ not present.
+
+
+ 'a=>x, b=>y'::hstore -> 'a'
+ x
+
+
+
+
+
+ hstore->text[]
+ text[]
+
+
+ Returns values associated with given keys, or NULL
+ if not present.
+
+
+ 'a=>x, b=>y, c=>z'::hstore -> ARRAY['c','a']
+ {"z","x"}
+
+
+
+
+
+ hstore||hstore
+ hstore
+
+
+ Concatenates two hstores.
+
+
+ 'a=>b, c=>d'::hstore || 'c=>x, d=>q'::hstore
+ "a"=>"b", "c"=>"x", "d"=>"q"
+
+
+
+
+
+ hstore?text
+ boolean
+
+
+ Does hstore contain key?
+
+
+ 'a=>1'::hstore ? 'a'
+ t
+
+
+
+
+
+ hstore?&text[]
+ boolean
+
+
+ Does hstore contain all the specified keys?
+
+
+ 'a=>1,b=>2'::hstore ?& ARRAY['a','b']
+ t
+
+
+
+
+
+ hstore?|text[]
+ boolean
+
+
+ Does hstore contain any of the specified keys?
+
+
+ 'a=>1,b=>2'::hstore ?| ARRAY['b','c']
+ t
+
+
+
+
+
+ hstore@>hstore
+ boolean
+
+
+ Does left operand contain right?
+
+
+ 'a=>b, b=>1, c=>NULL'::hstore @> 'b=>1'
+ t
+
+
+
+
+
+ hstore<@hstore
+ boolean
+
+
+ Is left operand contained in right?
+
+
+ 'a=>c'::hstore <@ 'a=>b, b=>1, c=>NULL'
+ f
+
+
+
+
+
+ hstore-text
+ hstore
+
+
+ Deletes key from left operand.
+
+
+ 'a=>1, b=>2, c=>3'::hstore - 'b'::text
+ "a"=>"1", "c"=>"3"
+
+
+
+
+
+ hstore-text[]
+ hstore
+
+
+ Deletes keys from left operand.
+
+
+ 'a=>1, b=>2, c=>3'::hstore - ARRAY['a','b']
+ "c"=>"3"
+
+
+
+
+
+ hstore-hstore
+ hstore
+
+
+ Deletes pairs from left operand that match pairs in the right operand.
+
+
+ 'a=>1, b=>2, c=>3'::hstore - 'a=>4, b=>2'::hstore
+ "a"=>"1", "c"=>"3"
+
+
+
+
+
+ anyelement#=hstore
+ anyelement
+
+
+ Replaces fields in the left operand (which must be a composite type)
+ with matching values from hstore.
+
+
+ ROW(1,3) #= 'f1=>11'::hstore
+ (11,3)
+
+
+
+
+
+ %%hstore
+ text[]
+
+
+ Converts hstore to an array of alternating keys and
+ values.
+
+
+ %% 'a=>foo, b=>bar'::hstore
+ {a,foo,b,bar}
+
+
+
+
+
+ %#hstore
+ text[]
+
+
+ Converts hstore to a two-dimensional key/value array.
+
+
+ %# 'a=>foo, b=>bar'::hstore
+ {{a,foo},{b,bar}}
+
+
+
+
- Fonctions hstore
-
-
-
-
- Fonction
- Type en retour
- Description
- Exemple
- Résultat
-
-
-
-
-
- hstore(record)hstore
- hstore
- construire un hstore à partir d'un RECORD ou d'un
- ROW
- hstore(ROW(1,2))
- f1=>1,f2=>2
-
-
-
- hstore(text[])
- hstore
- construire un hstore à partir d'un tableau, qui peut
- être soit un tableau clé/valeur soit un tableau à deux dimensions
- hstore(ARRAY['a','1','b','2']) || hstore(ARRAY[['c','3'],['d','4']])
- a=>1, b=>2, c=>3, d=>4
-
-
-
- hstore(text[], text[])
- hstore
- construire un hstore à partir des tableaux séparés
- pour les clés et valeurs
- hstore(ARRAY['a','b'], ARRAY['1','2'])
- "a"=>"1","b"=>"2"
-
-
-
- hstore(text, text)
- hstore
- construire un hstore à un seul élément
- hstore('a', 'b')
- "a"=>"b"
-
-
-
- akeys(hstore)akeys
- text[]
- récupérer les clés du hstore dans un tableau
- akeys('a=>1,b=>2')
- {a,b}
-
-
-
- skeys(hstore)skeys
- setof text
- récupérer les clés du hstore dans un ensemble
- skeys('a=>1,b=>2')
-
-
-a
-b
-
-
-
-
- avals(hstore)avals
- text[]
- récupérer les valeurs du hstore dans un tableau
- avals('a=>1,b=>2')
- {1,2}
-
-
-
- svals(hstore)svals
- setof text
- récupérer les valeurs du hstore dans un
- ensemble
- svals('a=>1,b=>2')
-
-
-1
-2
-
-
-
-
- hstore_to_array(hstore)hstore_to_array
- text[]
- récupérer les clés et les valeurs du hstore sous
- la forme d'un tableau de clés et valeurs alternées
- hstore_to_array('a=>1,b=>2')
- {a,1,b,2}
-
-
-
- hstore_to_matrix(hstore)hstore_to_matrix
- text[]
- récupérer les clés et valeurs hstore sous la forme
- d'un tableau à deux dimensions
- hstore_to_matrix('a=>1,b=>2')
- {{a,1},{b,2}}
-
-
-
- hstore_to_json(hstore)hstore_to_json
- json
- obtenir une valeur json à partir d'un hstore,
- convertissant toutes les valeurs non NULL en chaînes JSON
- hstore_to_json('"a key"=>1, b=>t, c=>null, d=>12345, e=>012345, f=>1.234, g=>2.345e+4')
- {"a key": "1", "b": "t", "c": null, "d": "12345", "e": "012345", "f": "1.234", "g": "2.345e+4"}
-
-
-
- hstore_to_jsonb(hstore)hstore_to_jsonb
- jsonb
- obtenir une valeur jsonb à partir d'un hstore,
- convertissant toutes les valeurs non NULL en chaînes JSON
- hstore_to_jsonb('"a key"=>1, b=>t, c=>null, d=>12345, e=>012345, f=>1.234, g=>2.345e+4')
- {"a key": "1", "b": "t", "c": null, "d": "12345", "e": "012345", "f": "1.234", "g": "2.345e+4"}
-
-
-
- hstore_to_json_loose(hstore)hstore_to_json_loose
- json
- obtenir une valeur json à partir d'un hstore, mais
- en essayant de distinguer les valeurs numériques et booléennes pour
- qu'elles ne soient pas entre guillemets dans le JSON
- hstore_to_json_loose('"a key"=>1, b=>t, c=>null, d=>12345, e=>012345, f=>1.234, g=>2.345e+4')
- {"a key": 1, "b": true, "c": null, "d": 12345, "e": "012345", "f": 1.234, "g": 2.345e+4}
-
-
-
- hstore_to_jsonb_loose(hstore)hstore_to_jsonb_loose
- jsonb
- obtenir une valeur jsonb à partir d'un hstore,
- mais essaie de distinguer les valeurs numériques et booléenne pour qu'elles
- soient sans guillemets dans le JSON
- hstore_to_jsonb_loose('"a key"=>1, b=>t, c=>null, d=>12345, e=>012345, f=>1.234, g=>2.345e+4')
- {"a key": 1, "b": true, "c": null, "d": 12345, "e": "012345", "f": 1.234, "g": 2.345e+4}
-
-
-
- slice(hstore, text[])slice
- hstore
- extraire un sous-ensemble d'un hstore
- slice('a=>1,b=>2,c=>3'::hstore, ARRAY['b','c','x'])
- "b"=>"2", "c"=>"3"
-
-
-
- each(hstore)each
- setof (key text, value text)
- récupérer les clés et valeurs du hstore dans un
- ensemble
- select * from each('a=>1,b=>2')
-
-
- key | value
------+-------
- a | 1
- b | 2
-
-
-
-
- exist(hstore,text)exist
- boolean
- le hstore contient-il une clé donnée ?
- exist('a=>1','a')
- t
-
-
-
- defined(hstore,text)defined
- boolean
- le hstore contient-il une valeur non NULL pour la
- clé ?
- defined('a=>NULL','a')
- f
-
-
-
- delete(hstore,text)delete
- hstore
- supprimer toute paire correspondant à une clé donnée
- delete('a=>1,b=>2','b')
- "a"=>"1"
-
-
-
- delete(hstore,text[])
- hstore
- supprimer toute paire de clés correspondante
- delete('a=>1,b=>2,c=>3',ARRAY['a','b'])
- "c"=>"3"
-
-
-
- delete(hstore,hstore)
- hstore
- supprimer les paires correspondant à celle du second argument
- delete('a=>1,b=>2','a=>4,b=>2'::hstore)
- "a"=>"1"
-
-
-
- populate_record(record,hstore)populate_record
- record
- remplacer les champs dans record avec les valeurs
- correspondant au hstore
- voir la section Exemples
-
-
-
-
-
-
-
-
- La fonction hstore_to_json est utilisée quand une
- valeur hstore est convertie en valeur json. De
- la même façon, hstore_to_jsonb est utilisée quand une
- valeur hstore est convertie en valeur jsonb.
-
-
-
-
-
- La fonction populate_record est en fait déclarée avec
- anyelement, et non pas record, en tant que
- premier argument mais elle rejettera les types qui ne sont pas des RECORD
- avec une erreur d'exécution.
-
-
+
+ hstore Functions
+
+
+
+
+ Fonction
+
+
+ Description
+
+
+ Exemple(s)
+
+
+
+
+
+
+
+ hstore
+ hstore ( record )
+ hstore
+
+
+ Construire un hstore à partir d'un RECORD ou d'un
+ ROW
+
+
+ hstore(ROW(1,2))
+ "f1"=>"1", "f2"=>"2"
+
+
+
+
+
+ hstore ( text[] )
+ hstore
+
+
+ Construire un hstore à partir d'un tableau, qui peut
+ être soit un tableau clé/valeur soit un tableau à deux dimensions.
+
+
+ hstore(ARRAY['a','1','b','2'])
+ "a"=>"1", "b"=>"2"
+
+
+ hstore(ARRAY[['c','3'],['d','4']])
+ "c"=>"3", "d"=>"4"
+
+
+
+
+
+ hstore ( text[], text[] )
+ hstore
+
+
+ Construire un hstore à partir des tableaux séparés
+ pour les clés et valeurs.
+
+
+ hstore(ARRAY['a','b'], ARRAY['1','2'])
+ "a"=>"1", "b"=>"2"
+
+
+
+
+
+ hstore ( text, text )
+ hstore
+
+
+ Construire un hstore à un seul élément.
+
+
+ hstore('a', 'b')
+ "a"=>"b"
+
+
+
+
+
+ akeys
+ akeys ( hstore )
+ text[]
+
+
+ Extrait les clés du hstore dans un tableau.
+
+
+ akeys('a=>1,b=>2')
+ {a,b}
+
+
+
+
+
+ skeys
+ skeys ( hstore )
+ setof text
+
+
+ Extrait les clés du hstore dans un ensemble.
+
+
+ skeys('a=>1,b=>2')
+
+
+ a
+ b
+
+
+
+
+
+
+ avals
+ avals ( hstore )
+ text[]
+
+
+ Extrait les valeurs du hstore dans un tableau.
+
+
+ avals('a=>1,b=>2')
+ {1,2}
+
+
+
+
+
+ svals
+ svals ( hstore )
+ setof text
+
+
+ Extrait les valeurs du hstore dans un ensemble.
+
+
+ svals('a=>1,b=>2')
+
+
+ 1
+ 2
+
+
+
+
+
+
+ hstore_to_array
+ hstore_to_array ( hstore )
+ text[]
+
+
+ Extrait les clés et les valeurs du hstore sous
+ la forme d'un tableau de clés et valeurs alternées.
+
+
+ hstore_to_array('a=>1,b=>2')
+ {a,1,b,2}
+
+
+
+
+
+ hstore_to_matrix
+ hstore_to_matrix ( hstore )
+ text[]
+
+
+ Extrait les clés et valeurs hstore sous la forme
+ d'un tableau à deux dimensions.
+
+
+ hstore_to_matrix('a=>1,b=>2')
+ {{a,1},{b,2}}
+
+
+
+
+
+ hstore_to_json
+ hstore_to_json ( hstore )
+ json
+
+
+ Convertit une valeur jsonb à partir d'un hstore,
+ convertissant toutes les valeurs non NULL en chaînes JSON.
+
+
+ Cette fonction est utilisée implicitement quand une valeur
+ hstore est convertie en json.
+
+
+ hstore_to_json('"a key"=>1, b=>t, c=>null, d=>12345, e=>012345, f=>1.234, g=>2.345e+4')
+ {"a key": "1", "b": "t", "c": null, "d": "12345", "e": "012345", "f": "1.234", "g": "2.345e+4"}
+
+
+
+
+
+ hstore_to_jsonb
+ hstore_to_jsonb ( hstore )
+ jsonb
+
+
+ Convertit une valeur jsonb à partir d'un hstore,
+ convertissant toutes les valeurs non NULL en chaînes JSON.
+
+
+ Cette fonction est utilisée implicitement quand une valeur
+ hstore est convertie en jsonb.
+
+
+ hstore_to_jsonb('"a key"=>1, b=>t, c=>null, d=>12345, e=>012345, f=>1.234, g=>2.345e+4')
+ {"a key": "1", "b": "t", "c": null, "d": "12345", "e": "012345", "f": "1.234", "g": "2.345e+4"}
+
+
+
+
+
+ hstore_to_json_loose
+ hstore_to_json_loose ( hstore )
+ json
+
+
+ Convertit un hstore en une valeur json, mais
+ en essayant de distinguer les valeurs numériques et booléennes pour
+ qu'elles ne soient pas entre guillemets dans le JSON.
+
+
+ hstore_to_json_loose('"a key"=>1, b=>t, c=>null, d=>12345, e=>012345, f=>1.234, g=>2.345e+4')
+ {"a key": 1, "b": true, "c": null, "d": 12345, "e": "012345", "f": 1.234, "g": 2.345e+4}
+
+
+
+
+
+ hstore_to_jsonb_loose
+ hstore_to_jsonb_loose ( hstore )
+ jsonb
+
+
+ Convertit un hstore en une valeur jsonn, mais
+ en essayant de distinguer les valeurs numériques et booléennes pour
+ qu'elles ne soient pas entre guillemets dans le JSON.
+
+
+ hstore_to_jsonb_loose('"a key"=>1, b=>t, c=>null, d=>12345, e=>012345, f=>1.234, g=>2.345e+4')
+ {"a key": 1, "b": true, "c": null, "d": 12345, "e": "012345", "f": 1.234, "g": 2.345e+4}
+
+
+
+
+
+ slice
+ slice ( hstore, text[] )
+ hstore
+
+
+ Extrait un sous-ensemble d'un hstore contenant seulement
+ les clés indiquées.
+
+
+ slice('a=>1,b=>2,c=>3'::hstore, ARRAY['b','c','x'])
+ "b"=>"2", "c"=>"3"
+
+
+
+
+
+ each
+ each ( hstore )
+ setof record
+ ( keytext,
+ valuetext )
+
+
+ Extrait les clés et valeurs d'un hstore sous la forme
+ d'un ensemble d'enregistrements.
+
+
+ select * from each('a=>1,b=>2')
+
+
+ key | value
+ -----+-------
+ a | 1
+ b | 2
+
+
+
+
+
+
+ exist
+ exist ( hstore, text )
+ boolean
+
+
+ Le hstore contient-il une clé donnée ?
+
+
+ exist('a=>1','a')
+ t
+
+
+
+
+
+ defined
+ defined ( hstore, text )
+ boolean
+
+
+ Le hstore contient-il une valeur non NULL pour la
+ clé ?
+
+
+ defined('a=>NULL','a')
+ f
+
+
+
+
+
+ delete
+ delete ( hstore, text )
+ hstore
+
+
+ Supprimer toute paire correspondant à une clé donnée.
+
+
+ delete('a=>1,b=>2','b')
+ "a"=>"1"
+
+
+
+
+
+ delete ( hstore, text[] )
+ hstore
+
+
+ Supprimer toute paire de clé correspondante.
+
+
+ delete('a=>1,b=>2,c=>3',ARRAY['a','b'])
+ "c"=>"3"
+
+
+
+
+
+ delete ( hstore, hstore )
+ hstore
+
+
+ Supprimer les paires correspondant à celles du second argument
+
+
+ delete('a=>1,b=>2','a=>4,b=>2'::hstore)
+ "a"=>"1"
+
+
+
+
+
+ populate_record
+ populate_record ( anyelement, hstore )
+ anyelement
+
+
+ Remplacer tous les champs de l'opérande gauche (qui doit être un type composite)
+ avec les valeurs correspondantes du hstore.
+
+
+ populate_record(ROW(1,2), 'f1=>42'::hstore)
+ (42,2)
+
+
+
+
+
@@ -486,6 +740,23 @@ CREATE INDEX hidx ON testhstore USING GIST (h);
CREATE INDEX hidx ON testhstore USING GIN (h);
+
+ gist_hstore_ops GiST opclass approximates a set of
+ key/value pairs as a bitmap signature. Its optional integer parameter
+ siglen determines the
+ signature length in bytes. The default length is 16 bytes.
+ Valid values of signature length are between 1 and 2024 bytes. Longer
+ signatures lead to a more precise search (scanning a smaller fraction of the index and
+ fewer heap pages), at the cost of a larger index.
+
+
+
+ Example of creating such an index with a signature length of 32 bytes:
+
+
+ CREATE INDEX hidx ON testhstore USING GIST (h gist_hstore_ops(siglen=32));
+
+
hstore supporte aussi les index btree ou
hash pour l'opérateur =. Cela permet aux
@@ -522,7 +793,7 @@ UPDATE tab SET h = delete(h, 'k1');
- Convertiir un type record en un hstore :
+ Convertir un type record en un hstore :
CREATE TABLE test (col1 integer, col2 text, col3 text);
@@ -649,7 +920,7 @@ ALTER TABLE nom_table ALTER col_hstore TYPE col_hstore USING hstorecol || '';
- Transforms
+ Transformations
Des extensions supplémentaires sont disponibles pour implémenter des
@@ -665,6 +936,11 @@ ALTER TABLE nom_table ALTER col_hstore TYPE col_hstore USING hstorecol || '';
pour la convention de nommage PL/Python). Si vous les utilisez,
les valeurs hstore sont converties en dictionnaires Python.
+
+
+ Of these additional extensions, hstore_plperl is
+ considered trusted; the rest are not.
+
diff --git a/postgresql/indexam.xml b/postgresql/indexam.xml
index 9df1aab9c..ae2d6336a 100644
--- a/postgresql/indexam.xml
+++ b/postgresql/indexam.xml
@@ -131,6 +131,10 @@ typedef struct IndexAmRoutine
bool amcanparallel;
/* la méthode gère-t-elle les colonnes incluses avec la clause INCLUDE ? */
bool amcaninclude;
+ /* does AM use maintenance_work_mem? */
+ bool amusemaintenanceworkmem;
+ /* OR of parallel vacuum flags */
+ uint8 amparallelvacuumoptions;
/* type de données stocké dans l'index, ou InvalidOid si variable */
Oid amkeytype;
diff --git a/postgresql/indices.xml b/postgresql/indices.xml
index 11ac08661..675152b5f 100644
--- a/postgresql/indices.xml
+++ b/postgresql/indices.xml
@@ -102,8 +102,7 @@
souvent inacceptable. Il est possible d'autoriser les écritures en
parallèle de la création d'un index, mais quelques précautions sont à
prendre. Pour plus d'informations, voir .
+ linkend="sql-createindex-concurrently"/>.
@@ -1337,7 +1336,8 @@ SELECT target FROM tests WHERE subject = 'some-subject' AND success;
Une définition d'index peut indiquer une classe
d'opérateurs pour chaque colonne de l'index.
- CREATE INDEX nom ON table (colonneclasse_operateuroptions de tri, ...);
+ CREATE INDEX nom ON table (colonneclasse_operateur [ ( options classe opérateur ) ] options de tri, ...);
+
La classe d'opérateurs identifie les opérateurs que l'index doit utiliser
sur cette colonne. Par exemple, un index B-tree sur une colonne de type
int4 utilise la classe int4_ops.
diff --git a/postgresql/install-windows.xml b/postgresql/install-windows.xml
index 06fd48c3e..1d9e74f6c 100644
--- a/postgresql/install-windows.xml
+++ b/postgresql/install-windows.xml
@@ -49,8 +49,7 @@
Cygwin pour faire fonctionner un serveur de
production. Il devrait uniquement être utilisé pour le fonctionnement sur
d'anciennes versions de Windows, où la
- construction native ne fonctionne pas, comme Windows
- 98. Les exécutables officiels sont construits avec
+ construction native ne fonctionne pas. Les exécutables officiels sont construits avec
Visual Studio.
diff --git a/postgresql/installation.xml b/postgresql/installation.xml
index a1002001c..9640a1c93 100644
--- a/postgresql/installation.xml
+++ b/postgresql/installation.xml
@@ -190,7 +190,7 @@ su - postgres
Pour compiler le langage de programmation serveur PL/Python,
il faut que Python soit installé avec les
fichiers d'en-tête et le module distutils. La
- version minimum requise est Python 2.4.
+ version minimum requise est Python 2.6.
Python 3 est supporté s'il s'agit d'une
version 3.1 ou ultérieure ; voir la
@@ -251,7 +251,7 @@ su - postgres
OpenSSL est aussi requis pour la génération
de nombres aléatoires sur les plateformes qui n'ont pas
/dev/urandom (sauf Windows). La version minimale
- requise est la 0.9.8.
+ requise est la 1.0.1.
@@ -329,11 +329,11 @@ su - postgres
Il est important de vérifier qu'il y a suffisamment d'espace disque
- disponible. 100 Mo sont nécessaires pour la compilation et 20 Mo pour le
+ disponible. 350 Mo sont nécessaires pour la compilation et 60 Mo pour le
répertoire d'installation. Un groupe de bases de données vide nécessite
- 35 Mo ; les fichiers des bases prennent cinq fois plus d'espace que des
+ 40 Mo ; les fichiers des bases prennent cinq fois plus d'espace que des
fichiers texte contenant les mêmes données. Si des tests de
- régression sont prévus, 150 Mo supplémentaires sont temporairement
+ régression sont prévus, 300 Mo supplémentaires sont temporairement
nécessaires. On peut utiliser la commande df pour
vérifier l'espace disque disponible.
@@ -353,7 +353,10 @@ su - postgres
gunzip postgresql-&version;.tar.gztar xf postgresql-&version;.tar
(Utilisez bunzip2 à la place de gunzip
- si vous avez le fichier .bz2.)
+ si vous avez le fichier .bz2. Also, note that most
+ modern versions of tar can unpack compressed archives
+ directly, so you don't really need the
+ separate gunzip or bunzip2 step.)
Cela crée un répertoire postgresql-&version;
contenant les sources de PostgreSQL dans le répertoire
courant. Le reste de la procédure d'installation s'effectue depuis ce
@@ -388,9 +391,13 @@ su - postgres
de certaines variables dépendantes du système et de détecter certains aléas
relatifs au système d'exploitation. Il créera divers
fichiers dans l'arborescence de compilation pour enregistrer ce qui a été
- trouvé. configure peut aussi être exécuté à
- partir d'un répertoire hors de l'arborescence des sources pour
- conserver l'arborescence de compilation séparée. Cette procédure est aussi
+ trouvé.
+
+
+
+ configure peut aussi être exécuté à
+ partir d'un répertoire hors de l'arborescence des sources, and then build there, pour
+ conserver l'arborescence de compilation séparée from the original source files. Cette procédure est aussi
appelée une construction de type
VPATHVPATH.
Voici comment la faire :
@@ -412,7 +419,231 @@ su - postgres
Les processus de compilation et d'installation peuvent être personnalisés
par l'utilisation d'une ou plusieurs options sur la ligne de commande après
- configure :
+ configure.
+ Typically you would customize the install location, or the set of
+ optional features that are built. configure
+ has a large number of options, which are described in
+ .
+
+
+
+ Also, configure responds to certain environment
+ variables, as described in .
+ These provide additional ways to customize the configuration.
+
+
+
+
+ Build
+
+
+ To start the build, type either of:
+
+make
+make all
+
+ (Remember to use GNU make.)
+ The build will take a few minutes depending on your
+ hardware. The last line displayed should be:
+
+All of PostgreSQL successfully made. Ready to install.
+
+
+
+
+ If you want to build everything that can be built, including the
+ documentation (HTML and man pages), and the additional modules
+ (contrib), type instead:
+
+make world
+
+ The last line displayed should be:
+
+PostgreSQL, contrib, and documentation successfully made. Ready to install.
+
+
+
+
+ If you want to invoke the build from another makefile rather than
+ manually, you must unset MAKELEVEL or set it to zero,
+ for instance like this:
+
+build-postgresql:
+ $(MAKE) -C postgresql MAKELEVEL=0 all
+
+ Failure to do that can lead to strange error messages, typically about
+ missing header files.
+
+
+
+
+ Regression Tests
+
+
+ regression test
+
+
+
+ If you want to test the newly built server before you install it,
+ you can run the regression tests at this point. The regression
+ tests are a test suite to verify that PostgreSQL
+ runs on your machine in the way the developers expected it
+ to. Type:
+
+make check
+
+ (This won't work as root; do it as an unprivileged user.)
+ See for
+ detailed information about interpreting the test results. You can
+ repeat this test at any later time by issuing the same command.
+
+
+
+
+ Installing the Files
+
+
+
+ If you are upgrading an existing system be sure to read
+ ,
+ which has instructions about upgrading a
+ cluster.
+
+
+
+
+ To install PostgreSQL enter:
+
+make install
+
+ This will install files into the directories that were specified
+ in . Make sure that you have appropriate
+ permissions to write into that area. Normally you need to do this
+ step as root. Alternatively, you can create the target
+ directories in advance and arrange for appropriate permissions to
+ be granted.
+
+
+
+ To install the documentation (HTML and man pages), enter:
+
+make install-docs
+
+
+
+
+ If you built the world above, type instead:
+
+make install-world
+
+ This also installs the documentation.
+
+
+
+ You can use make install-strip instead of
+ make install to strip the executable files and
+ libraries as they are installed. This will save some space. If
+ you built with debugging support, stripping will effectively
+ remove the debugging support, so it should only be done if
+ debugging is no longer needed. install-strip
+ tries to do a reasonable job saving space, but it does not have
+ perfect knowledge of how to strip every unneeded byte from an
+ executable file, so if you want to save all the disk space you
+ possibly can, you will have to do manual work.
+
+
+
+ The standard installation provides all the header files needed for client
+ application development as well as for server-side program
+ development, such as custom functions or data types written in C.
+ (Prior to PostgreSQL 8.0, a separate make
+ install-all-headers command was needed for the latter, but this
+ step has been folded into the standard install.)
+
+
+
+ Client-only installation:
+
+ If you want to install only the client applications and
+ interface libraries, then you can use these commands:
+
+make -C src/bin install
+make -C src/include install
+make -C src/interfaces install
+make -C doc install
+
+ src/bin has a few binaries for server-only use,
+ but they are small.
+
+
+
+
+
+
+ Uninstallation:
+
+ To undo the installation use the command make
+ uninstall. However, this will not remove any created directories.
+
+
+
+
+ Cleaning:
+
+
+ After the installation you can free disk space by removing the built
+ files from the source tree with the command make
+ clean. This will preserve the files made by the configure
+ program, so that you can rebuild everything with make
+ later on. To reset the source tree to the state in which it was
+ distributed, use make distclean. If you are going to
+ build for several platforms within the same source tree you must do
+ this and re-configure for each platform. (Alternatively, use
+ a separate build tree for each platform, so that the source tree
+ remains unmodified.)
+
+
+
+
+ If you perform a build and then discover that your configure
+ options were wrong, or if you change anything that configure
+ investigates (for example, software upgrades), then it's a good
+ idea to do make distclean before reconfiguring and
+ rebuilding. Without this, your changes in configuration choices
+ might not propagate everywhere they need to.
+
+
+
+ configure Options
+
+
+ configure options
+
+
+
+ configure's command line options are explained below.
+ This list is not exhaustive (use ./configure --help
+ to get one that is). The options not covered here are meant for
+ advanced use-cases such as cross-compilation, and are documented in
+ the standard Autoconf documentation.
+
+
+
+ Installation Locations
+
+
+ These options control where make install will put
+ the files. The option is sufficient for
+ most cases. If you have special needs, you can customize the
+ installation subdirectories with the other options described in this
+ section. Beware however that changing the relative locations of the
+ different subdirectories may render the installation non-relocatable,
+ meaning you won't be able to move it after installation.
+ (The man and doc locations are
+ not affected by this restriction.) For relocatable installs, you
+ might want to use the --disable-rpath option
+ described later.
+
@@ -425,22 +656,6 @@ su - postgres
sous-répertoires ; aucun fichier ne sera directement installé
sous PREFIX.
-
-
- Pour satisfaire des besoins spécifiques, les sous-répertoires peuvent
- être personnalisés à l'aide des options qui suivent.
- Toutefois, en laissant les options par défaut, l'installation est
- déplaçable, ce qui signifie que le répertoire peut être déplacé après
- installation. (Cela n'affecte pas les emplacements de
- man et doc.)
-
-
-
- Pour les installations déplaçables, on peut utiliser
- l'option --disable-rpath de configure.
- De plus, il faut indiquer au système d'exploitation
- comment trouver les bibliothèques partagées.
-
@@ -603,59 +818,19 @@ su - postgres
libdir pour les modules chargeables dynamiquement.
-
+
+
+ PostgreSQL Features
-
-
-
-
-
- Ajoute STRING au numéro de version de
- PostgreSQL. Cela peut être utilisé, par exemple, pour marquer des
- binaires compilés depuis des instantanés Git ne faisant pas encore
- partie d'une version officielle ou contenant des patchs particuliers
- avec une chaîne de texte supplémentaire telle qu'un identifiant
- git describe ou un numéro de version d'un paquet
- d'une distribution.
-
-
-
-
-
-
-
-
- REPERTOIRES est une liste de répertoires séparés par
- le caractère deux points (:) qui sera ajoutée à la liste de recherche
- des fichiers d'en-tête du compilateur. Si vous avez des paquetages optionnels (tels
- que Readline GNU) installés dans des répertoires non
- conventionnels, vous devez utiliser cette option et probablement aussi
- l'option correspondante.
-
-
- Exemple :
- --with-includes=/opt/gnu/include:/usr/sup/include.
-
-
-
-
-
-
-
-
- REPERTOIRES est une liste de recherche de répertoires
- de bibliothèques séparés par le caractère deux points (:).
- Si des paquets sont installés dans des répertoires non conventionnels,
- il peut s'avérer nécessaire d'utiliser cette option (ainsi que l'option correspondante
- ).
-
-
- Exemple : --with-libraries=/opt/gnu/lib:/usr/sup/lib.
-
-
-
+ The options described in this section enable building of
+ various PostgreSQL features that are not
+ built by default. Most of these are non-default only because they
+ require additional software, as described in
+ .
+
+
@@ -673,23 +848,7 @@ su - postgres
Pour utiliser cette option, une implantation de
- l'API Gettext est nécessaire ; voir ci-dessous.
-
-
-
-
-
-
-
-
- Positionne NUMERO comme numéro de port par défaut
- pour le serveur et les clients. La valeur par défaut est 5432. Le port
- peut toujours être modifié ultérieurement mais, s'il est précisé ici,
- les exécutables du serveur et des clients auront la même valeur
- par défaut, ce qui est vraiment très pratique. Habituellement, la
- seule bonne raison de choisir une autre valeur que celle par défaut
- est l'exécution de plusieurs serveurs
- PostgreSQL sur la même machine.
+ l'API Gettext est nécessaire.
@@ -729,41 +888,45 @@ su - postgres
Tcl installe les fichiers tclConfig.sh, contenant
certaines informations de configuration nécessaires pour compiler le
module d'interfaçage avec Tcl. Ce fichier est trouvé automatiquement
- mais pour utiliser une version différente de Tcl, il faut indiquer le répertoire dans lequel il
- se trouve.
+ mais pour utiliser une version différente de Tcl, il faut indiquer le
+ répertoire dans lequel tclConfig.sh se trouve.
-
-
-
- Permet la compilation avec le support de l'authentification GSSAPI. Sur de
- nombreux systèmes, GSSAPI (qui fait habituellement partie d'une
- installation Kerberos) n'est pas installé dans un emplacement
- recherché par défaut (c'est-à-dire /usr/include,
- /usr/lib), donc vous devez utiliser les options
- et
- en plus de cette option. configure vérifiera les
- fichiers d'en-tête et les bibliothèques nécessaires pour s'assurer
- que votre installation GSSAPI est suffisante avant de continuer.
-
-
-
-
-
-
+
- Le nom par défaut du service principal de Kerberos utilisé.
- postgres est pris par défaut. Il n'y a
- habituellement pas de raison de le changer sauf dans le cas d'un
- environnement Windows, auquel cas il doit être mis en majuscule,
- POSTGRES.
+ Build with support for
+ the ICUICU
+ library, enabling use of ICU collation
+ features (see
+ ).
+ This requires the ICU4C package
+ to be installed. The minimum required version
+ of ICU4C is currently 4.2.
-
-
+
+
+ By default,
+ pkg-configpkg-config
+ will be used to find the required compilation options. This is
+ supported for ICU4C version 4.6 and later.
+ For older versions, or if pkg-config is
+ not available, the variables ICU_CFLAGS
+ and ICU_LIBS can be specified
+ to configure, like in this example:
+
+./configure ... --with-icu ICU_CFLAGS='-I/some/where/include' ICU_LIBS='-L/some/where/lib -licui18n -licuuc -licudata'
+
+ (If ICU4C is in the default search path
+ for the compiler, then you still need to specify nonempty strings in
+ order to avoid use of pkg-config, for
+ example, ICU_CFLAGS=' '.)
+
+
+
@@ -782,8 +945,8 @@ su - postgres
llvm-config, puis
llvm-config-$major-$minor pour toutes les versions
supportées, seront recherché dans PATH. Dans le cas où
- les bons binaires ne sont pas trouvés, il faut utiliser la variable
- LLVM_CONFIG afin de spécifier le chemin à
+ le bon programme n'est pas trouvé, il faut utiliser la variable
+ LLVM_CONFIG afin de spécifier le chemin vers le bon
llvm-config. Par exemple :
./configure ... --with-llvm LLVM_CONFIG='/path/to/llvm/bin/llvm-config'
@@ -801,42 +964,6 @@ su - postgres
-
-
-
-
- Installer PostgreSQL avec la bibliothèque
- ICU
- ICU
- L'installation des paquets ICU4C
- et pkg-config
- pkg-config
- sont un pré-requis.
- La version minimale requise de ICU4C
- est actuellement la 4.2.
-
-
-
- Par défaut,
- pkg-configpkg-config
- sera utilisé pour trouver les options requises de compilation. C'est
- supporté par les versions 4.6 et ultérieures de
- ICU4C. Pour les versions plus anciennes ou
- si pkg-config n'est pas disponible, les
- variables ICU_CFLAGS et ICU_LIBS peuvent
- être données à configure, comme dans cet
- exemple :
-
-./configure ... --with-icu ICU_CFLAGS='-I/some/where/include' ICU_LIBS='-L/some/where/lib -licui18n -licuuc -licudata'
-
- (Si ICU4C est dans le chemin de recherche
- par défaut du compilateur, alors vous aurez besoin d'indiquer une
- chaîne non vide pour éviter l'utilisation de pkg-
- config, par exemple ICU_CFLAGS=' '.)
-
-
-
-
@@ -857,23 +984,18 @@ su - postgres
-
-
-
- Compile le support
- PAMPAM
- (Modules d'Authentification Pluggable).
-
-
-
-
-
-
+
- Compile le support de l'authentification BSD (l'environnement
- d'authentification BSD est uniquement disponible sur OpenBSD
- actuellement.)
+ Build with support for GSSAPI authentication. On many systems, the
+ GSSAPI system (usually a part of the Kerberos installation) is not
+ installed in a location
+ that is searched by default (e.g., /usr/include,
+ /usr/lib), so you must use the options
+ and in
+ addition to this option. configure will check
+ for the required header files and libraries to make sure that
+ your GSSAPI installation is sufficient before proceeding.
@@ -898,42 +1020,37 @@ su - postgres
-
+
- Compile le support des notifications du service systemd
- systemd. Ceci améliore
- l'intégration si le binaire du serveur est lancé par
- systemd mais n'a pas d'impact dans le cas
- contraire (voir pour plus
- d'informations). libsystemd et les
- fichiers en-têtes associés doivent être installés pour pouvoir utiliser
- cette option.
+ Build with PAMPAM
+ (Pluggable Authentication Modules) support.
-
-
+
+
- Évite l'utilisation de la bibliothèque Readline
- (et de celle de libedit).
- Cela désactive l'édition de la ligne de commande et l'historique dans
- psql, ce n'est donc pas recommandé.
+ Build with BSD Authentication support.
+ (The BSD Authentication framework is
+ currently only available on OpenBSD.)
-
+
- Favorise l'utilisation de la bibliothèque libedit
- (sous licence BSD) plutôt que Readline (GPL).
- Cette option a seulement un sens si vous avez installé les deux
- bibliothèques ; dans ce cas, par défaut,
- Readline est utilisé.
+ Build with support
+ for systemdsystemd
+ service notifications. This improves integration if the server
+ is started under systemd but has no impact
+ otherwise; see for more
+ information. libsystemd and the
+ associated header files need to be installed to use this option.
@@ -942,8 +1059,9 @@ su - postgres
- Compile le support de Bonjour. Ceci requiert le support de Bonjour
- dans votre système d'exploitation. Recommandé sur macOS.
+ Build with support for Bonjour automatic service discovery.
+ This requires Bonjour support in your operating system.
+ Recommended on macOS.
@@ -1031,101 +1149,61 @@ su - postgres
- Utilise libxslt pour construire le module . Le
- module contrib/xml2 se base sur cette
- bibliothèque pour réaliser les transformations XSL du XML.
+ Construit avec libxslt, activant le module to perform XSL transformations of XML.
+ must be specified as well.
+
+
-
-
-
-
- Désactive le passage par valeur des valeurs float4,
- entraînant leur passage par référence à la place.
- Cette option a un coût en performance, mais peut être nécessaire pour
- maintenir la compatibilité avec des anciennes fonctions créées par
- l'utilisateur qui sont écrites en C et utilisent la convention d'appel
- version 0. Une meilleure solution à long terme est
- de mettre à jour toutes ces fonctions pour utiliser la convention d'appel
- version 1.
-
-
-
+
+ Anti-Features
-
-
-
-
- Désactive le passage par valeur des valeurs float8,
- entraînant leur passage par référence à la place.
- Cette option a un coût en performance, mais peut être nécessaire pour
- maintenir la compatibilité avec des anciennes fonctions créées par
- l'utilisateur qui sont écrites en C et utilisent la convention d'appel
- version 0. Une meilleure solution à long terme est
- de mettre à jour toutes ces fonctions pour utiliser la convention d'appel
- version 1.
- Notez que cette option n'affecte pas que float8, mais aussi int8 et
- quelques types apparentés comme timestamp.
- Sur les plateformes 32 bits,
- est la valeur par défaut, et il n'est pas permis de sélectionner
- .
-
-
-
+
+ The options described in this section allow disabling
+ certain PostgreSQL features that are built
+ by default, but which might need to be turned off if the required
+ software or system features are not available. Using these options is
+ not recommended unless really necessary.
+
+
-
+
- Indique la taille d'un segment, en gigaoctets.
- La valeur par défaut est de 1 gigaoctet, valeur considérée comme sûre
- pour toutes les plateformes prises en charge.
- Les grandes tables sont divisées en plusieurs fichiers du système
- d'exploitation, chacun de taille égale à la taille de segment.
- Cela évite les problèmes avec les limites de tailles de fichiers qui
- existent sur de nombreuses plateformes. Si votre système d'exploitation
- supporte les fichiers de grande taille (largefile),
- ce qui est le cas de la plupart d'entre eux de nos jours, vous pouvez
- utiliser une plus grande taille de segment. Cela peut être utile
- pour réduire le nombre de descripteurs de fichiers qui peuvent être
- utilisés lors de travail sur des très grandes tables.
- Attention à ne pas sélectionner une valeur plus grande que ce qui est
- supporté par votre plateforme et le(s) système(s) de fichiers que
- vous prévoyez d'utiliser. D'autres outils que vous pourriez vouloir utiliser,
- tels que tar, pourraient aussi limiter la
- taille maximum utilisable pour un fichier.
- Il est recommandé, même si pas vraiment nécessaire, que cette valeur
- soit une puissance de 2.
- Notez que changer cette valeur impose de faire un initdb.
+ Prevents use of the Readline library
+ (and libedit as well). This option disables
+ command-line editing and history in
+ psql.
-
+
- Indique la taille d'un bloc, en kilooctets. C'est
- l'unité de stockage et d'entrée/sortie dans les tables. La valeur
- par défaut, 8 kilooctets, est appropriée pour la plupart des cas ;
- mais d'autres valeurs peuvent être utilisées dans des cas particuliers.
- Cette valeur doit être une puissance de 2 entre 1 et 32 (kilooctets).
- Notez que changer cette valeur impose de faire un initdb.
+ Favors the use of the BSD-licensed libedit library
+ rather than GPL-licensed Readline. This option
+ is significant only if you have both libraries installed; the
+ default in that case is to use Readline.
-
+
- Indique la taille d'un bloc WAL, en kilooctets. C'est
- l'unité de stockage et d'entrée/sortie dans le journal des transactions. La valeur
- par défaut, 8 kilooctets, est appropriée pour la plupart des cas ;
- mais d'autres valeurs peuvent être utilises dans des cas particuliers.
- La valeur doit être une puissance de 2 comprise entre 1 et 64 (kilooctets).
+
+ zlib
+
+ Prevents use of the Zlib library.
+ This disables
+ support for compressed archives in pg_dump
+ and pg_restore.
@@ -1137,7 +1215,7 @@ su - postgres
Autorise le succès de la construction y compris lorsque
PostgreSQL n'a
pas le support spinlock du CPU pour la plateforme. Ce manque de support
- résultera en des performances faibles ; du coup, cette option
+ résultera en des performances très faibles ; du coup, cette option
devra seulement être utilisée si la construction échoue et vous informe
du manque de support de spinlock sur votre plateforme. Si cette option
est requise pour construire PostgreSQL sur votre
@@ -1147,6 +1225,18 @@ su - postgres
+
+
+
+
+ Disable use of CPU atomic operations. This option does nothing on
+ platforms that lack such operations. On platforms that do have
+ them, this will result in poor performance. This option is only
+ useful for debugging or making performance comparisons.
+
+
+
+
@@ -1154,10 +1244,51 @@ su - postgres
Désactive la sécurité des threads pour les bibliothèques clients. Ceci
empêche les threads concurrents dans les programmes
libpq et ECPG
- de contrôler en toute sécurité leurs pointeurs de connexion privés.
+ de contrôler en toute sécurité leurs pointeurs de connexion privés. Use this only on platforms
+ with deficient threading support.
+
+
+
+
+ Build Process Details
+
+
+
+
+
+
+ DIRECTORIES is a colon-separated list of
+ directories that will be added to the list the compiler
+ searches for header files. If you have optional packages
+ (such as GNU Readline) installed in a non-standard
+ location,
+ you have to use this option and probably also the corresponding
+ option.
+
+
+ Example: --with-includes=/opt/gnu/include:/usr/sup/include.
+
+
+
+
+
+
+
+
+ DIRECTORIES is a colon-separated list of
+ directories to search for libraries. You will probably have
+ to use this option (and the corresponding
+ option) if you have packages
+ installed in non-standard locations.
+
+
+ Example: --with-libraries=/opt/gnu/lib:/usr/sup/lib.
+
+
+
@@ -1204,21 +1335,164 @@ su - postgres
-
+
-
- zlib
-
- Évite l'utilisation de la bibliothèque Zlib. Cela
- désactive le support des archives compressées dans
- pg_dump et pg_restore.
- Cette option est seulement là pour les rares systèmes qui ne
- disposent pas de cette bibliothèque.
+ Append STRING to the PostgreSQL version number. You
+ can use this, for example, to mark binaries built from unreleased Git
+ snapshots or containing custom patches with an extra version string,
+ such as a git describe identifier or a
+ distribution package release number.
+
+
+
+
+ Do not mark PostgreSQL's executables
+ to indicate that they should search for shared libraries in the
+ installation's library directory (see ).
+ On most platforms, this marking uses an absolute path to the
+ library directory, so that it will be unhelpful if you relocate
+ the installation later. However, you will then need to provide
+ some other way for the executables to find the shared libraries.
+ Typically this requires configuring the operating system's
+ dynamic linker to search the library directory; see
+ for more detail.
+
+
+
+
+
+
+
+
+
+ Miscellaneous
+
+
+ It's fairly common, particularly for test builds, to adjust the
+ default port number with .
+ The other options in this section are recommended only for advanced
+ users.
+
+
+
+
+
+
+
+
+ Set NUMBER as the default port number for
+ server and clients. The default is 5432. The port can always
+ be changed later on, but if you specify it here then both
+ server and clients will have the same default compiled in,
+ which can be very convenient. Usually the only good reason
+ to select a non-default value is if you intend to run multiple
+ PostgreSQL servers on the same machine.
+
+
+
+
+
+
+
+
+ The default name of the Kerberos service principal used
+ by GSSAPI.
+ postgres is the default. There's usually no
+ reason to change this unless you are building for a Windows
+ environment, in which case it must be set to upper case
+ POSTGRES.
+
+
+
+
+
+
+
+
+ Set the segment size, in gigabytes. Large tables are
+ divided into multiple operating-system files, each of size equal
+ to the segment size. This avoids problems with file size limits
+ that exist on many platforms. The default segment size, 1 gigabyte,
+ is safe on all supported platforms. If your operating system has
+ largefile support (which most do, nowadays), you can use
+ a larger segment size. This can be helpful to reduce the number of
+ file descriptors consumed when working with very large tables.
+ But be careful not to select a value larger than is supported
+ by your platform and the file systems you intend to use. Other
+ tools you might wish to use, such as tar, could
+ also set limits on the usable file size.
+ It is recommended, though not absolutely required, that this value
+ be a power of 2.
+ Note that changing this value breaks on-disk database compatibility,
+ meaning you cannot use pg_upgrade to upgrade to
+ a build with a different segment size.
+
+
+
+
+
+
+
+
+ Set the block size, in kilobytes. This is the unit
+ of storage and I/O within tables. The default, 8 kilobytes,
+ is suitable for most situations; but other values may be useful
+ in special cases.
+ The value must be a power of 2 between 1 and 32 (kilobytes).
+ Note that changing this value breaks on-disk database compatibility,
+ meaning you cannot use pg_upgrade to upgrade to
+ a build with a different block size.
+
+
+
+
+
+
+
+
+ Set the WAL block size, in kilobytes. This is the unit
+ of storage and I/O within the WAL log. The default, 8 kilobytes,
+ is suitable for most situations; but other values may be useful
+ in special cases.
+ The value must be a power of 2 between 1 and 64 (kilobytes).
+ Note that changing this value breaks on-disk database compatibility,
+ meaning you cannot use pg_upgrade to upgrade to
+ a build with a different WAL block size.
+
+
+
+
+
+
+
+
+
+ Developer Options
+
+
+ Most of the options in this section are only of interest for
+ developing or debugging PostgreSQL.
+ They are not recommended for production builds, except
+ for , which can be useful to enable
+ detailed bug reports in the unlucky event that you encounter a bug.
+ On platforms supporting DTrace,
+ may also be reasonable to use in production.
+
+
+
+ When building an installation that will be used to develop code inside
+ the server, it is recommended to use at least the
+ options
+ and .
+
+
+
+
@@ -1237,6 +1511,50 @@ su - postgres
+
+
+
+
+ Enables assertion checks in the server, which test for
+ many cannot happen conditions. This is invaluable for
+ code development purposes, but the tests can slow down the
+ server significantly.
+ Also, having the tests turned on won't necessarily enhance the
+ stability of your server! The assertion checks are not categorized
+ for severity, and so what might be a relatively harmless bug will
+ still lead to server restarts if it triggers an assertion
+ failure. This option is not recommended for production use, but
+ you should have it on for development work or when running a beta
+ version.
+
+
+
+
+
+
+
+
+ Enable tests using the Perl TAP tools. This requires a Perl
+ installation and the Perl module IPC::Run.
+ See for more information.
+
+
+
+
+
+
+
+
+ Enables automatic dependency tracking. With this option, the
+ makefiles are set up so that all affected object files will
+ be rebuilt when any header file is changed. This is useful
+ if you are doing development work, but is just wasted overhead
+ if you intend only to compile once and install. At present,
+ this option only works with GCC.
+
+
+
+
@@ -1259,44 +1577,12 @@ su - postgres
En cas d'utilisation de GCC, tous les programmes et bibliothèques
sont compilés pour qu'elles puissent être profilées. À la sortie du
processus serveur, un sous-répertoire sera créé pour contenir le
- fichier gmon.out à utiliser pour le profilage.
+ fichier gmon.out contenant les données de profilage.
Cette option est à utiliser uniquement avec GCC lors d'un développement.
-
-
-
-
- Permet la vérification des assertions par le
- serveur qui teste de nombreux cas de conditions
- impossibles. Ce qui est inestimable dans le cas de
- développement, mais les tests peuvent ralentir sensiblement le
- système. Activer cette option n'influe pas sur la stabilité de
- votre serveur ! Les assertions vérifiées ne sont pas classées
- par ordre de sévérité et il se peut qu'un bogue anodin fasse
- redémarrer le serveur s'il y a un échec de vérification. Cette
- option n'est pas recommandée dans un environnement de production
- mais vous devriez l'utiliser lors de développement ou pour les
- versions béta.
-
-
-
-
-
-
-
-
- Active la recherche automatique des dépendances. Avec cette option,
- les fichiers makefile sont appelés pour recompiler les fichiers objet
- dès qu'un fichier d'en-tête est modifié. C'est pratique si vous faites
- du développement, mais inutile si vous ne voulez que compiler une fois
- et installer. Pour le moment, cette option ne fonctionne qu'avec GCC.
-
-
-
-
@@ -1315,7 +1601,7 @@ su - postgres
d'environnement DTRACE doit être configurée. Ceci sera
souvent nécessaire car dtrace est typiquement
installé sous /usr/sbin, qui pourrait ne pas être
- dans le chemin.
+ dans votre PATH.
@@ -1323,7 +1609,7 @@ su - postgres
peuvent être indiquées dans la variable d'environnement
DTRACEFLAGS pour le programme dtrace.
Sur Solaris, pour inclure le support de DTrace dans un exécutable 64-bit, ajoutez
- l'option DTRACEFLAGS="-64" pour configure. Par
+ l'option DTRACEFLAGS="-64". Par
exemple, en utilisant le compilateur GCC :
./configure CC='gcc -m64' --enable-dtrace DTRACEFLAGS='-64' ...
@@ -1333,24 +1619,44 @@ su - postgres
-
-
-
-
- Active les tests utilisant les outils TAP de Perl. Cela nécessite une
- installation de Perl et de son module IPC::Run.
- Voir
- pour plus d'informations.
-
-
-
-
+
+
+
+
+ configure Environment Variables
+
+
+ configure environment variables
+
+ In addition to the ordinary command-line options described above,
+ configure responds to a number of environment
+ variables.
+ You can specify environment variables on the
+ configure command line, for example:
+
+./configure CC=/opt/bin/gcc CFLAGS='-O2 -pipe'
+
+ In this usage an environment variable is little different from a
+ command-line option.
+ You can also set such variables beforehand:
+
+export CC=/opt/bin/gcc
+export CFLAGS='-O2 -pipe'
+./configure
+
+ This usage can be convenient because many programs' configuration
+ scripts respond to these variables in similar ways.
+
+
+
+ The most commonly used of these environment variables are
+ CC and CFLAGS.
Si vous préférez utiliser un compilateur C différent de ceux listés par
configure, positionnez la variable
- d'environnement CC pour qu'elle pointe sur le compilateur de
+ CC pour qu'elle pointe sur le compilateur de
votre choix.
Par défaut, configure pointe sur
gcc s'il est disponible, sinon il utilise celui par
@@ -1360,15 +1666,9 @@ su - postgres
- Les variables d'environnement peuvent être indiquées sur la ligne de
- commande configure, par exemple :
- ./configure CC=/opt/bin/gcc CFLAGS='-O2 -pipe'
-
-
-
- Voici une liste des variables importantes qui sont configurables de cette
- façon :
-
+ Voici une liste des variables importantes qui sont configurables de cette
+ façon :
+
@@ -1716,8 +2016,10 @@ su - postgres
programme interpréteur Tcl. Il sera utilisé pour déterminer
- les dépendances pour la construction de PL/Tcl, et il sera substitué
- dans des scripts Tcl.
+ les dépendances pour la construction de PL/Tcl.
+ If this is not set, the following are probed in this
+ order: tclsh tcl tclsh8.6 tclsh86 tclsh8.5 tclsh85
+ tclsh8.4 tclsh84.
@@ -1758,14 +2060,6 @@ su - postgres
-
- Lors de l'écriture de code à l'intérieur du serveur, il est recommandé
- d'utiliser les options (qui active
- un grand nombre de vérifications d'erreur à l'exécution) et
- (qui améliore l'utilité des outils
- de débogage) de configure.
-
-
Si vous utilisez GCC, il est préférable de construire avec un niveau
d'optimisation d'au moins parce que désactiver
@@ -1790,185 +2084,13 @@ su - postgres
chaque fois.
-
-
-
- Compilation
-
-
- Pour démarrer la compilation, saisissez soit
-make
-make all
- (Rappelez-vous d'utiliser GNU
- make). La compilation prendra quelques minutes,
- selon votre matériel. La dernière ligne affichée devrait être
-All of PostgreSQL successfully made. Ready to install.
-
-
-
- Si vous voulez lancer la construction à partir d'un autre fichier
- makefile, vous devez configurer MAKELEVEL ou
- l'initialiser à zéro, par exemple ainsi :
-
-build-postgresql:
- $(MAKE) -C postgresql MAKELEVEL=0 all
-
- Ne pas le faire amène des messages d'erreur étranges, typiquement sur des
- fichiers d'en-tête manquants.
-
-
-
- Si vous voulez construire tout ce qui peut être construit, ceci incluant la
- documentation (HTML et pages man) et les modules supplémentaires
- (contrib), saisissez à la place :
-
-make world
-
- La dernière ligne affichée doit être :
-
-PostgreSQL, contrib, and documentation successfully made. Ready to install.
-
-
-
-
-
- Tests de régression
-
-
- tests de régression
-
-
-
- Si vous souhaitez tester le serveur nouvellement compilé avant de
- l'installer, vous pouvez exécuter les tests de régression à ce moment. Les
- tests de régression sont une suite de tests qui vérifient que
- PostgreSQL fonctionne sur votre machine tel que les
- développeurs l'espèrent. Saisissez
- make check
- (cela ne fonctionne pas en tant que root ; faites-le en tant
- qu'utilisateur sans droits).
- Le contient
- des détails sur l'interprétation des résultats de ces tests. Vous pouvez
- les répéter autant de fois que vous le voulez en utilisant la même
- commande.
-
-
-
-
- Installer les fichiers
-
-
-
- Si vous mettez à jour une version existante, assurez-vous d'avoir bien lu
-
- qui donne les instructions sur la mise à jour d'un
- cluster.
-
-
-
-
- Pour installer PostgreSQL, saisissez
-make install
- Cela installera les fichiers dans les répertoires spécifiés dans
- l'. Assurez-vous d'avoir les droits appropriés
- pour écrire dans ces répertoires. Normalement, vous avez besoin d'être
- superutilisateur pour cette étape. Une alternative consiste à créer les
- répertoires cibles à l'avance et à leur donner les droits appropriés.
-
-
-
- Pour installer la documentation (HTML et pages man), saisissez :
-
-make install-docs
-
-
-
-
- Si vous construisez tout, saisissez ceci à la place :
-
-make install-world
-
- Cela installe aussi la documentation.
-
-
-
- Vous pouvez utiliser make install-strip en lieu et
- place de make install pour dépouiller l'installation
- des exécutables et des bibliothèques. Cela économise un peu d'espace disque.
- Si vous avez effectué la compilation en mode de débogage, ce dépouillage
- l'enlèvera, donc ce n'est à faire seulement si ce mode n'est plus
- nécessaire. install-strip essaie d'être raisonnable
- en sauvegardant de l'espace disque mais il n'a pas une connaissance
- parfaite de la façon de dépouiller un exécutable de tous les octets
- inutiles. Ainsi, si vous voulez sauvegarder le maximum d'espace disque, vous
- devrez faire le travail à la main.
-
-
-
- L'installation standard fournit seulement les fichiers en-têtes nécessaires
- pour le développement d'applications clientes ainsi que pour le développement
- de programmes côté serveur comme des fonctions personnelles ou des
- types de données écrits en C (avant PostgreSQL 8.0, une
- commande make install-all-headers séparée était nécessaire pour
- ce dernier point, mais cette étape a été intégrée à l'installation standard).
-
-
-
- Installation du client uniquement :
-
- Si vous voulez uniquement installer les applications clientes et les
- bibliothèques d'interface, alors vous pouvez utilisez ces commandes :
- make -C src/bin install
-make -C src/include install
-make -C src/interfaces install
-make -C doc install
- src/bin comprend quelques exécutables utilisés seulement
- par le serveur mais ils sont petits.
-
-
-
-
-
-
- Désinstallation :
-
- Pour désinstaller, utilisez la commande make
- uninstall. Cependant, cela ne supprimera pas les répertoires créés.
-
-
-
-
- Nettoyage :
-
-
- Après l'installation, vous pouvez libérer de l'espace en supprimant les
- fichiers issus de la compilation des répertoires sources à l'aide de la
- commande make clean. Cela conservera les fichiers créés par
- la commande configure, ainsi vous pourrez tout recompiler
- ultérieurement avec make. Pour remettre l'arborescence
- source dans l'état initial, utilisez make distclean.
- Si vous voulez effectuer la compilation pour diverses plateformes à partir
- des mêmes sources vous devrez d'abord refaire la configuration à chaque
- fois (autrement, utilisez un répertoire de construction séparé pour chaque
- plateforme, de façon à ce que le répertoire des sources reste inchangé).
-
-
-
-
- Si vous avez compilé et que vous vous êtes rendu compte que les options de
- configure sont fausses ou si vous changez quoi que ce soit que
- configure prenne en compte (par exemple, la mise à jour
- d'applications), alors faire un make distclean avant de
- reconfigurer et recompiler est une bonne idée. Sans ça, vos changements dans
- la configuration ne seront pas répercutés partout où il faut.
-
+ Initialisation post-installation
-
+ Bibliothèques partagées
@@ -2138,7 +2260,7 @@ export MANPATH
PostgreSQL doit fonctionner sur les systèmes
d'exploitation suivants : Linux (toutes les distributions récentes),
- Windows (Win2000 SP4 et ultérieures), FreeBSD, OpenBSD, NetBSD, macOS,
+ Windows (XP et ultérieures), FreeBSD, OpenBSD, NetBSD, macOS,
AIX, HP/UX et Solaris. D'autres systèmes style
Unix peuvent aussi fonctionner mais n'ont pas été récemment testés. Dans
la plupart des cas, toutes les architectures processeurs supportées par
diff --git a/postgresql/intarray.xml b/postgresql/intarray.xml
index 7e79587f9..96b9c5b42 100644
--- a/postgresql/intarray.xml
+++ b/postgresql/intarray.xml
@@ -29,6 +29,12 @@
les données sont traitées comme s'il y avait un tableau linéaire.
+
+ This module is considered trusted, that is, it can be
+ installed by non-superusers who have CREATE privilege
+ on the current database.
+
+
Fonctions et opérateurs d'intarray
@@ -40,196 +46,325 @@
Fonctions intarray
-
-
-
-
- Fonction
- Type en retour
- Description
- Exemple
- Résultat
-
-
-
-
-
- icount(int[])icount
- int
- nombre d'éléments dans un tableau
- icount('{1,2,3}'::int[])
- 3
-
-
-
- sort(int[], text dir)sort
- int[]
- tri du tableau — dir doit valoir asc ou desc
- sort('{1,2,3}'::int[], 'desc')
- {3,2,1}
-
-
-
- sort(int[])
- int[]
- tri en ordre ascendant
- sort(array[11,77,44])
- {11,44,77}
-
-
-
- sort_asc(int[])sort_asc
- int[]
- tri en ordre descendant
-
-
-
-
-
- sort_desc(int[])sort_desc
- int[]
- tri en ordre descendant
-
-
-
-
-
- uniq(int[])uniq
- int[]
- supprime les duplicats adjacents
- uniq(sort('{1,2,3,2,1}'::int[]))
- {1,2,3}
-
-
-
- idx(int[], int item)idx
- int
- index du premier élément correspondant à
- item (0 si aucune correspondance)
- idx(array[11,22,33,22,11], 22)
- 2
-
-
-
- subarray(int[], int start, int len)subarray
- int[]
- portion du tableau commençant à la position start, de longueur len
- subarray('{1,2,3,2,1}'::int[], 2, 3)
- {2,3,2}
-
-
-
- subarray(int[], int start)
- int[]
- portion du tableau commençant à la position start
- subarray('{1,2,3,2,1}'::int[], 2)
- {2,3,2,1}
-
-
-
- intset(int)intset
- int[]
- crée un tableau à un élément
- intset(42)
- {42}
-
-
+
+
+
+
+ Function
+
+
+ Description
+
+
+ Example(s)
+
+
+
+
+
+
+
+ icount
+ icount ( integer[] )
+ integer
+
+
+ Returns the number of elements in the array.
+
+
+ icount('{1,2,3}'::integer[])
+ 3
+
+
+
+
+
+ sort
+ sort ( integer[], dirtext )
+ integer[]
+
+
+ Sorts the array in either ascending or descending order.
+ dir must be asc
+ or desc.
+
+
+ sort('{1,3,2}'::integer[], 'desc')
+ {3,2,1}
+
+
+
+
+
+ sort ( integer[] )
+ integer[]
+
+
+ sort_asc
+ sort_asc ( integer[] )
+ integer[]
+
+
+ Sorts in ascending order.
+
+
+ sort(array[11,77,44])
+ {11,44,77}
+
+
+
+
+
+ sort_desc
+ sort_desc ( integer[] )
+ integer[]
+
+
+ Sorts in descending order.
+
+
+ sort_desc(array[11,77,44])
+ {77,44,11}
+
+
+
+
+
+ uniq
+ uniq ( integer[] )
+ integer[]
+
+
+ Removes adjacent duplicates.
+
+
+ uniq(sort('{1,2,3,2,1}'::integer[]))
+ {1,2,3}
+
+
+
+
+
+ idx
+ idx ( integer[], iteminteger )
+ integer
+
+
+ Returns index of the first array element
+ matching item, or 0 if no match.
+
+
+ idx(array[11,22,33,22,11], 22)
+ 2
+
+
+
+
+
+ subarray
+ subarray ( integer[], startinteger, leninteger )
+ integer[]
+
+
+ Extracts the portion of the array starting at
+ position start, with len
+ elements.
+
+
+ subarray('{1,2,3,2,1}'::integer[], 2, 3)
+ {2,3,2}
+
+
+
+
+
+ subarray ( integer[], startinteger )
+ integer[]
+
+
+ Extracts the portion of the array starting at
+ position start.
+
+
+ subarray('{1,2,3,2,1}'::integer[], 2)
+ {2,3,2,1}
+
+
+
+
+
+ intset
+ intset ( integer )
+ integer[]
+
+
+ Makes a single-element array.
+
+
+ intset(42)
+ {42}
+
+
Opérateurs d'intarray
-
-
-
-
- Opérateur
- Renvoie
- Description
-
-
-
-
-
- int[] && int[]
- boolean
- surcharge — true si les tableaux ont
- au moins un élément en commun
-
-
- int[] @> int[]
- boolean
- contient — true si le tableau gauche
- contient le tableau droit
-
-
- int[] <@ int[]
- boolean
- est contenu — true si le tableau gauche
- est contenu dans le tableau droit
-
-
- # int[]
- int
- nombre d'éléments dans le tableau
-
-
- int[] # int
- int
- index (identique à la fonction idx)
-
-
- int[] + int
- int[]
- pousse l'élément dans le tableau (l'ajoute à la fin du
- tableau)
-
-
- int[] + int[]
- int[]
- concaténation de tableau (le tableau à droite est ajouté à la
- fin du tableau à gauche)
-
-
- int[] - int
- int[]
- supprime les entrée correspondant à l'argument droit du
- tableau
-
-
- int[] - int[]
- int[]
- supprime les éléments du tableau droit à partir de la
- gauche
-
-
- int[] | int
- int[]
- union des arguments
-
-
- int[] | int[]
- int[]
- union des tableaux
-
-
- int[] & int[]
- int[]
- intersection des tableaux
-
-
- int[] @@ query_int
- boolean
- true si le tableau satisfait la requête (voir
- ci-dessous)
-
-
- query_int ~~ int[]
- boolean
- true si le tableau satisfait la requête
- (commutateur de @@)
-
+
+
+
+
+ Operator
+
+
+ Description
+
+
+
+
+
+
+
+ integer[]&&integer[]
+ boolean
+
+
+ Do arrays overlap (have at least one element in common)?
+
+
+
+
+
+ integer[]@>integer[]
+ boolean
+
+
+ Does left array contain right array?
+
+
+
+
+
+ integer[]<@integer[]
+ boolean
+
+
+ Is left array contained in right array?
+
+
+
+
+
+ #integer[]
+ integer
+
+
+ Returns the number of elements in the array.
+
+
+
+
+
+ integer[]#integer
+ integer
+
+
+ Returns index of the first array element
+ matching the right argument, or 0 if no match.
+ (Same as idx function.)
+
+
+
+
+
+ integer[]+integer
+ integer[]
+
+
+ Adds element to end of array.
+
+
+
+
+
+ integer[]+integer[]
+ integer[]
+
+
+ Concatenates the arrays.
+
+
+
+
+
+ integer[]-integer
+ integer[]
+
+
+ Removes entries matching the right argument from the array.
+
+
+
+
+
+ integer[]-integer[]
+ integer[]
+
+
+ Removes elements of the right array from the left array.
+
+
+
+
+
+ integer[]|integer
+ integer[]
+
+
+ Computes the union of the arguments.
+
+
+
+
+
+ integer[]|integer[]
+ integer[]
+
+
+ Computes the union of the arguments.
+
+
+
+
+
+ integer[]&integer[]
+ integer[]
+
+
+ Computes the intersection of the arguments.
+
+
+
+
+
+ integer[]@@query_int
+ boolean
+
+
+ Does array satisfy query? (see below)
+
+
+
+
+
+ query_int~~integer[]
+ boolean
+
+
+ Does array satisfy query? (commutator of @@)
+
+
@@ -276,7 +411,7 @@
- Deux classes d'opérateur pour index GiST sont fournies :
+ Deux classes d'opérateur pour index GiST, avec paramètres, sont fournies :
gist__int_ops (utilisé par défaut) convient pour des
tableaux d'ensembles de données de petites et moyennes tailles alors que
gist__intbig_ops utilise une signature plus importante
@@ -286,6 +421,26 @@
une compression interne à perte.
+
+ gist__int_ops approximates an integer set as an array of
+ integer ranges. Its optional integer parameter numranges
+ determines the maximum number of ranges in
+ one index key. The default value of numranges is 100.
+ Valid values are between 1 and 253. Using larger arrays as GiST index
+ keys leads to a more precise search (scanning a smaller fraction of the index and
+ fewer heap pages), at the cost of a larger index.
+
+
+
+ gist__intbig_ops approximates an integer set as a bitmap
+ signature. Its optional integer parameter siglen
+ determines the signature length in bytes.
+ The default signature length is 16 bytes. Valid values of signature length
+ are between 1 and 2024 bytes. Longer signatures lead to a more precise
+ search (scanning a smaller fraction of the index and fewer heap pages), at
+ the cost of a larger index.
+
+
Il y a aussi une classe d'opérateur GIN,gin__int_ops
supportant les mêmes opérateurs, qui n'est pas disponible par défaut.
@@ -304,8 +459,8 @@
-- un message peut être dans un ou plusieurs sections
CREATE TABLE message (mid INT PRIMARY KEY, sections INT[], ...);
--- crée un index spécialisé
-CREATE INDEX message_rdtree_idx ON message USING GIST (sections gist__int_ops);
+-- crée un index spécialisé with sigature length of 32 bytes
+CREATE INDEX message_rdtree_idx ON message USING GIST (sections gist__int_ops(siglen=32));
-- sélectionne les messages dans la section 1 ou 2 - opérateur OVERLAP
SELECT message.mid FROM message WHERE message.sections && '{1,2}';
diff --git a/postgresql/isn.xml b/postgresql/isn.xml
index e9e411944..c59f24bf6 100644
--- a/postgresql/isn.xml
+++ b/postgresql/isn.xml
@@ -28,6 +28,12 @@
future.
+
+ This module is considered trusted, that is, it can be
+ installed by non-superusers who have CREATE privilege
+ on the current database.
+
+
Types de données
@@ -39,6 +45,8 @@
Types de données isn
+
+ Type de données
@@ -247,39 +255,53 @@
Fonctions de isn
-
-
-
- Fonction
- Retour
- Description
-
-
-
-
-
- isn_weak(boolean)isn_weak
- boolean
- Configure le mode de saisie faible (renvoie le nouveau
- paramétrage)
-
-
- isn_weak()
- boolean
- Récupère le statut actuel du mode faible
-
-
- make_valid(isn)make_valid
- isn
- Valide un nombre invalide (efface le drapeau d'invalidité)
-
-
- is_valid(isn)is_valid
- boolean
- Vérifie la présence du drapeau d'invalidité
-
-
-
+
+
+
+
+ isn_weak
+ isn_weak ( boolean )
+ boolean
+
+
+ Configure le mode de saisie faible et renvoie le nouveau
+ paramétrage.
+
+
+
+
+
+ isn_weak ()
+ boolean
+
+
+ Renvoie le statut actuel du mode faible
+
+
+
+
+
+ make_valid
+ make_valid ( isn )
+ isn
+
+
+ Valide un nombre invalide (efface le drapeau d'invalidité).
+
+
+
+
+
+ is_valid
+ is_valid ( isn )
+ boolean
+
+
+ Vérifie la présence du drapeau d'invalidité
+
+
+
+
@@ -407,7 +429,7 @@ SELECT isbn13(id) FROM test;
Auteur
- Germán Méndez Bravo (Kronuz), 2004 - 2006
+ Germán Méndez Bravo (Kronuz), 2004–2006
diff --git a/postgresql/json.xml b/postgresql/json.xml
index c9ce02868..9906e35f9 100644
--- a/postgresql/json.xml
+++ b/postgresql/json.xml
@@ -63,8 +63,8 @@
- PostgreSQL n'autorise qu'un seul encodage de
- caractères par base de données. Il n'est donc pas possible pour les types
+ RFC 7159 specifies that JSON strings should be encoded in UTF8.
+ Il n'est donc pas possible pour les types
JSON de se conformer de manière rigoureuse à la spécification JSON, à moins
que l'encodage de la base de données soit UTF8. Tenter d'inclure directement
des caractères qui ne peuvent pas être représentés dans l'encodage de la base
@@ -80,9 +80,8 @@
sont vérifiés uniquement pour l'exactitude de la syntaxe (qui est quatre
chiffres hexadécimaux précédés d'un \u). Toutefois, la
fonction d'entrée pour jsonb est plus stricte : elle
- interdit les échappements Unicode pour les caractères autres que ASCII (ceux
- au-delà de U+007F) à moins que l'encodage de la base de
- données soit UTF8. Le type jsonb rejette aussi
+ interdit les échappements Unicode that cannot be represented in the database
+ encoding. Le type jsonb rejette aussi
\u0000 (parce qu'il ne peut pas être représenté avec le
type text de PostgreSQL), et il
insiste pour que chaque utilisation de paires de substitution Unicode désignant
@@ -102,10 +101,8 @@
jsonb. Le fait que la fonction d'entrée json ne
fasse pas ces vérifications peut être considéré comme un artefact
historique, bien qu'elle n'autorise pas un simple stockage (sans
- traitement) d'échappements Unicode JSON dans une base de données en encodage
- non UTF8. En général, il est préférable d'éviter de mélanger des
- échappements Unicode en JSON avec une base de données en encodage non UTF8
- si possible.
+ traitement) d'échappements Unicode JSON in a database encoding that does
+ not support the represented characters.
@@ -141,6 +138,9 @@
Types primitifs JSON et types PostgreSQL correspondants
+
+
+ Type primitif JSON
@@ -152,8 +152,8 @@
stringtext
- \u0000 est interdit, tout comme les échappements
- Unicode non-ASCII si l'encodage de la base de données n'est pas UTF8
+ \u0000 est interdit, as are Unicode escapes
+ representing characters not available in the database encodingnumber
@@ -645,6 +645,13 @@ SELECT jdoc->'guid', jdoc->'name' FROM api WHERE jdoc @> '{"tags": ["qu
vous les utilisez, les valeurs jsonb sont transformées en
dictionnaires, listes et scalaires Python, suivant le cas.
+
+
+ Of these extensions, jsonb_plperl is
+ considered trusted, that is, it can be installed by
+ non-superusers who have CREATE privilege on the
+ current database. The rest require superuser privilege to install.
+
@@ -666,8 +673,8 @@ SELECT jdoc->'guid', jdoc->'name' FROM api WHERE jdoc @> '{"tags": ["qu
La sémantique des prédicats et opérateurs suit généralement celle du SQL.
- Dans le même temps, il propose la manière la plus naturelle de travailler
- avec les données JSON. En effet, la syntaxe SQL/JSONpath utilise certaines des
+ Dans le même temps, il propose une manière naturelle de travailler
+ avec les données JSON. En effet, la syntaxe SQL/JSONpath utilise certaines
conventions JavaScript :
@@ -718,7 +725,7 @@ SELECT jdoc->'guid', jdoc->'name' FROM api WHERE jdoc @> '{"tags": ["qu
Une expression path consiste en une séquence d'éléments path, qui peuvent
- être les suivants :
+ être une des suivants :
@@ -739,7 +746,7 @@ SELECT jdoc->'guid', jdoc->'name' FROM api WHERE jdoc @> '{"tags": ["qu
Opérateurs et méthodes jsonpath listés dans
-
+ .
@@ -768,7 +775,7 @@ SELECT jdoc->'guid', jdoc->'name' FROM api WHERE jdoc @> '{"tags": ["qu
$
- Une variable qui représente le texte JSON à requêter
+ Une variable qui représente le texte JSON en cours de traitement
(l'élément de contexte).
@@ -777,7 +784,7 @@ SELECT jdoc->'guid', jdoc->'name' FROM api WHERE jdoc @> '{"tags": ["qu
Une variable nommée. Le paramètre vars présent dans
de nombreuses fonctions de traitement JSON, permet de définir sa valeur.
- Voir ainsi que les notes
+ Voir
pour plus de détails.
@@ -795,6 +802,8 @@ SELECT jdoc->'guid', jdoc->'name' FROM api WHERE jdoc @> '{"tags": ["qu
Description des modes SSL
+
+
+
+ sslmode
@@ -7842,7 +7956,7 @@ ldap://ldap.mycompany.com/dc=mycompany,dc=com?description?one?(cn=mydatabase)
Si votre application initialise les bibliothèques libssl
et/ou libcrypto et que libpq
est construit avec le support de SSL, vous devez appeler
- la fonction PQinitOpenSSL pour indiquer à
+ la fonction pour indiquer à
libpq que les bibliothèques
libssl et/ou libcrypto ont été
initialisées par votre application, de façon à ce que
@@ -7855,13 +7969,8 @@ ldap://ldap.mycompany.com/dc=mycompany,dc=com?description?one?(cn=mydatabase)
-
-
- PQinitOpenSSL
-
- PQinitOpenSSL
-
-
+
+ PQinitOpenSSLPQinitOpenSSL
@@ -7878,7 +7987,7 @@ ldap://ldap.mycompany.com/dc=mycompany,dc=com?description?one?(cn=mydatabase)
OpenSSL avant d'ouvrir une connexion à la base
de données. Quand do_crypto est différent de
zéro, la bibliothèque libcrypto sera initialisée. Par
- défaut (si PQinitOpenSSL n'est pas appelé), les deux
+ défaut (si n'est pas appelé), les deux
bibliothèques sont initialisées. Quand le support de SSL n'est pas
intégré, cette fonction est présente mais ne fait rien.
@@ -7894,13 +8003,8 @@ ldap://ldap.mycompany.com/dc=mycompany,dc=com?description?one?(cn=mydatabase)
-
-
- PQinitSSL
-
- PQinitSSL
-
-
+
+ PQinitSSLPQinitSSL
@@ -7919,11 +8023,11 @@ ldap://ldap.mycompany.com/dc=mycompany,dc=com?description?one?(cn=mydatabase)
- PQinitSSL est présente depuis
+ est présente depuis
PostgreSQL 8.0, alors que
- PQinitOpenSSL a été ajoutée dans
+ a été ajoutée dans
PostgreSQL 8.4, donc
- PQinitSSL peut être préférée pour les applications
+ peut être préférée pour les applications
qui ont besoin de fonctionner avec les anciennes versions de
libpq.
@@ -7956,7 +8060,7 @@ ldap://ldap.mycompany.com/dc=mycompany,dc=com?description?one?(cn=mydatabase)
-
+ PQisthreadsafePQisthreadsafe
@@ -7995,12 +8099,12 @@ ldap://ldap.mycompany.com/dc=mycompany,dc=com?description?one?(cn=mydatabase)
Les fonctions obsolètes
- PQrequestCancel et
- PQoidStatus
- ne gèrent pas les threads et ne devraient pas être utilisées dans des programmes multithreads. PQrequestCancel peut être
- remplacé par PQcancel.
- PQoidStatus peut être remplacé par
- PQoidValue.
+ et
+
+ ne gèrent pas les threads et ne devraient pas être utilisées dans des programmes multithreads. peut être
+ remplacé par .
+ peut être remplacé par
+ .
@@ -8490,10 +8594,11 @@ main(int argc, char **argv)
*
* CREATE SCHEMA testlibpq3;
* SET search_path = testlibpq3;
+ * SET standard_conforming_strings = ON;
* CREATE TABLE test1 (i int4, t text, b bytea);
*
- * INSERT INTO test1 values (1, 'joe''s place', '\\000\\001\\002\\003\\004');
- * INSERT INTO test1 values (2, 'ho there', '\\004\\003\\002\\001\\000');
+ * INSERT INTO test1 values (1, 'joe''s place', '\000\001\002\003\004');
+ * INSERT INTO test1 values (2, 'ho there', '\004\003\002\001\000');
*
* La sortie attendue est :
*
diff --git a/postgresql/lo.xml b/postgresql/lo.xml
index d40a2db6c..4494f07e6 100644
--- a/postgresql/lo.xml
+++ b/postgresql/lo.xml
@@ -17,6 +17,12 @@
lo et un trigger lo_manage.
+
+ This module is considered trusted, that is, it can be
+ installed by non-superusers who have CREATE privilege
+ on the current database.
+
+
Aperçu
diff --git a/postgresql/lobj.xml b/postgresql/lobj.xml
index 7ea0e5118..2e3af7f95 100644
--- a/postgresql/lobj.xml
+++ b/postgresql/lobj.xml
@@ -118,7 +118,7 @@
Si une erreur survient lors de l'exécution de ces fonctions, la fonction
renverra une valeur autrement impossible, typiquement 0 or -1. Un message
décrivant l'erreur est stocké dans l'objet de connexion et peut être
- récupéré avec la fonction PQerrorMessage.
+ récupéré avec la fonction .
@@ -526,70 +526,82 @@ int lo_truncate64(PGcon *conn, int fd, pg_int64 len);
SQL sont listées dans .
-
- Fonctions SQL pour les Large Objects
-
-
-
- Fonction
- Type en retour
- Description
- Exemple
- Résultat
-
-
-
-
-
-
-
- lo_from_bytea
-
- lo_from_bytea(loidoid, stringbytea)
-
- oid
-
- Crée un Large Object et y stocke les données, renvoyant son OID.
- Passez la valeur 0 pour que le système choisisse un
- OID.
-
- lo_from_bytea(0, '\xffffff00')
- 24528
-
-
-
-
-
- lo_put
-
- lo_put(loidoid, offsetbigint, strbytea)
-
- void
-
- Écrit les données au décalage indiqué.
-
- lo_put(24528, 1, '\xaa')
-
-
-
-
-
-
- lo_get
-
- lo_get(loidoid, frombigint, forint)
-
- bytea
-
- Extrait le contenu ou une sous-chaîne du contenu.
-
- lo_get(24528, 0, 3)
- \xffaaff
-
-
-
-
-
+
+ SQL-Oriented Large Object Functions
+
+
+
+
+ Function
+
+
+ Description
+
+
+ Example(s)
+
+
+
+
+
+
+
+
+ lo_from_bytea
+
+ lo_from_bytea ( loidoid, databytea )
+ oid
+
+
+ Creates a large object and stores data in it.
+ If loid is zero then the system will choose a
+ free OID, otherwise that OID is used (with an error if some large
+ object already has that OID). On success, the large object's OID is
+ returned.
+
+
+ lo_from_bytea(0, '\xffffff00')
+ 24528
+
+
+
+
+
+
+ lo_put
+
+ lo_put ( loidoid, offsetbigint, databytea )
+ void
+
+
+ Writes data starting at the given offset within
+ the large object; the large object is enlarged if necessary.
+
+
+ lo_put(24528, 1, '\xaa')
+
+
+
+
+
+
+
+ lo_get
+
+ lo_get ( loidoid, offsetbigint, lengthinteger )
+ bytea
+
+
+ Extracts the large object's contents, or a substring thereof.
+
+
+ lo_get(24528, 0, 3)
+ \xffaaff
+
+
+
+
+
Il existe d'autres fonctions côté serveur correspondant à chacune des
@@ -690,7 +702,7 @@ SELECT lo_export(image.donnees, '/tmp/motd') FROM image
* testlo.c
* test utilisant des objets larges avec libpq
*
- * Portions Copyright (c) 1996-2019, PostgreSQL Global Development Group
+ * Portions Copyright (c) 1996-2020, PostgreSQL Global Development Group
* Portions Copyright (c) 1994, Regents of the University of California
*
*
diff --git a/postgresql/logical-replication.xml b/postgresql/logical-replication.xml
index c5bb0fe43..e347f9a41 100644
--- a/postgresql/logical-replication.xml
+++ b/postgresql/logical-replication.xml
@@ -456,14 +456,23 @@
- La réplication est seulement possible pour les tables. Autrement dit, les
- tables du côté publication et du côté souscription doivent être des
- tables normales, pas des vues, des vues matérialisées, des tables racines
- ou des tables externes. Dans le cas des partitions, vous pouvez du coup
- répliquer une hiérarchie de partitions une à une, mais vous ne pouvez pas
- répliquer vers une configuration différente du partitionnement. Les
- tentatives de réplication de tables autre que les tables normales
- résulteront en une erreur.
+ Replication is only supported by tables, including partitioned tables.
+ Attempts to replicate other types of relations such as views, materialized
+ views, or foreign tables, will result in an error.
+
+
+
+
+
+ When replicating between partitioned tables, the actual replication
+ originates, by default, from the leaf partitions on the publisher, so
+ partitions on the publisher must also exist on the subscriber as valid
+ target tables. (They could either be leaf partitions themselves, or they
+ could be further subpartitioned, or they could even be independent
+ tables.) Publications can also specify that changes are to be replicated
+ using the identity and schema of the partitioned root table instead of
+ that of the individual leaf partitions in which the changes actually
+ originate (see ).
diff --git a/postgresql/logicaldecoding.xml b/postgresql/logicaldecoding.xml
index 56e8a0862..e0137a4c0 100644
--- a/postgresql/logicaldecoding.xml
+++ b/postgresql/logicaldecoding.xml
@@ -93,9 +93,9 @@ postgres=# SELECT * FROM pg_logical_slot_get_changes('regression_slot', NULL, NU
(0 rows)
postgres=# BEGIN;
-postgres=# INSERT INTO data(data) VALUES('1');
-postgres=# INSERT INTO data(data) VALUES('2');
-postgres=# COMMIT;
+postgres=*# INSERT INTO data(data) VALUES('1');
+postgres=*# INSERT INTO data(data) VALUES('2');
+postgres=*# COMMIT;
postgres=# SELECT * FROM pg_logical_slot_get_changes('regression_slot', NULL, NULL);
lsn | xid | data
@@ -415,7 +415,8 @@ CREATE TABLE autre_table_catalogue(data text) WITH (user_catalog_table = true);
Toute action amenant à une affectation d'identifiant de transaction est
interdite. Cela inclut, entre autres, l'écriture dans des tables,
- l'exécution de changements DDL et l'appel à txid_current().
+ l'exécution de changements DDL et l'appel à
+ pg_current_xact_id().
diff --git a/postgresql/ltree.xml b/postgresql/ltree.xml
index 35d1a3b27..e8931df43 100644
--- a/postgresql/ltree.xml
+++ b/postgresql/ltree.xml
@@ -17,6 +17,12 @@
Des fonctionnalités étendues de recherche sont fournies.
+
+ This module is considered trusted, that is, it can be
+ installed by non-superusers who have CREATE privilege
+ on the current database.
+
+
Définitions
@@ -61,7 +67,8 @@
pour la correspondance de valeurs de type ltree. Un mot
simple établit une correspondance avec ce label dans un chemin. Le
caractère joker (*) est utilisé pour spécifier tout
- nombre de labels (niveaux). Par exemple :
+ nombre de labels (niveaux). These can be joined with dots to form a pattern that
+ must match the whole label path. Par exemple :
foo Correspond au chemin exact foo
*.foo.* Correspond à tout chemin contenant le label foo
@@ -71,19 +78,26 @@ foo Correspond au chemin exact foo
- Les caractères joker peuvent être quantifiés pour restreindre le nombre
- de labels de la correspondance :
+ Les caractères joker et les mots simples peuvent être quantifiés pour
+ restreindre le nombre de labels de la correspondance :
*{n} Correspond à exactement n labels
*{n,} Correspond à au moins n labels
*{n,m} Correspond à au moins n labels mais à pas plus de m
-*{,m} Correspond à au plus m labels — identique à *{0,m}
-
+*{,m} Match at most m labels — same as *{0,m}
+foo{n,m} Match at least n but not more than m occurrences of foo
+foo{,} Match any number of occurrences of foo, including zero
+
+ In the absence of any explicit quantifier, the default for a star symbol
+ is to match any number of labels (that is, {,}) while
+ the default for a non-star item is to match exactly once (that
+ is, {1}).
+
Il existe plusieurs modificateurs qui peuvent être placés à la fin
- d'un label sans joker dans un lquery pour que la
+ d'un élément lquery sans joker pour que la
correspondance se fasse sur plus que la correspondance exacte :
@ Correspondance sans vérification de casse, par exemple a@ établit une correspondance avec A
@@ -102,18 +116,20 @@ foo Correspond au chemin exact foo
- De plus, vous pouvez écrire plusieurs labels séparés avec des
- | (OR) pour établir une correspondance avec un des
- labels, et vous pouvez placer un ! (NOT) au début pour
- établir une correspondance avec tout sauf une des différentes
- alternatives.
+ Also, you can write several possibly-modified non-star items separated with
+ | (OR) to match any of those items, and you can put
+ ! (NOT) at the start of a non-star group to match any
+ label that doesn't match any of the alternatives. A quantifier, if any,
+ goes at the end of the group; it means some number of matches for the
+ group as a whole (that is, some number of labels matching or not matching
+ any of the alternatives).
Voici un exemple annoté d'une lquery :
- Top.*{0,2}.sport*@.!football|tennis.Russ*|Spain
- a. b. c. d. e.
+Top.*{0,2}.sport*@.!football|tennis{1,}.Russ*|Spain
+a. b. c. d. e.
Cette requête établira une correspondance avec tout chemin qui :
@@ -136,8 +152,8 @@ foo Correspond au chemin exact foo
- ensuite un label ne correspondant ni à football ni
- à tennis
+ then has one or more labels, none of which
+ match football nor tennis
@@ -205,190 +221,230 @@ foo Correspond au chemin exact fooOpérateurs ltree
-
-
-
- Opérateur
- Retour
- Description
-
-
-
-
-
- ltree@>ltree
- boolean
- l'argument gauche est-il un ancêtre de l'argument droit (ou
- identique) ?
-
-
-
- ltree<@ltree
- boolean
- l'argument gauche est-il un descendant de l'argument droit (ou
- identique) ?
-
-
-
- ltree~lquery
- boolean
- est-ce que ltree établie une correspondance avec
- lquery ?
-
-
-
- lquery~ltree
- boolean
- est-ce que ltree établie une correspondance avec
- lquery ?
-
-
-
- ltree?lquery[]
- boolean
- est-ce que ltree établie une correspondance avec tout
- any lquery dans ce tableau ?
-
-
-
- lquery[]?ltree
- boolean
- est-ce que ltree établie une correspondance avec tout
- lquery dans ce tableau ?
-
-
-
- ltree@ltxtquery
- boolean
- est-ce que ltree établie une correspondance avec
- ltxtquery ?
-
-
-
- ltxtquery@ltree
- boolean
- est-ce que ltree établie une correspondance avec
- ltxtquery ?
-
-
-
- ltree||ltree
- ltree
- concatène des chemins ltree
-
-
-
- ltree||text
- ltree
- convertit du texte en ltree et concatène
-
-
-
- text||ltree
- ltree
- convertit du texte en ltree et concatène
-
-
-
- ltree[]@>ltree
- boolean
- est-ce que le tableau contient un ancêtre de
- ltree ?
-
-
-
- ltree<@ltree[]
- boolean
- est-ce que le tableau contient un ancêtre de
- ltree ?
-
-
-
- ltree[]<@ltree
- boolean
- est-ce que le tableau contient un descendant de
- ltree ?
-
-
-
- ltree@>ltree[]
- boolean
- est-ce que le tableau contient un descendant de
- ltree ?
-
-
-
- ltree[]~lquery
- boolean
- est-ce que le tableau contient tout chemin correspondant à
- lquery ?
-
-
-
- lquery~ltree[]
- boolean
- est-ce que le tableau contient tout chemin correspondant à
- lquery ?
-
-
-
- ltree[]?lquery[]
- boolean
- est-ce que le tableau ltree contient tout chemin
- correspondant à un lquery ?
-
-
-
- lquery[]?ltree[]
- boolean
- est-ce que le tableau ltree contient tout chemin
- correspondant à un lquery ?
-
-
-
- ltree[]@ltxtquery
- boolean
- est-ce que le tableau contient tout chemin correspondant à
- ltxtquery ?
-
-
-
- ltxtquery@ltree[]
- boolean
- est-ce que le tableau contient tout chemin correspondant à
- ltxtquery ?
-
-
-
- ltree[]?@>ltree
- ltree
- première entrée du tableau ancêtre de
- ltree ; NULL si aucun
-
-
-
- ltree[]?<@ltree
- ltree
- première entrée du tableau descendant de
- ltree ; NULL si aucun
-
-
-
- ltree[]?~lquery
- ltree
- première entrée du tableau établissant une correspondance avec
- lquery ; NULL si aucune
-
-
-
- ltree[]?@ltxtquery
- ltree
- première entrée du tableau établissant une correspondance avec
- ltxtquery ; NULL si aucune
-
-
-
-
+
+
+
+
+ Opérateur
+
+
+ Description
+
+
+
+
+
+
+
+ ltree@>ltree
+ boolean
+
+
+ L'argument gauche est-il un ancêtre de l'argument droit (ou
+ identique) ?
+
+
+
+
+
+ ltree<@ltree
+ boolean
+
+
+ L'argument gauche est-il un descendant de l'argument droit (ou
+ identique) ?
+
+
+
+
+
+ ltree~lquery
+ boolean
+
+
+ lquery~ltree
+ boolean
+
+
+ Est-ce que ltree établie une correspondance avec
+ lquery ??
+
+
+
+
+
+ ltree?lquery[]
+ boolean
+
+
+ lquery[]?ltree
+ boolean
+
+
+ Est-ce que ltree établie une correspondance avec au moins un
+ lquery dans ce tableau ?
+
+
+
+
+
+ ltree@ltxtquery
+ boolean
+
+
+ ltxtquery@ltree
+ boolean
+
+
+ Est-ce que ltree établie une correspondance avec
+ ltxtquery ?
+
+
+
+
+
+ ltree||ltree
+ ltree
+
+
+ Concatène des chemins ltree.
+
+
+
+
+
+ ltree||text
+ ltree
+
+
+ text||ltree
+ ltree
+
+
+ Convertit du texte en ltree et concatène.
+
+
+
+
+
+ ltree[]@>ltree
+ boolean
+
+
+ ltree<@ltree[]
+ boolean
+
+
+ Est-ce que le tableau contient un ancêtre de
+ ltree ?
+
+
+
+
+
+ ltree[]<@ltree
+ boolean
+
+
+ ltree@>ltree[]
+ boolean
+
+
+ Est-ce que le tableau contient un descendant de
+ ltree ??
+
+
+
+
+
+ ltree[]~lquery
+ boolean
+
+
+ lquery~ltree[]
+ boolean
+
+
+ Est-ce que le tableau contient au moins un chemin correspondant à
+ lquery ??
+
+
+
+
+
+ ltree[]?lquery[]
+ boolean
+
+
+ lquery[]?ltree[]
+ boolean
+
+
+ Est-ce que le tableau ltree contient au moins un chemin
+ correspondant à un lquery ?
+
+
+
+
+
+ ltree[]@ltxtquery
+ boolean
+
+
+ ltxtquery@ltree[]
+ boolean
+
+
+ Est-ce que le tableau contient au moins un chemin correspondant à
+ ltxtquery ??
+
+
+
+
+
+ ltree[]?@>ltree
+ ltree
+
+
+ Renvoie la première entrée du tableau ancêtre de
+ ltree ou NULL sinon.
+
+
+
+
+
+ ltree[]?<@ltree
+ ltree
+
+
+ Renvoie la première entrée du tableau qui est un descendant de
+ ltree ou NULL sinon.
+
+
+
+
+
+ ltree[]?~lquery
+ ltree
+
+
+ Renvoie la première entrée du tableau établissant une correspondance avec
+ lquery et NULL sinon.
+
+
+
+
+
+ ltree[]?@ltxtquery
+ ltree
+
+
+ Renvoie la première entrée du tableau établissant une correspondance avec
+ ltxtquery et NULL sinon.
+
+
+
+
@@ -407,114 +463,178 @@ foo Correspond au chemin exact fooFonctions ltree
-
-
-
- Fonction
- Type en retour
- Description
- Exemple
- Résultat
-
-
-
-
-
- subltree(ltree, int start, int end)subltree
- ltree
- sous-chemin de of ltree de la position
- start à la position
- end-1 (counting from 0)
- subltree('Top.Child1.Child2',1,2)
- Child1
-
-
-
- subpath(ltree, int offset, int len)subpath
- ltree
- sous-chemin de ltree commençant à la position
- offset, de longueur len.
- Si offset est négatif, le sous-chemin commence
- de ce nombre à partir de la fin du chemin. Si len
- est négatif, laisse ce nombre de labels depuis la fin du chemin.
- subpath('Top.Child1.Child2',0,2)
- Top.Child1
-
-
-
- subpath(ltree, int offset)
- ltree
- sous-chemin de ltree commençant à la position
- offset, s'étendant à la fin du chemin. Si
- offset est négatif, le sous-chemin commence de
- ce point jusqu'à la fin du chemin.
- subpath('Top.Child1.Child2',1)
- Child1.Child2
-
-
-
- nlevel(ltree)nlevel
- integer
- nombre de labels dans le chemin
- nlevel('Top.Child1.Child2')
- 3
-
-
-
- index(ltree a, ltree b)index
- integer
- position de la première occurrence de b
- dans a ; -1 si introuvable
- index('0.1.2.3.5.4.5.6.8.5.6.8','5.6')
- 6
-
-
-
- index(ltree a, ltree b, int offset)
- integer
- position de la première occurrence de b
- dans a, la recherche commence à
- offset ; un offset
- négatif signifie un commencement à -offset labels
- de la fin du chemin
- index('0.1.2.3.5.4.5.6.8.5.6.8','5.6',-4)
- 9
-
-
-
- text2ltree(text)text2ltree
- ltree
- convertit du text en ltree
-
-
-
-
-
- ltree2text(ltree)ltree2text
- text
- convertit du ltree en text
-
-
-
-
-
- lca(ltree, ltree, ...)lca
- ltree
- plus long ancêtre commun des chemins (jusqu'à huit arguments supportés)
- lca('1.2.3','1.2.3.4.5.6')
- 1.2
-
-
-
- lca(ltree[])
- ltree
- plus long ancêtre commun des chemins dans le tableau
- lca(array['1.2.3'::ltree,'1.2.3.4'])
- 1.2
-
-
-
-
+
+
+
+
+ Function
+
+
+ Description
+
+
+ Example(s)
+
+
+
+
+
+
+
+ subltree
+ subltree ( ltree, startinteger, endinteger )
+ ltree
+
+
+ Returns subpath of ltree from
+ position start to
+ position end-1 (counting from 0).
+
+
+ subltree('Top.Child1.Child2',1,2)
+ Child1
+
+
+
+
+
+ subpath
+ subpath ( ltree, offsetinteger, leninteger )
+ ltree
+
+
+ Returns subpath of ltree starting at
+ position offset, with
+ length len. If offset
+ is negative, subpath starts that far from the end of the path.
+ If len is negative, leaves that many labels off
+ the end of the path.
+
+
+ subpath('Top.Child1.Child2',0,2)
+ Top.Child1
+
+
+
+
+
+ subpath ( ltree, offsetinteger )
+ ltree
+
+
+ Returns subpath of ltree starting at
+ position offset, extending to end of path.
+ If offset is negative, subpath starts that far
+ from the end of the path.
+
+
+ subpath('Top.Child1.Child2',1)
+ Child1.Child2
+
+
+
+
+
+ nlevel
+ nlevel ( ltree )
+ integer
+
+
+ Returns number of labels in path.
+
+
+ nlevel('Top.Child1.Child2')
+ 3
+
+
+
+
+
+ index
+ index ( altree, bltree )
+ integer
+
+
+ Returns position of first occurrence of b in
+ a, or -1 if not found.
+
+
+ index('0.1.2.3.5.4.5.6.8.5.6.8','5.6')
+ 6
+
+
+
+
+
+ index ( altree, bltree, offsetinteger )
+ integer
+
+
+ Returns position of first occurrence of b
+ in a, or -1 if not found. The search starts at
+ position offset;
+ negative offset means
+ start -offset labels from the end of the path.
+
+
+ index('0.1.2.3.5.4.5.6.8.5.6.8','5.6',-4)
+ 9
+
+
+
+
+
+ text2ltree
+ text2ltree ( text )
+ ltree
+
+
+ Casts text to ltree.
+
+
+
+
+
+ ltree2text
+ ltree2text ( ltree )
+ text
+
+
+ Casts ltree to text.
+
+
+
+
+
+ lca
+ lca ( ltree, ltree, ... )
+ ltree
+
+
+ Computes longest common ancestor of paths
+ (up to 8 arguments are supported).
+
+
+ lca('1.2.3','1.2.3.4.5.6')
+ 1.2
+
+
+
+
+
+ lca ( ltree[] )
+ ltree
+
+
+ Computes longest common ancestor of paths in array.
+
+
+ lca(array['1.2.3'::ltree,'1.2.3.4'])
+ 1.2
+
+
+
+
@@ -535,27 +655,50 @@ foo Correspond au chemin exact foo
- Index GiST sur ltree :
+ Index GiST sur ltree (gist_ltree_ops
+ opclass) :
<, <=, =,
>=, >,
@>, <@,
@, ~, ?
- Exemple de la création d'un tel index :
+ gist_ltree_ops GiST opclass approximates a set of
+ path labels as a bitmap signature. Its optional integer parameter
+ siglen determines the
+ signature length in bytes. The default signature length is 8 bytes.
+ Valid values of signature length are between 1 and 2024 bytes. Longer
+ signatures lead to a more precise search (scanning a smaller fraction of the index and
+ fewer heap pages), at the cost of a larger index.
+
+
+ Example of creating such an index with the default signature length of 8 bytes:
CREATE INDEX path_gist_idx ON test USING GIST (path);
+
+
+ Example of creating such an index with a signature length of 100 bytes:
+
+
+CREATE INDEX path_gist_idx ON test USING GIST (path gist_ltree_ops(siglen=100));
- Index GiST sur ltree[] :
+ Index GiST sur ltree[] (gist__ltree_ops
+ opclass) :
ltree[] <@ ltree, ltree @> ltree[],
@, ~, ?
- Exemple de la création d'un tel index :
+ gist__ltree_ops GiST opclass works similarly to
+ gist_ltree_ops and also takes signature length as
+ a parameter. The default value of siglen in
+ gist__ltree_ops is 28 bytes.
+
+
+ Example of creating such an index with the default signature length of 28 bytes:
CREATE INDEX path_gist_idx ON test USING GIST (array_path);
@@ -643,7 +786,7 @@ ltreetest=> SELECT path FROM test WHERE path ~ '*.Astronomy.*';
Top.Collections.Pictures.Astronomy.Astronauts
(7 rows)
-ltreetest=> SELECT path FROM test WHERE path ~ '*.!pictures@.*.Astronomy.*';
+ltreetest=> SELECT path FROM test WHERE path ~ '*.!pictures@.Astronomy.*';
path
------------------------------------
Top.Science.Astronomy
diff --git a/postgresql/maintenance.xml b/postgresql/maintenance.xml
index 0356b0dad..63e28eb5c 100644
--- a/postgresql/maintenance.xml
+++ b/postgresql/maintenance.xml
@@ -840,14 +840,33 @@ HINT: Stop the postmaster and vacuum that database in single-user mode.
et le nombre de lignes est
pg_class.reltuples.
- Le nombre de lignes obsolètes est obtenu à partir du récupérateur de
- statistiques ; c'est un nombre à peu près précis, mis à jour après
- chaque instruction UPDATE et DELETE
- (il est seulement à peu près précis car certaines informations pourraient
- être perdues en cas de grosse charge). Si la valeur de
- relfrozenxid pour la table est supérieure à
- vacuum_freeze_table_age, un VACUUM agressif est exécuté
- pour geler les anciennes lignes et pour avancer
+
+
+
+ The table is also vacuumed if the number of tuples inserted since the last
+ vacuum has exceeded the defined insert threshold, which is defined as:
+
+vacuum insert threshold = vacuum base insert threshold + vacuum insert scale factor * number of tuples
+
+ where the vacuum insert base threshold is
+ ,
+ and vacuum insert scale factor is
+ .
+ Such vacuums may allow portions of the table to be marked as
+ all visible and also allow tuples to be frozen, which
+ can reduce the work required in subsequent vacuums.
+ For tables which receive INSERT operations but no or
+ almost no UPDATE/DELETE operations,
+ it may be beneficial to lower the table's
+ as this may allow
+ tuples to be frozen by earlier vacuums. The number of obsolete tuples and
+ the number of inserted tuples are obtained from the statistics collector;
+ it is a semi-accurate count updated by each UPDATE,
+ DELETE and INSERT operation. (It is
+ only semi-accurate because some information might be lost under heavy
+ load.) If the relfrozenxid value of the table
+ is more than vacuum_freeze_table_age transactions old,
+ an aggressive vacuum is performed to freeze old tuples and advance
relfrozenxid, sinon seules les pages qui ont été
modifiées depuis le dernier VACUUM sont parcourues par l'opération de
VACUUM.
@@ -872,8 +891,7 @@ HINT: Stop the postmaster and vacuum that database in single-user mode.
paramètres de contrôle de l'autovacuum) sont pris dans
postgresql.conf, mais il est possible de les
surcharger table par table ; voir
- pour plus d'informations.
+ pour plus d'informations.
diff --git a/postgresql/manage-ag.xml b/postgresql/manage-ag.xml
index 088cf82f3..79c69d5fd 100644
--- a/postgresql/manage-ag.xml
+++ b/postgresql/manage-ag.xml
@@ -203,7 +203,9 @@
créé. En indiquant
à CREATE DATABASE de copier template0 au
lieu de template1, vous pouvez créer une base de
- données utilisateur vierge qui ne contient aucun des
+ données utilisateur vierge (one where no user-defined objects
+ exist and where the system
+ objects have not been altered) qui ne contient aucun des
ajouts locaux à template1. Ceci est particulièrement
pratique quand on restaure une sauvegarde réalisé avec pg_dump :
le script de dump devrait être restauré dans une base de données
diff --git a/postgresql/mvcc.xml b/postgresql/mvcc.xml
index 450589840..779079444 100644
--- a/postgresql/mvcc.xml
+++ b/postgresql/mvcc.xml
@@ -1086,28 +1086,35 @@ ERREUR: n'a pas pu sérialiser un accès à cause d'une mise à jour en parall
Modes de verrou conflictuels
-
-
-
+
+
+
+
+
+
+
+
+
+ Verrou demandé
- Verrou déjà détenu
+ Mode verrou existant
- ACCESS SHARE
- ROW SHARE
- ROW EXCLUSIVE
- SHARE UPDATE EXCLUSIVE
- SHARE
- SHARE ROW EXCLUSIVE
- EXCLUSIVE
- ACCESS EXCLUSIVE
+ ACCESS SHARE
+ ROW SHARE
+ ROW EXCL.
+ SHARE UPDATE EXCL.
+ SHARE
+ SHARE ROW EXCL.
+ EXCL.
+ ACCESS EXCL.
- ACCESS SHARE
+ ACCESS SHARE
@@ -1118,7 +1125,7 @@ ERREUR: n'a pas pu sérialiser un accès à cause d'une mise à jour en parall
X
- ROW SHARE
+ ROW SHARE
@@ -1129,7 +1136,7 @@ ERREUR: n'a pas pu sérialiser un accès à cause d'une mise à jour en parall
X
- ROW EXCLUSIVE
+ ROW EXCLUSIVE
@@ -1140,7 +1147,7 @@ ERREUR: n'a pas pu sérialiser un accès à cause d'une mise à jour en parall
X
- SHARE UPDATE EXCLUSIVE
+ SHARE UPDATE EXCLUSIVE
@@ -1151,7 +1158,7 @@ ERREUR: n'a pas pu sérialiser un accès à cause d'une mise à jour en parall
X
- SHARE
+ SHAREX
@@ -1162,7 +1169,7 @@ ERREUR: n'a pas pu sérialiser un accès à cause d'une mise à jour en parall
X
- SHARE ROW EXCLUSIVE
+ SHARE ROW EXCLUSIVEX
@@ -1173,7 +1180,7 @@ ERREUR: n'a pas pu sérialiser un accès à cause d'une mise à jour en parall
X
- EXCLUSIVE
+ EXCLUSIVEXX
@@ -1184,7 +1191,7 @@ ERREUR: n'a pas pu sérialiser un accès à cause d'une mise à jour en parall
X
- ACCESS EXCLUSIVE
+ ACCESS EXCLUSIVEXXX
@@ -1322,8 +1329,11 @@ ERREUR: n'a pas pu sérialiser un accès à cause d'une mise à jour en parall
Verrous en conflit au niveau ligne
-
-
+
+
+
+
+
diff --git a/postgresql/oid2name.xml b/postgresql/oid2name.xml
index 1c79ec85c..9ce8cd35e 100644
--- a/postgresql/oid2name.xml
+++ b/postgresql/oid2name.xml
@@ -233,6 +233,13 @@
variables d'environnement supportées par
libpq (voir ).
+
+
+ The environment variable PG_COLOR specifies whether to use
+ color in diagnostic messages. Possible values are
+ always, auto and
+ never.
+
diff --git a/postgresql/pageinspect.xml b/postgresql/pageinspect.xml
index 2eb1c4c27..5e963ddd5 100644
--- a/postgresql/pageinspect.xml
+++ b/postgresql/pageinspect.xml
@@ -234,6 +234,11 @@ test=# SELECT * FROM heap_page_items(get_raw_page('pg_class', 0));
src/include/access/htup_details.h pour des explications sur
les champs renvoyés.
+
+ The heap_tuple_infomask_flags function can be
+ used to unpack the flag bits of t_infomask
+ and t_infomask2 for heap tuples.
+
@@ -286,6 +291,42 @@ test=# SELECT * FROM heap_page_item_attrs(get_raw_page('pg_class', 0), 'pg_class
+
+
+
+ heap_tuple_infomask_flags(t_infomask integer, t_infomask2 integer) returns record
+
+ heap_tuple_infomask_flags
+
+
+
+
+ heap_tuple_infomask_flags decodes the
+ t_infomask and
+ t_infomask2 returned by
+ heap_page_items into a human-readable
+ set of arrays made of flag names, with one column for all
+ the flags and one column for combined flags. For example:
+
+test=# SELECT t_ctid, raw_flags, combined_flags
+ FROM heap_page_items(get_raw_page('pg_class', 0)),
+ LATERAL heap_tuple_infomask_flags(t_infomask, t_infomask2)
+ WHERE t_infomask IS NOT NULL OR t_infomask2 IS NOT NULL;
+
+ This function should be called with the same arguments as the return
+ attributes of heap_page_items.
+
+
+ Combined flags are displayed for source-level macros that take into
+ account the value of more than one raw bit, such as
+ HEAP_XMIN_FROZEN.
+
+
+ See src/include/access/htup_details.h for
+ explanations of the flag names returned.
+
+
+
@@ -311,13 +352,14 @@ test=# SELECT * FROM heap_page_item_attrs(get_raw_page('pg_class', 0), 'pg_class
test=# SELECT * FROM bt_metap('pg_cast_oid_index');
-[ RECORD 1 ]-----------+-------
magic | 340322
-version | 3
+version | 4
root | 1
level | 0
fastroot | 1
fastlevel | 0
oldest_xact | 582
last_cleanup_num_tuples | 1000
+allequalimage | f
@@ -340,11 +382,11 @@ test=# SELECT * FROM bt_page_stats('pg_cast_oid_index', 1);
-[ RECORD 1 ]-+-----
blkno | 1
type | l
-live_items | 256
+live_items | 224
dead_items | 0
-avg_item_size | 12
+avg_item_size | 16
page_size | 8192
-free_size | 4056
+free_size | 3668
btpo_prev | 0
btpo_next | 0
btpo | 0
@@ -367,24 +409,57 @@ btpo_flags | 3
sur tous les éléments d'une page d'index btree. Par exemple :
-test=# SELECT * FROM bt_page_items('pg_cast_oid_index', 1);
- itemoffset | ctid | itemlen | nulls | vars | data
-------------+---------+---------+-------+------+-------------
- 1 | (0,1) | 12 | f | f | 23 27 00 00
- 2 | (0,2) | 12 | f | f | 24 27 00 00
- 3 | (0,3) | 12 | f | f | 25 27 00 00
- 4 | (0,4) | 12 | f | f | 26 27 00 00
- 5 | (0,5) | 12 | f | f | 27 27 00 00
- 6 | (0,6) | 12 | f | f | 28 27 00 00
- 7 | (0,7) | 12 | f | f | 29 27 00 00
- 8 | (0,8) | 12 | f | f | 2a 27 00 00
+test=# SELECT itemoffset, ctid, itemlen, nulls, vars, data, dead, htid, tids[0:2] AS some_tids
+ FROM bt_page_items('tenk2_hundred', 5);
+ itemoffset | ctid | itemlen | nulls | vars | data | dead | htid | some_tids
+------------+-----------+---------+-------+------+-------------------------+------+--------+---------------------
+ 1 | (16,1) | 16 | f | f | 30 00 00 00 00 00 00 00 | | |
+ 2 | (16,8292) | 616 | f | f | 24 00 00 00 00 00 00 00 | f | (1,6) | {"(1,6)","(10,22)"}
+ 3 | (16,8292) | 616 | f | f | 25 00 00 00 00 00 00 00 | f | (1,18) | {"(1,18)","(4,22)"}
+ 4 | (16,8292) | 616 | f | f | 26 00 00 00 00 00 00 00 | f | (4,18) | {"(4,18)","(6,17)"}
+ 5 | (16,8292) | 616 | f | f | 27 00 00 00 00 00 00 00 | f | (1,2) | {"(1,2)","(1,19)"}
+ 6 | (16,8292) | 616 | f | f | 28 00 00 00 00 00 00 00 | f | (2,24) | {"(2,24)","(4,11)"}
+ 7 | (16,8292) | 616 | f | f | 29 00 00 00 00 00 00 00 | f | (2,17) | {"(2,17)","(11,2)"}
+ 8 | (16,8292) | 616 | f | f | 2a 00 00 00 00 00 00 00 | f | (0,25) | {"(0,25)","(3,20)"}
+ 9 | (16,8292) | 616 | f | f | 2b 00 00 00 00 00 00 00 | f | (0,10) | {"(0,10)","(0,14)"}
+ 10 | (16,8292) | 616 | f | f | 2c 00 00 00 00 00 00 00 | f | (1,3) | {"(1,3)","(3,9)"}
+ 11 | (16,8292) | 616 | f | f | 2d 00 00 00 00 00 00 00 | f | (6,28) | {"(6,28)","(11,1)"}
+ 12 | (16,8292) | 616 | f | f | 2e 00 00 00 00 00 00 00 | f | (0,27) | {"(0,27)","(1,13)"}
+ 13 | (16,8292) | 616 | f | f | 2f 00 00 00 00 00 00 00 | f | (4,17) | {"(4,17)","(4,21)"}
+(13 rows)
- Dans un bloc feuille d'un index B-tree, ctid
- pointe vers un enregistrement de la table. Dans une page interne, la
- partie du numéro de bloc du ctid pointe vers
- une autre page de l'index lui-même alors que la partie décalage (le
- deuxième nombre) est ignoré et vaut généralement 1.
+ This is a B-tree leaf page. All tuples that point to the table
+ happen to be posting list tuples (all of which store a total of
+ 100 6 byte TIDs). There is also a high key tuple
+ at itemoffset number 1.
+ ctid is used to store encoded
+ information about each tuple in this example, though leaf page
+ tuples often store a heap TID directly in the
+ ctid field instead.
+ tids is the list of TIDs stored as a
+ posting list.
+
+
+ In an internal page (not shown), the block number part of
+ ctid is a downlink,
+ which is a block number of another page in the index itself.
+ The offset part (the second number) of
+ ctid stores encoded information about
+ the tuple, such as the number of columns present (suffix
+ truncation may have removed unneeded suffix columns). Truncated
+ columns are treated as having the value minus
+ infinity.
+
+
+ htid shows a heap TID for the tuple,
+ regardless of the underlying tuple representation. This value
+ may match ctid, or may be decoded
+ from the alternative representations used by posting list tuples
+ and tuples from internal pages. Tuples in internal pages
+ usually have the implementation level heap TID column truncated
+ away, which is represented as a NULL
+ htid value.
Notez que le premier élément une page (autre que la dernière, toute page
@@ -392,13 +467,19 @@ test=# SELECT * FROM bt_page_items('pg_cast_oid_index', 1);
btpo_next) est la clé haute du
bloc, ce qui signifie que ces données (data)
serve comme limite haute de tous les éléments apparaissant sur la page,
- alors que son champ ctid n'a aucune
- signification. De plus, sur les blocs qui ne sont pas des feuilles, le
- premier élément contenant de vraies données (autrement dit le premier
- élément qui n'est pas une clé haute) est un élément moins
- infinité sans valeur réelle dans son champ
- data. Néanmoins, un tel élément doit avoir un
- lien valide dans son champ ctid.
+ alors que its ctid field does not point to
+ another block. Also, on internal pages, the first real data
+ item (the first item that is not a high key) reliably has every
+ column truncated away, leaving no actual value in its
+ data field. Such an item does have a
+ valid downlink in its ctid field,
+ however.
+
+
+ For more details about the structure of B-tree indexes, see
+ . For more details about
+ deduplication and posting lists, see .
@@ -419,17 +500,24 @@ test=# SELECT * FROM bt_page_items('pg_cast_oid_index', 1);
get_raw_page devrait être passé en argument. Ainsi
le précédent exemple pourrait également être réécrit ainsi :
-test=# SELECT * FROM bt_page_items(get_raw_page('pg_cast_oid_index', 1));
- itemoffset | ctid | itemlen | nulls | vars | data
-------------+---------+---------+-------+------+-------------
- 1 | (0,1) | 12 | f | f | 23 27 00 00
- 2 | (0,2) | 12 | f | f | 24 27 00 00
- 3 | (0,3) | 12 | f | f | 25 27 00 00
- 4 | (0,4) | 12 | f | f | 26 27 00 00
- 5 | (0,5) | 12 | f | f | 27 27 00 00
- 6 | (0,6) | 12 | f | f | 28 27 00 00
- 7 | (0,7) | 12 | f | f | 29 27 00 00
- 8 | (0,8) | 12 | f | f | 2a 27 00 00
+test=# SELECT itemoffset, ctid, itemlen, nulls, vars, data, dead, htid, tids[0:2] AS some_tids
+ FROM bt_page_items(get_raw_page('tenk2_hundred', 5));
+ itemoffset | ctid | itemlen | nulls | vars | data | dead | htid | some_tids
+------------+-----------+---------+-------+------+-------------------------+------+--------+---------------------
+ 1 | (16,1) | 16 | f | f | 30 00 00 00 00 00 00 00 | | |
+ 2 | (16,8292) | 616 | f | f | 24 00 00 00 00 00 00 00 | f | (1,6) | {"(1,6)","(10,22)"}
+ 3 | (16,8292) | 616 | f | f | 25 00 00 00 00 00 00 00 | f | (1,18) | {"(1,18)","(4,22)"}
+ 4 | (16,8292) | 616 | f | f | 26 00 00 00 00 00 00 00 | f | (4,18) | {"(4,18)","(6,17)"}
+ 5 | (16,8292) | 616 | f | f | 27 00 00 00 00 00 00 00 | f | (1,2) | {"(1,2)","(1,19)"}
+ 6 | (16,8292) | 616 | f | f | 28 00 00 00 00 00 00 00 | f | (2,24) | {"(2,24)","(4,11)"}
+ 7 | (16,8292) | 616 | f | f | 29 00 00 00 00 00 00 00 | f | (2,17) | {"(2,17)","(11,2)"}
+ 8 | (16,8292) | 616 | f | f | 2a 00 00 00 00 00 00 00 | f | (0,25) | {"(0,25)","(3,20)"}
+ 9 | (16,8292) | 616 | f | f | 2b 00 00 00 00 00 00 00 | f | (0,10) | {"(0,10)","(0,14)"}
+ 10 | (16,8292) | 616 | f | f | 2c 00 00 00 00 00 00 00 | f | (1,3) | {"(1,3)","(3,9)"}
+ 11 | (16,8292) | 616 | f | f | 2d 00 00 00 00 00 00 00 | f | (6,28) | {"(6,28)","(11,1)"}
+ 12 | (16,8292) | 616 | f | f | 2e 00 00 00 00 00 00 00 | f | (0,27) | {"(0,27)","(1,13)"}
+ 13 | (16,8292) | 616 | f | f | 2f 00 00 00 00 00 00 00 | f | (4,17) | {"(4,17)","(4,21)"}
+(13 rows)
Tous les autres étails sont les même qu'expliqué au point précédent.
diff --git a/postgresql/perform.xml b/postgresql/perform.xml
index b58559fa9..3ff154326 100644
--- a/postgresql/perform.xml
+++ b/postgresql/perform.xml
@@ -340,7 +340,47 @@ EXPLAIN SELECT * FROM tenk1 WHERE unique1 = 42;
requêtes qui ne récupèrent qu'une seule ligne, ou pour les requêtes qui
ont une condition ORDER BY qui correspond à l'ordre
de l'index, car cela ne nécessite aucune étape supplémentaire pour satisfaire
- l'ORDER BY.
+ l'ORDER BY. In this example, adding
+ ORDER BY unique1 would use the same plan because the
+ index already implicitly provides the requested ordering.
+
+
+
+ The planner may implement an ORDER BY clause in several
+ ways. The above example shows that such an ordering clause may be
+ implemented implicitly. The planner may also add an explicit
+ sort step:
+
+
+EXPLAIN SELECT * FROM tenk1 ORDER BY unique1;
+ QUERY PLAN
+-------------------------------------------------------------------
+ Sort (cost=1109.39..1134.39 rows=10000 width=244)
+ Sort Key: unique1
+ -> Seq Scan on tenk1 (cost=0.00..445.00 rows=10000 width=244)
+
+
+ If a part of the plan guarantees an ordering on a prefix of the
+ required sort keys, then the planner may instead decide to use an
+ incremental sort step:
+
+
+EXPLAIN SELECT * FROM tenk1 ORDER BY four, ten LIMIT 100;
+ QUERY PLAN
+-------------------------------------------------------------------&zwsp;-----------------------------------
+ Limit (cost=521.06..538.05 rows=100 width=244)
+ -> Incremental Sort (cost=521.06..2220.95 rows=10000 width=244)
+ Sort Key: four, ten
+ Presorted Key: four
+ -> Index Scan using index_tenk1_on_four on tenk1 (cost=0.29..1510.08 rows=10000 width=244)
+
+
+ Compared to regular sorts, sorting incrementally allows returning tuples
+ before the entire result set has been sorted, which particularly enables
+ optimizations with LIMIT queries. It may also reduce
+ memory usage and the likelihood of spilling sorts to disk, but it comes at
+ the cost of the increased overhead of splitting the result set into multiple
+ sorting batches.
@@ -1259,7 +1299,8 @@ SELECT stxname, stxkeys, stxddependencies
Les dépendances fonctionnelles sont pour le moment uniquement appliquées
pour les conditions sur une simple égalité entre une colonne et une
- valeur constante. Elles ne sont pas utilisées pour améliorer
+ valeur constante and IN clauses with constant values.
+ Elles ne sont pas utilisées pour améliorer
l'estimation sur les conditions d'égalité entre deux colonnes ou la
comparaison d'une colonne avec une expression ni pour les clauses
d'intervalle, LIKE ou tout autre type de condition.
@@ -1671,9 +1712,9 @@ WHERE quelquechosedautre;
transactions ne sont pas impactés, car, en cas d'erreur, les fichiers
contenant les données nouvellement chargées seront supprimés de toute
façon. Néanmoins, cette considération ne s'applique que quand vaut minimal pour les tables
- non partitionnées, car toutes les commandes doivent écrire dans les
- journaux de transaction dans les autres cas.
+ linkend="guc-wal-level"/> vaut minimal car toutes les
+ commandes doivent écrire dans les journaux de transaction dans les autres
+ cas.
@@ -1784,41 +1825,13 @@ WHERE quelquechosedautre;
En dehors d'éviter le temps de traitement des données des journaux de
transactions par l'archiveur ou l'émetteur des journaux de transactions,
- le faire rendrait certaines commandes plus rapides parce qu'elles sont
- conçues pour ne pas écrire du tout dans les journaux de transactions si
- wal_level vaut minimal. (Elles
- peuvent garantir la sûreté des données de façon moins coûteuse en exécutant
- un fsync à la fin plutôt qu'en écrivant les journaux
- de transactions :
-
-
-
- CREATE TABLE AS SELECT
-
-
-
-
- CREATE INDEX (et les variantes telles que
- ALTER TABLE ADD PRIMARY KEY)
-
-
-
-
- ALTER TABLE SET TABLESPACE
-
-
-
-
- CLUSTER
-
-
-
-
- COPY FROM, quand la table cible vient d'être créée
- ou vidée auparavant dans la transaction
-
-
-
+ le faire rendrait certaines commandes plus rapides parce qu'elles
+ n'écrivent pas du tout dans les journaux de transactions si
+ wal_level vaut minimal and the
+ current subtransaction (or top-level transaction) created or truncated the
+ table or index they change. (Elles peuvent garantir la sûreté des données
+ de façon moins coûteuse en exécutant un fsync à la
+ fin plutôt qu'en écrivant les journaux de transactions).
diff --git a/postgresql/pgbuffercache.xml b/postgresql/pgbuffercache.xml
index 8de597281..22f7746ee 100644
--- a/postgresql/pgbuffercache.xml
+++ b/postgresql/pgbuffercache.xml
@@ -44,79 +44,102 @@
Colonnes de pg_buffercache
-
+
- Nom
- Type
- Références
- Description
+
+ Type de la colonne
+
+
+ Description
+
-
+
- bufferid
- integer
-
- ID, qui va de 1 à shared_buffers
+
+ bufferidinteger
+
+
+ ID, qui va de 1 à shared_buffers
+
- relfilenode
- oid
- pg_class.relfilenode
- Numéro filenode de la relation
+
+ relfilenodeoid
+ (references pg_class.relfilenode)
+
+
+ Numéro filenode de la relation
+
- reltablespace
- oid
- pg_tablespace.oid
- OID du tablespace de la relation
+
+ reltablespaceoid
+ (references pg_tablespace.oid)
+
+
+ OID du tablespace de la relation
+
- reldatabase
- oid
- pg_database.oid
- OID de la base de données de la relation
+
+ reldatabaseoid
+ (references pg_database.oid)
+
+
+ OID de la base de données de la relation
+
- relforknumber
- smallint
-
- Numéro du fork dans la relation ; voir
- include/common/relpath.h
+
+ relforknumbersmallint
+
+
+ Numéro du fork dans la relation ; voir
+ include/common/relpath.h
+
- relblocknumber
- bigint
-
- Numéro de page dans la relation
+
+ relblocknumberbigint
+
+
+ Numéro de page dans la relation
+
- isdirty
- boolean
-
- Page modifiée ?
+
+ isdirtyboolean
+
+
+ Page modifiée ?
+
- usagecount
- smallint
-
- Compteur d'accès clock-sweep
+
+ usagecountsmallint
+
+
+ Compteur d'accès clock-sweep
+
- pinning_backends
- integer
-
- Nombre de processus serveur en accès sur ce bloc
+
+ pinning_backendsinteger
+
+
+ Nombre de processus serveur en accès sur ce bloc
+
diff --git a/postgresql/pgcrypto.xml b/postgresql/pgcrypto.xml
index 3baef18a6..a472938f9 100644
--- a/postgresql/pgcrypto.xml
+++ b/postgresql/pgcrypto.xml
@@ -21,6 +21,12 @@
cryptographie pour PostgreSQL.
+
+ This module is considered trusted, that is, it can be
+ installed by non-superusers who have CREATE privilege
+ on the current database.
+
+
Fonctions de hachage généralistes
@@ -1176,7 +1182,8 @@ S'applique à : pgp_sym_encrypt, seulement avec s2k-mode=3
gen_random_uuid() returns uuid
- Retourne un UUID de version 4 (aléatoire).
+ Retourne un UUID de version 4 (aléatoire). (Obsolete, this function is now also
+ included in core PostgreSQL.)
diff --git a/postgresql/pgstatstatements.xml b/postgresql/pgstatstatements.xml
index 63604c8b7..64c7c58f2 100644
--- a/postgresql/pgstatstatements.xml
+++ b/postgresql/pgstatstatements.xml
@@ -13,8 +13,8 @@
Le module pg_stat_statements fournit un moyen de
- surveiller les statistiques d'exécution de tous les ordres SQL exécutés par
- un serveur.
+ surveiller les statistiques d'optimisation et d'exécution de tous les ordres
+ SQL exécutés par un serveur.
@@ -52,199 +52,310 @@
Colonnes de pg_stat_statements
-
+
- Nom
- Type
- Référence
- Description
+
+ Type de colonne
+
+
+ Description
+
+
+
+
+ useridoid
+ (references pg_authid.oid)
+
+
+ OID of user who executed the statement
+
+
+
+
+
+ dbidoid
+ (references pg_database.oid)
+
+
+ OID of database in which the statement was executed
+
+
+
+
+
+ queryidbigint
+
+
+ Internal hash code, computed from the statement's parse tree
+
+
+
+
+
+ querytext
+
+
+ Text of a representative statement
+
+
+
+
+
+ plansbigint
+
+
+ Number of times the statement was planned
+
+
+
+
+
+ total_plan_timedouble precision
+
+
+ Total time spent planning the statement, in milliseconds
+
+
+
+
+
+ min_plan_timedouble precision
+
+
+ Minimum time spent planning the statement, in milliseconds
+
+
+
+
+
+ max_plan_timedouble precision
+
+
+ Maximum time spent planning the statement, in milliseconds
+
+
+
- userid
- oid
- pg_authid.oid
- OID de l'utilisateur qui a exécuté l'ordre SQL
+
+ mean_plan_timedouble precision
+
+
+ Mean time spent planning the statement, in milliseconds
+
- dbid
- oid
- pg_database.oid
-
- OID de la base de données dans laquelle l'ordre SQL a été exécuté
-
+
+ stddev_plan_timedouble precision
+
+
+ Population standard deviation of time spent planning the statement, in milliseconds
+
- queryid
- bigint
-
-
- Code de hachage interne, calculé à partir de l'arbre d'analyse de la
- requête.
-
+
+ callsbigint
+
+
+ Number of times the statement was executed
+
- query
- text
-
- Texte de l'ordre SQL représentatif
+
+ total_exec_timedouble precision
+
+
+ Total time spent executing the statement, in milliseconds
+
- calls
- bigint
-
- Nombre d'exécutions
+
+ min_exec_timedouble precision
+
+
+ Minimum time spent executing the statement, in milliseconds
+
- total_time
- double precision
-
- Durée d'exécution de l'instruction SQL, en millisecondes
+
+ max_exec_timedouble precision
+
+
+ Maximum time spent executing the statement, in milliseconds
+
- min_time
- double precision
-
- Durée minimum d'exécution de l'instruction SQL, en millisecondes
+
+ mean_exec_timedouble precision
+
+
+ Mean time spent executing the statement, in milliseconds
+
- max_time
- double precision
-
- Durée maximum d'exécution de l'instruction SQL, en millisecondes
+
+ stddev_exec_timedouble precision
+
+
+ Population standard deviation of time spent executing the statement, in milliseconds
+
- mean_time
- double precision
-
- Durée moyenne d'exécution de l'instruction SQL, en millisecondes
+
+ rowsbigint
+
+
+ Total number of rows retrieved or affected by the statement
+
- stddev_time
- double precision
-
-
- Déviation standard de la durée d'exécution de l'instruction SQL, en
- millisecondes
-
+
+ shared_blks_hitbigint
+
+
+ Total number of shared block cache hits by the statement
+
- rows
- bigint
-
- Nombre total de lignes renvoyées ou affectées par l'ordre SQL
+
+ shared_blks_readbigint
+
+
+ Total number of shared blocks read by the statement
+
- shared_blks_hit
- bigint
-
- Nombre total de blocs partagés lus dans le cache par l'ordre
- SQL
+
+ shared_blks_dirtiedbigint
+
+
+ Total number of shared blocks dirtied by the statement
+
- shared_blks_read
- bigint
-
- Nombre total de blocs partagés lus sur disque par l'ordre
- SQL
+
+ shared_blks_writtenbigint
+
+
+ Total number of shared blocks written by the statement
+
- shared_blks_dirtied
- bigint
-
- Nombre total de blocs partagés mis à jour par l'ordre SQL
+
+ local_blks_hitbigint
+
+
+ Total number of local block cache hits by the statement
+
- shared_blks_written
- bigint
-
- Nombre total de blocs partagés écrits sur disque par l'ordre
- SQL
+
+ local_blks_readbigint
+
+
+ Total number of local blocks read by the statement
+
- local_blks_hit
- bigint
-
- Nombre total de blocs locaux lus dans le cache par l'ordre
- SQL
+
+ local_blks_dirtiedbigint
+
+
+ Total number of local blocks dirtied by the statement
+
- local_blks_read
- bigint
-
- Nombre total de blocs locaux lus sur disque par l'ordre
- SQL
+
+ local_blks_writtenbigint
+
+
+ Total number of local blocks written by the statement
+
- local_blks_dirtied
- bigint
-
- Nombre total de blocs locaux mis à jour par l'ordre SQL.
+
+ temp_blks_readbigint
+
+
+ Total number of temp blocks read by the statement
+
- local_blks_written
- bigint
-
- Nombre total de blocs locaux écrits sur disque par l'ordre
- SQL
+
+ temp_blks_writtenbigint
+
+
+ Total number of temp blocks written by the statement
+
- temp_blks_read
- bigint
-
- Nombre total de blocs temporaires lus par l'ordre SQL
+
+ blk_read_timedouble precision
+
+
+ Total time the statement spent reading blocks, in milliseconds
+ (if is enabled, otherwise zero)
+
- temp_blks_written
- bigint
-
- Nombre total de blocs temporaires écrits par l'ordre SQL
+
+ blk_write_timedouble precision
+
+
+ Total time the statement spent writing blocks, in milliseconds
+ (if is enabled, otherwise zero)
+
- blk_read_time
- double precision
-
-
- Durée totale du temps passé par l'ordre SQL à lire des blocs, en
- millisecondes (si est activé,
- sinon zéro)
-
+
+ wal_recordsbigint
+
+
+ Total number of WAL records generated by the statement
+
- blk_write_time
- double precision
-
-
- Durée totale du temps passé par l'ordre SQL à écrire des blocs sur
- disque, en millisecondes (si est
- activé, sinon zéro)
-
+
+ wal_fpibigint
+
+
+ Total number of WAL full page images generated by the statement
+
+
+
+ wal_bytesnumeric
+
+
+ Total amount of WAL bytes generated by the statement
+
+
@@ -359,6 +470,16 @@
paramètre pg_stat_statements.max pour empêcher que cela
ne recommence.
+
+
+ plans and calls aren't
+ always expected to match because planning and execution statistics are
+ updated at their respective end phase, and only for successful operations.
+ For example, if a statement is successfully planned but fails during
+ the execution phase, only its planning statistics will be updated.
+ If planning is skipped because a cached plan is used, only its execution
+ statistics will be updated.
+
@@ -485,6 +606,21 @@
+
+
+ pg_stat_statements.track_planning (boolean)
+
+
+
+
+ pg_stat_statements.track_planning controls whether
+ planning operations and duration are tracked by the module.
+ The default value is on.
+ Only superusers can change this setting.
+
+
+
+
pg_stat_statements.save (boolean)
@@ -536,92 +672,98 @@ $ pgbench -i bench
$ pgbench -c10 -t300 bench
bench=# \x
-bench=# SELECT query, calls, total_time, rows, 100.0 * shared_blks_hit /
+bench=# SELECT query, calls, total_exec_time, rows, 100.0 * shared_blks_hit /
nullif(shared_blks_hit + shared_blks_read, 0) AS hit_percent
- FROM pg_stat_statements ORDER BY total_time DESC LIMIT 5;
- bench=# SELECT query, calls, total_time, rows, 100.0 * shared_blks_hit /
- nullif(shared_blks_hit + shared_blks_read, 0) AS hit_percent
- FROM pg_stat_statements ORDER BY total_time DESC LIMIT 5;
--[ RECORD 1 ]--------------------------------------------------------------------
-query | UPDATE pgbench_branches SET bbalance = bbalance + $1 WHERE bid = $2
-calls | 3000
-total_time | 25565.855387
-rows | 3000
-hit_percent | 100.0000000000000000
--[ RECORD 2 ]--------------------------------------------------------------------
-query | UPDATE pgbench_tellers SET tbalance = tbalance + $1 WHERE tid = $2
-calls | 3000
-total_time | 20756.669379
-rows | 3000
-hit_percent | 100.0000000000000000
--[ RECORD 3 ]--------------------------------------------------------------------
-query | copy pgbench_accounts from stdin
-calls | 1
-total_time | 291.865911
-rows | 100000
-hit_percent | 100.0000000000000000
--[ RECORD 4 ]--------------------------------------------------------------------
-query | UPDATE pgbench_accounts SET abalance = abalance + $1 WHERE aid = $2
-calls | 3000
-total_time | 271.232977
-rows | 3000
-hit_percent | 98.5723926698852723
--[ RECORD 5 ]--------------------------------------------------------------------
-query | alter table pgbench_accounts add primary key (aid)
-calls | 1
-total_time | 160.588563
-rows | 0
-hit_percent | 100.0000000000000000
+ FROM pg_stat_statements ORDER BY total_exec_time DESC LIMIT 5;
+
+-[ RECORD 1 ]---+--------------------------------------------------&zwsp;------------------
+query | UPDATE pgbench_branches SET bbalance = bbalance + $1 WHERE bid = $2
+calls | 3000
+total_exec_time | 25565.855387
+rows | 3000
+hit_percent | 100.0000000000000000
+-[ RECORD 2 ]---+--------------------------------------------------&zwsp;------------------
+query | UPDATE pgbench_tellers SET tbalance = tbalance + $1 WHERE tid = $2
+calls | 3000
+total_exec_time | 20756.669379
+rows | 3000
+hit_percent | 100.0000000000000000
+-[ RECORD 3 ]---+--------------------------------------------------&zwsp;------------------
+query | copy pgbench_accounts from stdin
+calls | 1
+total_exec_time | 291.865911
+rows | 100000
+hit_percent | 100.0000000000000000
+-[ RECORD 4 ]---+--------------------------------------------------&zwsp;------------------
+query | UPDATE pgbench_accounts SET abalance = abalance + $1 WHERE aid = $2
+calls | 3000
+total_exec_time | 271.232977
+rows | 3000
+hit_percent | 98.8454011741682975
+-[ RECORD 5 ]---+--------------------------------------------------&zwsp;------------------
+query | alter table pgbench_accounts add primary key (aid)
+calls | 1
+total_exec_time | 160.588563
+rows | 0
+hit_percent | 100.0000000000000000
bench=# SELECT pg_stat_statements_reset(0,0,s.queryid) FROM pg_stat_statements AS s
WHERE s.query = 'UPDATE pgbench_branches SET bbalance = bbalance + $1 WHERE bid = $2';
-bench=# SELECT query, calls, total_time, rows, 100.0 * shared_blks_hit /
+bench=# SELECT query, calls, total_exec_time, rows, 100.0 * shared_blks_hit /
nullif(shared_blks_hit + shared_blks_read, 0) AS hit_percent
- FROM pg_stat_statements ORDER BY total_time DESC LIMIT 5;
--[ RECORD 1 ]--------------------------------------------------------------------
-query | UPDATE pgbench_tellers SET tbalance = tbalance + $1 WHERE tid = $2
-calls | 3000
-total_time | 20756.669379
-rows | 3000
-hit_percent | 100.0000000000000000
--[ RECORD 2 ]--------------------------------------------------------------------
-query | copy pgbench_accounts from stdin
-calls | 1
-total_time | 291.865911
-rows | 100000
-hit_percent | 100.0000000000000000
--[ RECORD 3 ]--------------------------------------------------------------------
-query | UPDATE pgbench_accounts SET abalance = abalance + $1 WHERE aid = $2
-calls | 3000
-total_time | 271.232977
-rows | 3000
-hit_percent | 98.5723926698852723
--[ RECORD 4 ]--------------------------------------------------------------------
-query | alter table pgbench_accounts add primary key (aid)
-calls | 1
-total_time | 160.588563
-rows | 0
-hit_percent | 100.0000000000000000
--[ RECORD 5 ]--------------------------------------------------------------------
-query | vacuum analyze pgbench_accounts
-calls | 1
-total_time | 136.448116
-rows | 0
-hit_percent | 99.9201915403032721
+ FROM pg_stat_statements ORDER BY total_exec_time DESC LIMIT 5;
+-[ RECORD 1 ]---+--------------------------------------------------&zwsp;------------------
+query | UPDATE pgbench_tellers SET tbalance = tbalance + $1 WHERE tid = $2
+calls | 3000
+total_exec_time | 20756.669379
+rows | 3000
+hit_percent | 100.0000000000000000
+-[ RECORD 2 ]---+--------------------------------------------------&zwsp;------------------
+query | copy pgbench_accounts from stdin
+calls | 1
+total_exec_time | 291.865911
+rows | 100000
+hit_percent | 100.0000000000000000
+-[ RECORD 3 ]---+--------------------------------------------------&zwsp;------------------
+query | UPDATE pgbench_accounts SET abalance = abalance + $1 WHERE aid = $2
+calls | 3000
+total_exec_time | 271.232977
+rows | 3000
+hit_percent | 98.8454011741682975
+-[ RECORD 4 ]---+--------------------------------------------------&zwsp;------------------
+query | alter table pgbench_accounts add primary key (aid)
+calls | 1
+total_exec_time | 160.588563
+rows | 0
+hit_percent | 100.0000000000000000
+-[ RECORD 5 ]---+--------------------------------------------------&zwsp;------------------
+query | vacuum analyze pgbench_accounts
+calls | 1
+total_exec_time | 136.448116
+rows | 0
+hit_percent | 99.9201915403032721
bench=# SELECT pg_stat_statements_reset(0,0,0);
-bench=# SELECT query, calls, total_time, rows, 100.0 * shared_blks_hit /
+bench=# SELECT query, calls, total_exec_time, rows, 100.0 * shared_blks_hit /
nullif(shared_blks_hit + shared_blks_read, 0) AS hit_percent
- FROM pg_stat_statements ORDER BY total_time DESC LIMIT 5;
--[ RECORD 1 ]---------------------------------------
-query | SELECT pg_stat_statements_reset(0,0,0)
-calls | 1
-total_time | 0.189497
-rows | 1
-hit_percent |
+ FROM pg_stat_statements ORDER BY total_exec_time DESC LIMIT 5;
+-[ RECORD 1 ]---+--------------------------------------------------&zwsp;---------------------------
+query | SELECT pg_stat_statements_reset(0,0,0)
+calls | 1
+total_exec_time | 0.189497
+rows | 1
+hit_percent |
+-[ RECORD 2 ]---+--------------------------------------------------&zwsp;---------------------------
+query | SELECT query, calls, total_exec_time, rows, $1 * shared_blks_hit / +
+ | nullif(shared_blks_hit + shared_blks_read, $2) AS hit_percent+
+ | FROM pg_stat_statements ORDER BY total_exec_time DESC LIMIT $3
+calls | 0
+total_exec_time | 0
+rows | 0
+hit_percent |
diff --git a/postgresql/pgtrgm.xml b/postgresql/pgtrgm.xml
index c6bf8c8b6..42f1e2158 100644
--- a/postgresql/pgtrgm.xml
+++ b/postgresql/pgtrgm.xml
@@ -19,6 +19,12 @@
chaînes similaires.
+
+ This module is considered trusted, that is, it can be
+ installed by non-superusers who have CREATE privilege
+ on the current database.
+
+
Concepts du trigramme (ou trigraphe)
@@ -71,128 +77,106 @@
Fonctions de pg_trgm
-
-
-
- Fonction
- Retour
- Description
-
-
-
-
-
- similarity(text, text)similarity
- real
-
- Renvoie un nombre indiquant la similarité des deux arguments. L'échelle
- du résultat va de zéro (indiquant que les deux chaînes sont complètement
- différentes) à un (indiquant que les deux chaînes sont identiques).
-
-
-
- show_trgm(text)show_trgm
- text[]
-
- Renvoie un tableau de tous les trigrammes d'une chaîne donnée. (En
- pratique, ceci est peu utile, sauf pour le débogage.)
-
-
-
-
- word_similarity(text, text)
- word_similarity
-
- real
-
- Renvoie un nombre qui indique la plus grande similarité entre
- l'ensemble de trigrammes dans la première chaîne et toute étendue
- continue d'un ensemble trié de trigrammes dans la deuxième chaîne. Pour
- les détails, voir l'explication ci-dessous.
-
-
-
-
- strict_word_similarity(text, text)
- strict_word_similarity
-
- real
-
- Similarité stricte :
- identique à word_similarity(text, text), mais
- force à étendre les limites pour correspondre aux limites du mot. Comme
- nous n'avons pas de trigrammes sur plusieurs mots, cette fonction
- renvoie en fait la plus grande similarité entre la première chaîne et
- toute étendue continue de mots de la deuxième chaîne.
-
-
-
- show_limit()show_limit
- real
-
- Renvoie la limite de similarité utilisée par l'opérateur
- %. Ceci configure la similarité minimale entre deux
- mots pour qu'ils soient considérés suffisamment proches, par exemple
- (obsolète).
-
-
-
- set_limit(real)set_limit
- real
-
- Configure la limite de similarité actuelle utilisée par l'opérateur
- %. Le limite se positionne entre 0 et 1, elle vaut
- par défaut 0,3. Renvoie la valeur passée (obsolète).
-
-
-
- text<->text
- real
-
- Renvoie la distance entre les arguments, qui vaut
- un moins la valeur de similarity().
-
-
-
-
- text<<->text
-
- real
-
- Renvoie la distance entre les arguments, qui est
- équivalente 1 moins la valeur de word_similarity().
-
-
-
-
- text<->>text
-
- real
-
- Commutateur de l'opérateur <<->.
-
-
-
-
- text<<<->text
-
- real
-
- Renvoie la distance entre les arguments, autrement dit 1
- moins la valeur de strict_word_similarity().
-
-
-
-
- text<->>>text
-
- real
-
- Commutateur de l'opérateur <->>>.
-
-
-
-
+
+
+
+
+ Fonction
+
+
+ Description
+
+
+
+
+
+
+
+ similarity
+ similarity ( text, text )
+ real
+
+
+ Renvoie un nombre indiquant la similarité des deux arguments.
+ L'échelle du résultat va de zéro (indiquant que les deux chaînes sont
+ complètement différentes) à un (indiquant que les deux chaînes sont
+ identiques).
+
+
+
+
+
+ show_trgm
+ show_trgm ( text )
+ text[]
+
+
+ Renvoie un tableau de tous les trigrammes d'une chaîne donnée. (En
+ pratique, ceci est peu utile, sauf pour le débogage.)
+
+
+
+
+
+ word_similarity
+ word_similarity ( text, text )
+ real
+
+
+ Renvoie un nombre qui indique la plus grande similarité entre
+ l'ensemble de trigrammes dans la première chaîne et toute étendue
+ continue d'un ensemble trié de trigrammes dans la deuxième chaîne.
+ Pour les détails, voir l'explication ci-dessous.
+
+
+
+
+
+ strict_word_similarity
+ strict_word_similarity ( text, text )
+ real
+
+
+ Identique à word_similarity(text, text), mais
+ force à étendre les limites pour correspondre aux limites du mot. Comme
+ nous n'avons pas de trigrammes sur plusieurs mots, cette fonction
+ renvoie en fait la plus grande similarité entre la première chaîne et
+ toute étendue continue de mots de la deuxième chaîne.
+
+
+
+
+
+ show_limit
+ show_limit ()
+ real
+
+
+ Renvoie la limite de similarité utilisée par l'opérateur
+ %. Ceci configure la similarité minimale entre deux
+ mots pour qu'ils soient considérés suffisamment proches pour être des
+ fautes d'orthographe l'un de l'autre
+ (obsolète; instead use SHOW
+ pg_trgm.similarity_threshold.).
+
+
+
+
+
+ set_limit
+ set_limit ( real )
+ real
+
+
+ Configure la limite de similarité actuelle utilisée par l'opérateur
+ %. Le limite se positionne entre 0 et 1, elle vaut
+ par défaut 0,3. Renvoie la valeur passée (obsolète;
+ instead use SET
+ pg_trgm.similarity_threshold.).
+
+
+
+
@@ -225,9 +209,9 @@
- En même temps, strict_word_similarity(text, text)
+ En même temps, strict_word_similarity
sélectionne une étendue de mots dans la deuxième chaîne. Dans l'exemple
- ci-dessus, strict_word_similarity(text, text)
+ ci-dessus, strict_word_similarity
sélectionnerait l'étendue d'un mot seul 'words', dont
l'ensemble de trigrammes est
{" w"," wo","wor","ord","rds","ds"}.
@@ -242,72 +226,141 @@
- De ce fait, la fonction strict_word_similarity(text,
- text) est utile pour trouver la similarité de mots entiers,
- alors que word_similarity(text, text) est plus
+ De ce fait, la fonction strict_word_similarity est
+ utile pour trouver la similarité de mots entiers,
+ alors que word_similarity est plus
intéressant pour trouver la similarité de parties de mots.
Opérateurs de pg_trgm
-
-
-
- Opérateur
- Retour
- Description
-
-
-
-
-
- text%text
- boolean
-
- Renvoie true si les arguments ont une similarité
- supérieure à la limite configurée par
- pg_trgm.similarity_threshold.
-
-
-
- text<%text
- boolean
-
- Renvoie true si la similarité entre l'ensemble de
- trigrammes du premier argument et une étendue continue d'un ensemble
- trie de trigrammes dans le second argument est plus grande que la
- limite de similarité actuelle, telle qu'elle est configurée avec le
- paramètre pg_trgm.word_similarity_threshold.
-
-
-
- text%>text
- boolean
-
- Commutateur de l'opérateur <%.
-
-
-
- text<<%text
- boolean
-
- Renvoie true si son deuxième argument a une étendue
- continue d'un ensemble trigramme ordonné qui correspond aux limites du
- mot et que sa similarité à l'ensemble de trigramme du premier argument
- est plus grand que la limite de similarité du mot strict courant, telle
- qu'elle est configurée par le paramètre
- pg_trgm.strict_word_similarity_threshold.
-
-
-
- text%>>text
- boolean
-
- Commutateur de l'opérateur <<%.
-
-
-
-
+
+
+
+
+ Operator
+
+
+ Description
+
+
+
+
+
+
+
+ text%text
+ boolean
+
+
+ Renvoie true si les arguments ont une similarité
+ supérieure à la limite configurée par
+ pg_trgm.similarity_threshold.
+
+
+
+
+
+ text<%text
+ boolean
+
+
+ Renvoie true si la similarité entre l'ensemble de
+ trigrammes du premier argument et une étendue continue d'un ensemble
+ trie de trigrammes dans le second argument est plus grande que la
+ limite de similarité actuelle, telle qu'elle est configurée avec le
+ paramètre pg_trgm.word_similarity_threshold.
+
+
+
+
+
+ text%>text
+ boolean
+
+
+ Commutateur de l'opérateur <<%.
+
+
+
+
+
+ text<<%text
+ boolean
+
+
+ Returns true if its second argument has a continuous
+ extent of an ordered trigram set that matches word boundaries,
+ and its similarity to the trigram set of the first argument is greater
+ than the current strict word similarity threshold set by the
+ pg_trgm.strict_word_similarity_threshold parameter.
+
+
+
+
+
+ text%>>text
+ boolean
+
+
+ Commutator of the <<% operator.
+
+
+
+
+
+ text<->text
+ real
+
+
+ Returns the distance between the arguments, that is
+ one minus the similarity() value.
+
+
+
+
+
+ text<<->text
+ real
+
+
+ Returns the distance between the arguments, that is
+ one minus the word_similarity() value.
+
+
+
+
+
+ text<->>text
+ real
+
+
+ Commutator of the <<-> operator.
+
+
+
+
+
+ text<<<->text
+ real
+
+
+ Returns the distance between the arguments, that is
+ one minus the strict_word_similarity() value.
+
+
+
+
+
+ text<->>>text
+ real
+
+
+ Commutator of the <<<-> operator.
+
+
+
+
@@ -378,6 +431,23 @@ CREATE INDEX trgm_idx ON test_trgm USING GIN (t gin_trgm_ops);
+
+ gist_trgm_ops GiST opclass approximates a set of
+ trigrams as a bitmap signature. Its optional integer parameter
+ siglen determines the
+ signature length in bytes. The default length is 12 bytes.
+ Valid values of signature length are between 1 and 2024 bytes. Longer
+ signatures lead to a more precise search (scanning a smaller fraction of the index and
+ fewer heap pages), at the cost of a larger index.
+
+
+
+ Example of creating such an index with a signature length of 32 bytes:
+
+
+CREATE INDEX trgm_idx ON test_trgm USING GIST (t gist_trgm_ops(siglen=32));
+
+
À ce point, vous aurez un index sur la colonne t
que vous pouvez utiliser pour une recherche de similarité. Une requête
diff --git a/postgresql/planstats.xml b/postgresql/planstats.xml
index c2bc9d380..0e5a2c436 100644
--- a/postgresql/planstats.xml
+++ b/postgresql/planstats.xml
@@ -109,7 +109,7 @@ WHERE tablename='tenk1' AND attname='unique1';
de localiser la partie où se trouve notre valeur et compter une
partie d'elle et toutes celles
qui la précèdent. La valeur 1000 est clairement dans la seconde partie
- (993-1997), donc en supposant une distribution linéaire des valeurs à
+ (993–1997), donc en supposant une distribution linéaire des valeurs à
l'intérieur de chaque partie, nous pouvons calculer la sélectivité comme
étant :
diff --git a/postgresql/plperl.xml b/postgresql/plperl.xml
index c60a545a7..4e0761a9b 100644
--- a/postgresql/plperl.xml
+++ b/postgresql/plperl.xml
@@ -5,7 +5,7 @@
révision $Revision$ -->
- PL/Perl - Langage de procédures Perl
+ PL/Perl — Langage de procédures PerlPL/Perl
@@ -59,7 +59,9 @@
Pour créer une fonction dans le langage PL/Perl, utilisez la syntaxe
standard :
CREATE FUNCTION nom_fonction (types-arguments) RETURNS
-type-retour AS $$
+type-retour
+-- attributs de fonction
+AS $$
# Corps de la fonction PL/Perl
$$ LANGUAGE plperl;
@@ -195,6 +197,39 @@ $$ LANGUAGE plperl;
pour échapper des données binaires en retournant une valeur de type bytea.
+
+ One case that is particularly important is boolean values. As just
+ stated, the default behavior for bool values is that they
+ are passed to Perl as text, thus either 't'
+ or 'f'. This is problematic, since Perl will not
+ treat 'f' as false! It is possible to improve matters
+ by using a transform (see
+ ). Suitable transforms are provided
+ by the bool_plperl extension. To use it, install
+ the extension:
+
+CREATE EXTENSION bool_plperl; -- or bool_plperlu for PL/PerlU
+
+ Then use the TRANSFORM function attribute for a
+ PL/Perl function that takes or returns bool, for example:
+
+CREATE FUNCTION perl_and(bool, bool) RETURNS bool
+TRANSFORM FOR TYPE bool
+AS $$
+ my ($a, $b) = @_;
+ return $a && $b;
+$$ LANGUAGE plperl;
+
+ When this transform is applied, bool arguments will be seen
+ by Perl as being 1 or empty, thus properly true or
+ false. If the function result is type bool, it will be true
+ or false according to whether Perl would evaluate the returned value as
+ true.
+ Similar transformations are also performed for boolean query arguments
+ and results of SPI queries performed inside the function
+ ().
+
+
Perl peut renvoyer des tableaux PostgreSQL
comme référence à des tableaux Perl. Voici un exemple :
@@ -383,6 +418,13 @@ SELECT * FROM perl_set();
accepterons toute chaîne qui a un format d'entrée acceptable
pour le type de retour déclaré de la fonction.
+
+
+ If this behavior is inconvenient for a particular case, it can be
+ improved by using a transform, as already illustrated
+ for bool values. Several examples of transform modules
+ are included in the PostgreSQL distribution.
+
diff --git a/postgresql/plpgsql.xml b/postgresql/plpgsql.xml
index d5af70c18..06b181807 100644
--- a/postgresql/plpgsql.xml
+++ b/postgresql/plpgsql.xml
@@ -5,7 +5,7 @@
révision $Revision: 1515 $ -->
- PL/pgSQL - Langage de procédures SQL
+ PL/pgSQL — Langage de procédures SQLPL/pgSQL
@@ -148,12 +148,10 @@
Les fonctions PL/pgSQL acceptent en entrée et
- en sortie les types polymorphes anyelement,
- anyarray, anynonarray, anyenum
- et anyrange.
- Le type de données réel géré par une fonction polymorphe peut varier
- d'appel en appel (voir la ).
- Voir l'exemple de la .
+ en sortie les types polymorphes described in
+ , thus allowing the actual data
+ types handled by the function to vary from call to call.
+ Examples appear in .
@@ -528,8 +526,8 @@ $$ LANGUAGE plpgsql;
Lorsque le type de retour d'une fonction PL/pgSQL
- est déclaré comme type polymorphe (anyelement,
- anyarray, anynonarray, anyenum et anyrange), un
+ est déclaré comme type polymorphe (see
+ ), un
paramètre spécial $0 est créé.
Son type de donnée est le type effectif de retour de la fonction, déduit d'après
les types en entrée (voir la ).
@@ -567,6 +565,32 @@ END;
$$ LANGUAGE plpgsql;
+
+
+ In practice it might be more useful to declare a polymorphic function
+ using the anycompatible family of types, so that automatic
+ promotion of the input arguments to a common type will occur.
+ For example:
+
+
+CREATE FUNCTION add_three_values(v1 anycompatible, v2 anycompatible, v3 anycompatible)
+RETURNS anycompatible AS $$
+BEGIN
+ RETURN v1 + v2 + v3;
+END;
+$$ LANGUAGE plpgsql;
+
+
+ With this example, a call such as
+
+
+SELECT add_three_values(1, 2, 4.7);
+
+
+ will work, automatically promoting the integer inputs to numeric.
+ The function using anyelement would require you to
+ cast the three inputs to the same type manually.
+
@@ -1495,6 +1519,9 @@ EXECUTE format('UPDATE tbl SET %I = $1 WHERE cle = $2', nom_colonne)
Éléments de diagnostique disponibles
+
+
+ Nom
@@ -2809,6 +2836,9 @@ GET STACKED DIAGNOSTICS variable { = | := } Diagnostiques et erreurs
+
+
+ Nom
diff --git a/postgresql/plpython.xml b/postgresql/plpython.xml
index 550917ea5..3f0e866f7 100644
--- a/postgresql/plpython.xml
+++ b/postgresql/plpython.xml
@@ -5,7 +5,7 @@
révision $Revision$ -->
- PL/Python - Langage de procédures Python
+ PL/Python — Langage de procédures PythonPL/PythonPython
@@ -160,7 +160,7 @@
Les intrépides qui veulent construire un système d'exploitation utilisant
seulement Python-3, peuvent modifier le contenu de
- pg_pltemplate
+ plpythonu's extension control and script files
pour rendre plpythonu équivalent à
plpython3u, en gardant en tête que cela rend leur
installation incompatible avec la majorité de ce qui existe dans ce
@@ -1245,7 +1245,7 @@ except spiexceptions.DivisionByZero:
return "denominateur doit être différent de zéro"
except spiexceptions.UniqueViolation:
return "a déjà cette fraction"
-except plpy.SPIError, e:
+except plpy.SPIError as e:
return "autre erreur, SQLSTATE %s" % e.sqlstate
else:
return "fraction insérée"
@@ -1293,7 +1293,7 @@ CREATE FUNCTION transfert_fonds() RETURNS void AS $$
try:
plpy.execute("UPDATE comptes SET balance = balance - 100 WHERE nom = 'joe'")
plpy.execute("UPDATE comptes SET balance = balance + 100 WHERE nom = 'mary'")
-except plpy.SPIError, e:
+except plpy.SPIError as e:
result = "erreur lors du transfert de fond : %s" % e.args
else:
result = "fonds transféré correctement"
@@ -1323,7 +1323,7 @@ try:
with plpy.subtransaction():
plpy.execute("UPDATE comptes SET balance = balance - 100 WHERE nom = 'joe'")
plpy.execute("UPDATE comptes SET balance = balance + 100 WHERE nom = 'mary'")
-except plpy.SPIError, e:
+except plpy.SPIError as e:
result = "erreur lors du transfert de fond : %s" % e.args
else:
result = "fonds transféré correctement"
@@ -1353,9 +1353,8 @@ $$ LANGUAGE plpythonu;
Pour les gestionnaires de contexte, la syntaxe utilisant le mot clé
with, est disponible par défaut avec Python 2.6.
- Si vous utilisez une version plus ancienne de Python, il est toujours
- possible d'utiliser les sous-transactions explicites, bien que cela
- ne sera pas transparent. Vous pouvez appeler les fonctions
+ For compatibility with
+ older Python versions, vous pouvez appeler les fonctions
__enter__ et
__exit__ des gestionnaires de sous-transactions
en utilisant les alias enter et
@@ -1375,7 +1374,7 @@ try:
raise
else:
subxact.exit(None, None, None)
-except plpy.SPIError, e:
+except plpy.SPIError as e:
result = "erreur lors du transfert de fond : %s" % e.args
else:
result = "fonds transféré correctement"
@@ -1385,17 +1384,6 @@ plpy.execute(plan, [result])
$$ LANGUAGE plpythonu;
-
-
-
- Bien que les gestionnaires de contexte sont implémentés dans Python
- 2.5, pour utiliser la syntaxe with dans cette
- version vous aurez besoin d'utiliser une requête
- future. Dû aux détails d'implémentation, vous ne pouvez pas
- utiliser les requêtes futures dans des fonctions PL/Python.
-
-
diff --git a/postgresql/pltcl.xml b/postgresql/pltcl.xml
index 7f03e1669..010b2bf9b 100644
--- a/postgresql/pltcl.xml
+++ b/postgresql/pltcl.xml
@@ -5,7 +5,7 @@
révision $Revision$ -->
- PL/Tcl - Langage de procédures Tcl
+ PL/Tcl — Langage de procédures TclPL/Tcl
diff --git a/postgresql/postgres-fdw.xml b/postgresql/postgres-fdw.xml
index 253722228..6753d0ad3 100644
--- a/postgresql/postgres-fdw.xml
+++ b/postgresql/postgres-fdw.xml
@@ -113,13 +113,14 @@
postgres_fdw peut avoir les mêmes options que celles
acceptées par libpq dans les chaînes de connexion
comme décrit dans . Cependant, ces
- options ne sont pas autorisées :
+ options ne sont pas autorisées ou sont gérées d'une façon spéciale :
- user et password (spécifiez-les au
- niveau de la correspondance d'utilisateur)
+ user, password et
+ sslpassword (spécifiez-les au
+ niveau de la correspondance d'utilisateur instead, or use a service file)
@@ -134,15 +135,53 @@
postgres_fdw)
+
+
+ sslkey and sslcert - these may
+ appear in either or both a connection and a user
+ mapping. If both are present, the user mapping setting overrides the
+ connection setting.
+
+
+
+ Only superusers may create or modify user mappings with the
+ sslcert or sslkey settings.
+
+
Seuls les superutilisateurs peuvent se connecter à un serveur distant sans
authentification par mot de passe. Donc spécifiez toujours l'option
password pour les correspondances d'utilisateur
appartenant aux utilisateurs simples.
+
+
+ A superuser may override this check on a per-user-mapping basis by setting
+ the user mapping option password_required 'false', e.g.
+
+ALTER USER MAPPING FOR some_non_superuser SERVER loopback_nopw
+OPTIONS (ADD password_required 'false');
+
+ To prevent unprivileged users from exploiting the authentication rights
+ of the unix user the postgres server is running as to escalate to superuser
+ rights, only the superuser may set this option on a user mapping.
+
+
+ Care is required to ensure that this does not allow the mapped
+ user the ability to connect as superuser to the mapped database per
+ CVE-2007-3278 and CVE-2007-6601. Don't set
+ password_required=false
+ on the public role. Keep in mind that the mapped
+ user can potentially use any client certificates,
+ .pgpass,
+ .pg_service.conf etc in the unix home directory of the
+ system user the postgres server runs as. They can also use any trust
+ relationship granted by authentication modes like peer
+ or ident authentication.
+
diff --git a/postgresql/postgres.xml b/postgresql/postgres.xml
index 7be2d7d53..cce312151 100644
--- a/postgresql/postgres.xml
+++ b/postgresql/postgres.xml
@@ -1,7 +1,6 @@
-
@@ -22,6 +21,13 @@
+
+
+
]>
@@ -285,6 +291,7 @@ signifiant très certainement mondial ;-) SAS 20051108-->
&storage;
&bki;
&planstats;
+ &backup-manifest;
@@ -302,6 +309,8 @@ signifiant très certainement mondial ;-) SAS 20051108-->
&docguide;
&limits;
&acronyms;
+ &glossary;
+ &color;
&frenchtranslation;
diff --git a/postgresql/protocol.xml b/postgresql/protocol.xml
index 0b483ddc6..ea26fe93e 100644
--- a/postgresql/protocol.xml
+++ b/postgresql/protocol.xml
@@ -2761,8 +2761,8 @@ psql "dbname=postgres replication=database" -c "IDENTIFY_SYSTEM;"
-
- BASE_BACKUP [ LABEL'label' ] [ PROGRESS ] [ FAST ] [ WAL ] [ NOWAIT ] [ MAX_RATErate ] [ TABLESPACE_MAP ] [ NOVERIFY_CHECKSUMS ]
+
+ BASE_BACKUP [ LABEL'label' ] [ PROGRESS ] [ FAST ] [ WAL ] [ NOWAIT ] [ MAX_RATErate ] [ TABLESPACE_MAP ] [ NOVERIFY_CHECKSUMS ] [ MANIFESTmanifest_option ] [ MANIFEST_CHECKSUMSchecksum_algorithm ]
BASE_BACKUP
@@ -2878,6 +2878,41 @@ psql "dbname=postgres replication=database" -c "IDENTIFY_SYSTEM;"
+
+
+ MANIFESTmanifest_option
+
+
+ When this option is specified with a value of yes
+ or force-encode, a backup manifest is created
+ and sent along with the backup. The manifest is a list of every
+ file present in the backup with the exception of any WAL files that
+ may be included. It also stores the size, last modification time, and
+ an optional checksum for each file.
+ A value of force-encode forces all filenames
+ to be hex-encoded; otherwise, this type of encoding is performed only
+ for files whose names are non-UTF8 octet sequences.
+ force-encode is intended primarily for testing
+ purposes, to be sure that clients which read the backup manifest
+ can handle this case. For compatibility with previous releases,
+ the default is MANIFEST 'no'.
+
+
+
+
+
+ MANIFEST_CHECKSUMSchecksum_algorithm
+
+
+ Specifies the algorithm that should be applied to each file included
+ in the backup manifest. Currently, the available
+ algorithms are NONE, CRC32C,
+ SHA224, SHA256,
+ SHA384, and SHA512.
+ The default is CRC32C.
+
+
+
@@ -2918,7 +2953,8 @@ psql "dbname=postgres replication=database" -c "IDENTIFY_SYSTEM;"
size (int8)
- La taille approximative du tablespace, si le rapport de progression
+ La taille approximative du tablespace, in kilobytes (1024 bytes),
+ si le rapport de progression
a été demandé, null dans le cas contraire.
diff --git a/postgresql/queries.xml b/postgresql/queries.xml
index 14b9e9453..e50b1e3b4 100644
--- a/postgresql/queries.xml
+++ b/postgresql/queries.xml
@@ -106,7 +106,7 @@ et utiliser la commande SELECT comme une calculatrice :
Clause FROM
- La dérive une
+ La clause FROM dérive une
table à partir d'une ou plusieurs tables données dans une liste de
référence dont les tables sont séparées par des virgules.
FROM reference_table, reference_table, ...
@@ -925,7 +925,7 @@ WHERE pname IS NULL;
- La syntaxe de la est
+ La syntaxe de la clause WHERE est
WHERE condition_recherche
où condition_recherche est toute expression de
valeur (voir la ) renvoyant une valeur
@@ -1022,7 +1022,7 @@ SELECT ... FROM fdt WHERE EXISTS (SELECT c1 FROM t2 WHERE c2 > fdt.c1)reference_colonne_regroupement,reference_colonne_regroupement...
- La est
+ La clause GROUP BY est
utilisée pour regrouper les lignes d'une table qui ont les mêmes valeurs
dans toutes les colonnes précisées. L'ordre dans lequel ces colonnes sont
indiquées importe peu. L'effet est de combiner chaque ensemble de lignes
diff --git a/postgresql/ref/allfiles.xml b/postgresql/ref/allfiles.xml
index e50fdb55a..a39ed32f2 100644
--- a/postgresql/ref/allfiles.xml
+++ b/postgresql/ref/allfiles.xml
@@ -211,6 +211,7 @@ Complete list of usable.xml source files in this directory.
+
diff --git a/postgresql/ref/alter_collation.xml b/postgresql/ref/alter_collation.xml
index 0de3f76e4..756beee85 100644
--- a/postgresql/ref/alter_collation.xml
+++ b/postgresql/ref/alter_collation.xml
@@ -89,16 +89,15 @@ ALTER COLLATION nom SET SCHEMA nouveau_s
Met à jour la version de la collation.
- Voir ci-dessous.
+ Voir ci-dessous.
-
- Notes
+
+ Notes
Lorsque les collations fournies par la bibliothèque ICU, la version du
@@ -128,6 +127,17 @@ HINT: Rebuild all objects affected by this collation and run ALTER COLLATION pg
correctement.
+
+ When using collations provided by libc and
+ PostgreSQL was built with the GNU C library, the
+ C library's version is used as a collation version. Since collation
+ definitions typically change only with GNU C library releases, this provides
+ some defense against corruption, but it is not completely reliable.
+
+
+ Currently, there is no version tracking for the database default collation.
+
+
La requête suivante peut être utilisée pour identifier toutes les collations
dans la base de données courante qui nécessitent d'être rafraichie ainsi que
diff --git a/postgresql/ref/alter_function.xml b/postgresql/ref/alter_function.xml
index 966c5519a..424936523 100644
--- a/postgresql/ref/alter_function.xml
+++ b/postgresql/ref/alter_function.xml
@@ -32,7 +32,7 @@ ALTER FUNCTION nom [ ( [ [ mode_arg ] [ nom_arg ] type_arg [, ...] ] ) ]
SET SCHEMA nouveau_schema
ALTER FUNCTION nom [ ( [ [ mode_arg ] [ nom_arg ] type_arg [, ...] ] ) ]
- DEPENDS ON EXTENSION nom_extension
+ [ NO ] DEPENDS ON EXTENSION nom_extensionoù action peut être :
@@ -157,10 +157,14 @@ ALTER FUNCTION nom [ ( [ [ extension_name
+ DEPENDS ON EXTENSION extension_name
+ NO DEPENDS ON EXTENSION extension_name
- Le nom de l'extension dont la fonction dépend.
+ This form marks the function as dependent on the extension, or no longer
+ dependent on that extension if NO is specified.
+ A function that's marked as dependent on an extension is automatically
+ dropped when the extension is dropped.
diff --git a/postgresql/ref/alter_index.xml b/postgresql/ref/alter_index.xml
index d4cc2dd4b..a7ada9c70 100644
--- a/postgresql/ref/alter_index.xml
+++ b/postgresql/ref/alter_index.xml
@@ -103,11 +103,14 @@ ALTER INDEX ALL IN TABLESPACE nom [
- DEPENDS ON EXTENSION
+ DEPENDS ON EXTENSION extension_name
+ NO DEPENDS ON EXTENSION extension_name
- Cette clause marque l'index comme dépendant de l'extension, pour qu'en cas
- de suppression de l'extension, l'index soit automatiquement supprimé.
+ Cette clause marque l'index comme dépendant de l'extension, or no longer
+ dependent on that extension if NO is specified.
+ An index that's marked as dependent on an extension is automatically
+ dropped when the extension is dropped.
diff --git a/postgresql/ref/alter_materialized_view.xml b/postgresql/ref/alter_materialized_view.xml
index 17987d424..3ee5603ff 100644
--- a/postgresql/ref/alter_materialized_view.xml
+++ b/postgresql/ref/alter_materialized_view.xml
@@ -66,12 +66,6 @@ de :
d'une vue.)
-
- La clause DEPENDS ON EXTENSION marque la vue matérialisée
- comme dépendante d'une extension. Ceci permet de supprimer la vue matérialisée
- quand l'extension est supprimée.
-
-
Les différentes formes et actions disponibles pour ALTER MATERIALIZED
VIEW sont un sous-ensemble de celles disponibles pour ALTER
@@ -109,7 +103,10 @@ de :
nom_extension
- Nom de l'extension dont dépend la vue matérialisée.
+ Nom de l'extension dont dépend la vue matérialisée (or no longer
+ dependent on, if NO is specified). A materialized view
+ that's marked as dependent on an extension is automatically dropped when
+ the extension is dropped.
diff --git a/postgresql/ref/alter_opfamily.xml b/postgresql/ref/alter_opfamily.xml
index b779392eb..e31c3204a 100644
--- a/postgresql/ref/alter_opfamily.xml
+++ b/postgresql/ref/alter_opfamily.xml
@@ -154,7 +154,7 @@ ALTER OPERATOR FAMILY nom USING op_type car les types de données en entrée
de la fonction sont toujours les bons à utiliser. Pour les fonctions de tri
- des index B-tree ainsi que pour toutes les fonctions des classes
+ des index B-tree, B-Tree equal image functions, ainsi que pour toutes les fonctions des classes
d'opérateur GIST, SP-GiST et GIN, il est nécessaire de spécifier le type
de données en entrée qui sera utilisé par la fonction.
diff --git a/postgresql/ref/alter_statistics.xml b/postgresql/ref/alter_statistics.xml
index e391ffe49..1933c9cb4 100644
--- a/postgresql/ref/alter_statistics.xml
+++ b/postgresql/ref/alter_statistics.xml
@@ -27,6 +27,7 @@ PostgreSQL documentation
ALTER STATISTICS nom OWNER TO { nouveau_proprietaire | CURRENT_USER | SESSION_USER }
ALTER STATISTICS nom RENAME TO nouveau_nom
ALTER STATISTICS nom SET SCHEMA nouveau_schema
+ALTER STATISTICS name SET STATISTICS new_target
@@ -97,6 +98,22 @@ ALTER STATISTICS nom SET SCHEMA
+
+ new_target
+
+
+ The statistic-gathering target for this statistics object for subsequent
+ operations.
+ The target can be set in the range 0 to 10000; alternatively, set it
+ to -1 to revert to using the system default statistics
+ target ().
+ For more information on the use of statistics by the
+ PostgreSQL query planner, refer to
+ .
+
+
+
+
diff --git a/postgresql/ref/alter_table.xml b/postgresql/ref/alter_table.xml
index 04a1df895..8a9df5e7c 100644
--- a/postgresql/ref/alter_table.xml
+++ b/postgresql/ref/alter_table.xml
@@ -46,6 +46,7 @@ ALTER TABLE [ IF EXISTS ] nom
ALTER [ COLUMN ] nom_colonne SET DEFAULT expression
ALTER [ COLUMN ] nom_colonne DROP DEFAULT
ALTER [ COLUMN ] nom_colonne { SET | DROP } NOT NULL
+ ALTER [ COLUMN ] column_name DROP EXPRESSION [ IF EXISTS ]
ALTER [ COLUMN ] nom_colonne ADD GENERATED { ALWAYS | BY DEFAULT } AS IDENTITY [ ( options_séquence ) ]
ALTER [ COLUMN ] nom_colonne { SET GENERATED { ALWAYS | BY DEFAULT } | SET option_séquence | RESTART [ [ WITH ] valeur_redémarrage ] } [...]
ALTER [ COLUMN ] nom_colonne DROP IDENTITY [ IF EXISTS ]
@@ -201,10 +202,11 @@ WITH ( MODULUS litéral_numérique,
SET/DROP DEFAULT
- Ajoute ou supprime les valeurs par défaut d'une colonne.
- Les valeurs par défaut ne s'appliquent qu'aux commandes
- INSERT et UPDATE suivantes ;
- elles ne modifient pas les lignes déjà présentes dans la table.
+ Ajoute ou supprime les valeurs par défaut d'une colonne (where
+ removal is equivalent to setting the default value to NULL). The new
+ default value will only apply in subsequent INSERT
+ or UPDATE commands; it does not cause rows already
+ in the table to change.
@@ -240,6 +242,23 @@ WITH ( MODULUS litéral_numérique,
+
+ DROP EXPRESSION [ IF EXISTS ]
+
+
+ This form turns a stored generated column into a normal base column.
+ Existing data in the columns is retained, but future changes will no
+ longer apply the generation expression.
+
+
+
+ If DROP EXPRESSION IF EXISTS is specified and the
+ column is not a stored generated column, no error is thrown. In this
+ case a notice is issued instead.
+
+
+
+
ADD GENERATED { ALWAYS | BY DEFAULT } AS IDENTITYSET GENERATED { ALWAYS | BY DEFAULT }
@@ -249,6 +268,10 @@ WITH ( MODULUS litéral_numérique,
Modifier une colonne en colonne d'identité ou changer les attributs de
génération d'ue colonne d'identité existante. Voir pour plus de détails.
+ Like SET DEFAULT, these forms only affect the
+ behavior of subsequent INSERT
+ and UPDATE commands; they do not cause rows
+ already in the table to change.
@@ -397,8 +420,7 @@ WITH ( MODULUS litéral_numérique,
La base de données ne considèrera pas la contrainte comme entièrement
vérifiée pour toutes les lignes tant qu'une validation effectuée par
l'ordre VALIDATE CONSTRAINT n'aura pas été effectuée.
- Voir ci-dessous pour plus d'informations
+ Voir ci-dessous pour plus d'informations
sur l'utilisation de l'option NOT VALID.
@@ -493,8 +515,7 @@ WITH ( MODULUS litéral_numérique,
Elle le fait en parcourant la table pour s'assurer qu'il n'existe
aucune ligne pour laquelle la contrainte n'est pas satisfaite. Si
la contrainte est déjà marquée valide, cette clause ne fait rien.
- (Voir ci-dessous pour une explication
+ (Voir ci-dessous pour une explication
sur l'utilisation de cette commande.)
@@ -596,7 +617,7 @@ WITH ( MODULUS litéral_numérique,
pour la table, alors une politique de refus est appliqué par défaut.
Notez que les politiques peuvent exister pour une table même si la
sécurité niveau ligne est désactivé. Dans ce cas, les politiques ne
- seront pas appliquées, elles seront ignorées. Voir aussi pas appliquées, elles seront ignorées. Voir aussi .
@@ -707,7 +728,8 @@ WITH ( MODULUS litéral_numérique,
Cette forme modifie un ou plusieurs paramètres de stockage pour la table.
- Voir
+ Voir in the
+ documentation
pour les détails sur les paramètres disponibles. Le contenu de
la table ne sera pas modifié immédiatement par cette commande ;
en fonction du paramètre, il pourra s'avérer nécessaire de réécrire la table pour
@@ -1224,8 +1246,8 @@ WITH ( MODULUS litéral_numérique,
-
- Notes
+
+ Notes
Le mot clé COLUMN n'est pas nécessaire. Il peut
@@ -1405,6 +1427,32 @@ WITH ( MODULUS litéral_numérique,
Ajouter une colonne de type varchar à une table :
ALTER TABLE distributeurs ADD COLUMN adresse varchar(30);
+ That will cause all existing rows in the table to be filled with null
+ values for the new column.
+
+
+
+ To add a column with a non-null default:
+
+ALTER TABLE measurements
+ ADD COLUMN mtime timestamp with time zone DEFAULT now();
+
+ Existing rows will be filled with the current time as the value of the
+ new column, and then new rows will receive the time of their insertion.
+
+
+
+ To add a column and fill it with a value different from the default to
+ be used later:
+
+ALTER TABLE transactions
+ ADD COLUMN status varchar(30) DEFAULT 'old',
+ ALTER COLUMN status SET default 'current';
+
+ Existing rows will be filled with old, but then
+ the default for subsequent commands will be current.
+ The effects are the same as if the two sub-commands had been issued
+ in separate ALTER TABLE commands.
diff --git a/postgresql/ref/alter_tablespace.xml b/postgresql/ref/alter_tablespace.xml
index 1e956e6f0..e8d36292b 100644
--- a/postgresql/ref/alter_tablespace.xml
+++ b/postgresql/ref/alter_tablespace.xml
@@ -85,14 +85,16 @@ ALTER TABLESPACE nom RESET ( , , )). Ceci peut être utile si un
+ linkend="guc-effective-io-concurrency"/>,
+ ). Ceci peut être utile si un
tablespace se trouve sur un disque qui est plus rapide ou plus lent du
reste du système d'entrées/sorties.
diff --git a/postgresql/ref/alter_trigger.xml b/postgresql/ref/alter_trigger.xml
index c95150ae8..b7d040cb6 100644
--- a/postgresql/ref/alter_trigger.xml
+++ b/postgresql/ref/alter_trigger.xml
@@ -23,7 +23,7 @@
ALTER TRIGGER nom ON nom_table RENAME TO nouveau_nom
-ALTER TRIGGER nom ON nom_table DEPENDS ON EXTENSION nom_extension
+ALTER TRIGGER nom ON nom_table [ NO ] DEPENDS ON EXTENSION nom_extension
@@ -78,7 +78,10 @@ ALTER TRIGGER nom ON nom_extension
- Le nom de l'extension dont le trigger dépend.
+ Le nom de l'extension dont le trigger dépend (or no longer
+ dependent on, if NO is specified). A trigger
+ that's marked as dependent on an extension is automatically dropped when
+ the extension is dropped.
diff --git a/postgresql/ref/alter_type.xml b/postgresql/ref/alter_type.xml
index c7e9023b1..d9a98f65a 100644
--- a/postgresql/ref/alter_type.xml
+++ b/postgresql/ref/alter_type.xml
@@ -26,14 +26,16 @@
- ALTER TYPE nomaction [, ... ]
+
ALTER TYPE nom OWNER TO { nouveau_propriétaire | CURRENT_USER | SESSION_USER }
-ALTER TYPE nom RENAME ATTRIBUTE nom_attribut TO nouveau_nom_attribut [ CASCADE | RESTRICT ]
ALTER TYPE nom RENAME TO nouveau_nom
ALTER TYPE nom SET SCHEMA nouveau_schéma
+ALTER TYPE name RENAME ATTRIBUTE attribute_name TO new_attribute_name [ CASCADE | RESTRICT ]
+ALTER TYPE nameaction [, ... ]
ALTER TYPE nom ADD VALUE [ IF NOT EXISTS ] nouvelle_valeur_enumérée [ { BEFORE | AFTER } valeur_enumérée ]
ALTER TYPE nom ADD VALUE [ IF NOT EXISTS ] nouvelle_valeur_enum [ { BEFORE | AFTER } valeur_enum_voisine ]
ALTER TYPE nom RENAME VALUE valeur_enum_existante TO nouvelle_valeur_enum
+ALTER TYPE name SET ( property = value [, ... ] )
où action fait partie de :
@@ -51,59 +53,69 @@ ALTER TYPE nom RENAME VALUE
- ADD ATTRIBUTE
+ OWNER
- Cette forme ajoute un nouvel attribut à un type composite, avec la même syntaxe que
- .
+ This form changes the owner of the type.
- DROP ATTRIBUTE [ IF EXISTS ]
+ RENAME
- Cette forme supprime un attribut d'un type composite.
- Si IF EXISTS est spécifié et que l'attribut
- cible n'existe pas, aucun message d'erreur ne sera émis, mais
- remplacé par une alerte de niveau NOTICE.
+ This form changes the name of the type.
- SET DATA TYPE
+ SET SCHEMA
- Cette forme modifie le type d'un attribut d'un type composite.
+ This form moves the type into another schema.
- OWNER
+ RENAME ATTRIBUTE
- Cette forme modifie le propriétaire d'un type.
+ This form is only usable with composite types.
+ It changes the name of an individual attribute of the type.
- RENAME
+ ADD ATTRIBUTE
- Cette forme permet de modifier le nom du type ou celui d'un attribut d'un type composite.
+ This form adds a new attribute to a composite type, using the same syntax as
+ .
- SET SCHEMA
+ DROP ATTRIBUTE [ IF EXISTS ]
+
+
+ This form drops an attribute from a composite type.
+ If IF EXISTS is specified and the attribute
+ does not exist, no error is thrown. In this case a notice
+ is issued instead.
+
+
+
+
+
+ ALTER ATTRIBUTE ... SET DATA TYPE
- Cette forme déplace le type dans un autre schéma.
+ This form changes the type of an attribute of a composite type.
@@ -135,6 +147,84 @@ ALTER TYPE nom RENAME VALUE
+
+
+
+ SET ( property = value [, ... ] )
+
+
+
+ This form is only applicable to base types. It allows adjustment of a
+ subset of the base-type properties that can be set in CREATE
+ TYPE. Specifically, these properties can be changed:
+
+
+
+ RECEIVE can be set to the name of a binary input
+ function, or NONE to remove the type's binary
+ input function. Using this option requires superuser privilege.
+
+
+
+
+ SEND can be set to the name of a binary output
+ function, or NONE to remove the type's binary
+ output function. Using this option requires superuser privilege.
+
+
+
+
+ TYPMOD_IN can be set to the name of a type
+ modifier input function, or NONE to remove the
+ type's type modifier input function. Using this option requires
+ superuser privilege.
+
+
+
+
+ TYPMOD_OUT can be set to the name of a type
+ modifier output function, or NONE to remove the
+ type's type modifier output function. Using this option requires
+ superuser privilege.
+
+
+
+
+ ANALYZE can be set to the name of a type-specific
+ statistics collection function, or NONE to remove
+ the type's statistics collection function. Using this option
+ requires superuser privilege.
+
+
+
+
+ STORAGE
+ TOAST
+ per-type storage settings
+
+ can be set to plain,
+ extended, external,
+ or main (see for
+ more information about what these mean). However, changing
+ from plain to another setting requires superuser
+ privilege (because it requires that the type's C functions all be
+ TOAST-ready), and changing to plain from another
+ setting is not allowed at all (since the type may already have
+ TOASTed values present in the database). Note that changing this
+ option doesn't by itself change any stored data, it just sets the
+ default TOAST strategy to be used for table columns created in the
+ future. See to change the TOAST
+ strategy for existing table columns.
+
+
+
+ See for more details about these
+ type properties. Note that where appropriate, a change in these
+ properties for a base type will be propagated automatically to domains
+ based on that type.
+
+
+
@@ -157,7 +247,8 @@ ALTER TYPE nom RENAME VALUE USAGE sur le type.
+ aussi avoir le droit USAGE sur le type de données de la
+ colonne.
@@ -262,6 +353,16 @@ ALTER TYPE nom RENAME VALUE
+
+ property
+
+
+ The name of a base-type property to be modified; see above for
+ possible values.
+
+
+
+
CASCADE
@@ -352,6 +453,18 @@ ALTER TYPE colors ADD VALUE 'orange' AFTER 'red';
Pour renommer une valeur d'une énumération :
ALTER TYPE colors RENAME VALUE 'purple' TO 'mauve';
+
+
+
+
+ To create binary I/O functions for an existing base type:
+
+CREATE FUNCTION mytypesend(mytype) RETURNS bytea ...;
+CREATE FUNCTION mytyperecv(internal, oid, integer) RETURNS mytype ...;
+ALTER TYPE mytype SET (
+ SEND = mytypesend,
+ RECEIVE = mytyperecv
+);
diff --git a/postgresql/ref/alter_view.xml b/postgresql/ref/alter_view.xml
index 543f882b3..9854bc8b1 100644
--- a/postgresql/ref/alter_view.xml
+++ b/postgresql/ref/alter_view.xml
@@ -25,6 +25,7 @@
ALTER VIEW [ IF EXISTS ] nom ALTER [ COLUMN ] nom_colonne SET DEFAULT expression
ALTER VIEW [ IF EXISTS ] nom ALTER [ COLUMN ] nom_colonne DROP DEFAULT
ALTER VIEW [ IF EXISTS ] nom OWNER TO { nouveau_propriétaire | CURRENT_USER | SESSION_USER }
+ALTER VIEW [ IF EXISTS ] name RENAME [ COLUMN ] column_name TO new_column_name
ALTER VIEW [ IF EXISTS ] nom RENAME TO nouveau_nom
ALTER VIEW [ IF EXISTS ] nom SET SCHEMA nouveau_schéma
ALTER VIEW [ IF EXISTS ] nom SET ( nom_option [= valeur_option] [, ... ] )
@@ -67,6 +68,24 @@ ALTER VIEW [ IF EXISTS ] nom RESET
+
+ column_name
+
+
+ Name of an existing column.
+
+
+
+
+
+ new_column_name
+
+
+ New name for an existing column.
+
+
+
+
IF EXISTS
@@ -127,7 +146,7 @@ ALTER VIEW [ IF EXISTS ] nom RESET
actuellement supportées sont :
- check_option (string)
+ check_option (enum)
Modifie l'option de vérification d'une value. Les valeurs autorisées
diff --git a/postgresql/ref/clusterdb.xml b/postgresql/ref/clusterdb.xml
index beeb88f5e..66ab7fe10 100644
--- a/postgresql/ref/clusterdb.xml
+++ b/postgresql/ref/clusterdb.xml
@@ -17,7 +17,7 @@
- clusterdb
+ clusterdbGrouper une base de données
PostgreSQL
diff --git a/postgresql/ref/commit_prepared.xml b/postgresql/ref/commit_prepared.xml
index d1f85e160..dee9831d8 100644
--- a/postgresql/ref/commit_prepared.xml
+++ b/postgresql/ref/commit_prepared.xml
@@ -70,7 +70,7 @@
- Exemples
+ Exemples
Valider la transaction identifiée par foobar :
diff --git a/postgresql/ref/create_aggregate.xml b/postgresql/ref/create_aggregate.xml
index ac5e77a6c..9cc2969de 100644
--- a/postgresql/ref/create_aggregate.xml
+++ b/postgresql/ref/create_aggregate.xml
@@ -441,8 +441,7 @@ CREATE [ OR REPLACE ] AGGREGATE nom
modifie pas ses arguments. READ_ONLY indique qu'il
n'y a pas de modification. Les deux autres valeurs indiquent la valeur
d'état de transition pourrait changer. Voir ci-dessous pour plus de
+ linkend="sql-createaggregate-notes"/> ci-dessous pour plus de
détail. La valeur par défaut est READ_ONLY, sauf pour
les agrégats à ensemble ordonné dont la valeur par défaut est
READ_WRITE.
@@ -678,8 +677,8 @@ CREATE [ OR REPLACE ] AGGREGATE nom
-
- Notes
+
+ Notes
Dans les paramètres qui indiquent les noms de fonction de support, vous
diff --git a/postgresql/ref/create_conversion.xml b/postgresql/ref/create_conversion.xml
index 6e6686618..ca8e9b774 100644
--- a/postgresql/ref/create_conversion.xml
+++ b/postgresql/ref/create_conversion.xml
@@ -32,11 +32,15 @@
CREATE CONVERSION définit une nouvelle conversion entre
- les encodages de caractères. De plus, les conversions marquées
- DEFAULT peuvent être utilisées pour automatiser une conversion d'encodage
- entre le client et le serveur. Pour cela, deux conversions,
- de l'encodage A vers l'encodage B et de l'encodage B vers
- l'encodage A, doivent être définies.
+ les encodages de caractères.
+
+
+
+ Les conversions marquées DEFAULT peuvent être utilisées
+ pour automatiser une conversion d'encodage entre le client et le serveur.
+ Pour cela, deux conversions, de l'encodage A vers l'encodage B
+ et de l'encodage B vers l'encodage A, doivent être
+ définies.
@@ -125,6 +129,13 @@
Notes
+
+ Neither the source nor the destination encoding can
+ be SQL_ASCII, as the server's behavior for cases
+ involving the SQL_ASCIIencoding is
+ hard-wired.
+
+
DROP CONVERSION est utilisé pour supprimer une conversion
utilisateur.
diff --git a/postgresql/ref/create_database.xml b/postgresql/ref/create_database.xml
index b49ca5985..ada321135 100644
--- a/postgresql/ref/create_database.xml
+++ b/postgresql/ref/create_database.xml
@@ -26,6 +26,7 @@
[ [ WITH ] [ OWNER [=] nom_utilisateur ]
[ TEMPLATE [=] modèle ]
[ ENCODING [=] codage ]
+ [ LOCALE [=] locale ]
[ LC_COLLATE [=] lc_collate ]
[ LC_CTYPE [=] lc_ctype ]
[ TABLESPACE [=] tablespace ]
@@ -55,7 +56,8 @@
être utilisé en écrivant
TEMPLATE nom. En particulier,
la clause TEMPLATE template0 permet de créer une base de
- données vierge qui ne contient que les objets standards pré-définis dans
+ données vierge (one where no user-defined objects exist and where the system
+ objects have not been altered) qui ne contient que les objets standards pré-définis dans
la version de PostgreSQL utilisée. C'est utile
pour ne pas copier les objets locaux ajoutés à template1.
@@ -111,6 +113,26 @@
+
+ locale
+
+
+ This is a shortcut for setting LC_COLLATE
+ and LC_CTYPE at once. If you specify this,
+ you cannot specify either of those parameters.
+
+
+
+ The other locale settings , , , and
+ are not fixed per database and are not
+ set by this command. If you want to make them the default for a
+ specific database, you can use ALTER DATABASE
+ ... SET.
+
+
+
+ lc_collate
@@ -298,7 +320,7 @@
Pour créer une base music avec une locale différente :
CREATE DATABASE music
- LC_COLLATE 'sv_SE.utf8' LC_CTYPE 'sv_SE.utf8'
+ LOCALE 'sv_SE.utf8'
TEMPLATE template0;
Dans cet exemple, la clause TEMPLATE template0 est
@@ -312,7 +334,7 @@ CREATE DATABASE music
et un jeu de caractère différent :
+CREATE DATABASE music2
- LC_COLLATE 'sv_SE.iso885915' LC_CTYPE 'sv_SE.iso885915'
+ LOCALE 'sv_SE.iso885915'
ENCODING LATIN9
TEMPLATE template0;
diff --git a/postgresql/ref/create_extension.xml b/postgresql/ref/create_extension.xml
index 1b4927806..5c345df65 100644
--- a/postgresql/ref/create_extension.xml
+++ b/postgresql/ref/create_extension.xml
@@ -20,7 +20,6 @@
CREATE EXTENSION [ IF NOT EXISTS ] nom_extension
[ WITH ] [ SCHEMA nom_schema ]
[ VERSION version ]
- [ FROM ancienne_version ]
[ CASCADE ]
@@ -35,12 +34,24 @@ CREATE EXTENSION [ IF NOT EXISTS ] nom_extension<
- Charger une extension consiste essentiellement à exécuter le script de l'extension.
- Ce script va créer dans la plupart des cas de nouveaux objets SQL
- comme des fonctions, des types de données, des opérateurs et des méthodes d'indexation.
- La commande CREATE EXTENSION enregistre en supplément les identifiants
- de chacun des objets créés, permettant ainsi de les supprimer lorsque la commande
- DROP EXTENSION est appelée.
+ The user who runs CREATE EXTENSION becomes the
+ owner of the extension for purposes of later privilege checks, and
+ normally also becomes the owner of any objects created by the
+ extension's script.
+
+
+
+ Loading an extension ordinarily requires the same privileges that would
+ be required to create its component objects. For many extensions this
+ means superuser privileges are needed.
+ However, if the extension is marked trusted in
+ its control file, then it can be installed by any user who has
+ CREATE privilege on the current database.
+ In this case the extension object itself will be owned by the calling
+ user, but the contained objects will be owned by the bootstrap superuser
+ (unless the extension's script explicitly assigns them to the calling
+ user). This configuration gives the calling user the right to drop the
+ extension, but not to modify individual objects within it.
@@ -127,31 +138,6 @@ CREATE EXTENSION [ IF NOT EXISTS ] nom_extension<
-
- ancienne_version
-
-
- L'option FROMancienne_version
- doit être spécifiée si et seulement s'il s'agit de convertir un module ancienne génération
- (qui est en fait une simple collection d'objets non empaquetée) en extension.
- Cette option modifie le comportement de la commande CREATE EXTENSION
- pour exécuter un script d'installation alternatif qui incorpore les objets existant dans
- l'extension, plutôt que de créer de nouveaux objets. Il faut prendre garde à ce que
- SCHEMA spécifie le schéma qui contient ces objets pré-existant.
-
-
-
- La valeur à utiliser pour le paramètre ancienne_version
- est déterminée par l'auteur de l'extension et peut varier s'il existe plus d'une version
- du module ancienne génération qui peut évoluer en une extension.
- Concernant les modules additionnels fournis en standard avant
- PostgreSQL 9.1, il est nécessaire d'utiliser
- la valeur unpackaged pour le paramètre
- ancienne_version pour les faire évoluer en extension.
-
-
-
-
CASCADE
@@ -201,16 +187,6 @@ CREATE EXTENSION [ IF NOT EXISTS ] nom_extension<
CREATE EXTENSION hstore;
-
-
- Mettre à jour le module pré-9.1 hstore sous la forme
- d'une extension :
-
-CREATE EXTENSION hstore SCHEMA public FROM unpackaged;
-
- Prenez garde à bien spécifier le schéma vers lequel vous souhaitez installer
- les objets de hstore.
-
diff --git a/postgresql/ref/create_foreign_table.xml b/postgresql/ref/create_foreign_table.xml
index 623779576..4e6c6381a 100644
--- a/postgresql/ref/create_foreign_table.xml
+++ b/postgresql/ref/create_foreign_table.xml
@@ -405,7 +405,7 @@ CREATE FOREIGN TABLE measurement_y2016m07
- Compatibilité
+ Compatibilité
La commande CREATE FOREIGN TABLE est conforme au standard
diff --git a/postgresql/ref/create_index.xml b/postgresql/ref/create_index.xml
index 85fde4f0b..1d1545126 100644
--- a/postgresql/ref/create_index.xml
+++ b/postgresql/ref/create_index.xml
@@ -23,7 +23,7 @@
CREATE [ UNIQUE ] INDEX [ CONCURRENTLY ] [ [ IF NOT EXISTS ] nom ] ON [ ONLY ] nom_table [ USING méthode ]
- ( { nom_colonne | ( expression ) } [ COLLATE collation ] [ classeop ] [ ASC | DESC ] [ NULLS { FIRST | LAST } ] [, ...] )
+ ( { nom_colonne | ( expression ) } [ COLLATE collation ] [ classeop [ ( parametre_classeop = valeur [, ... ] ) ] ] [ ASC | DESC ] [ NULLS { FIRST | LAST } ] [, ...] )
[ INCLUDE ( nom_colonne [, ...] ) ]
[ WITH ( parametre_stockage = valeur [, ... ] ) ]
[ TABLESPACE nom_espacelogique ]
@@ -132,8 +132,7 @@
la construction d'un index standard verrouille les écritures (mais pas
les lectures) sur la table jusqu'à la fin de la construction. Il
est nécessaire d'avoir quelques connaissances avant d'utiliser
- cette option — voir .
+ cette option — voir .
@@ -179,6 +178,8 @@
type de l'index l'insertion de données échouera. Dans tous les cas, les
colonnes non clés dupliquent les données de la table et augmentent la
taille de l'index, ralentissant potentiellement les recherches.
+ Furthermore, B-tree deduplication is never used with indexes
+ that have a non-key column.
@@ -294,6 +295,15 @@
+
+ opclass_parameter
+
+
+ The name of an operator class parameter. See below for details.
+
+
+
+
ASC
@@ -339,8 +349,8 @@
Le nom d'un paramètre de stockage spécifique à la méthode d'indexage.
- Voir pour les détails.
+ Voir pour les
+ détails.
@@ -367,8 +377,8 @@
-
- Paramètres de stockage des index
+
+ Paramètres de stockage des index
La clause WITH optionnelle spécifie des
@@ -380,7 +390,7 @@
- fillfactor
+ fillfactor (integer)
paramètre de stockage fillfactor
@@ -408,12 +418,40 @@
- Les index B-tree acceptent en option ce paramètre :
+ Les index B-tree acceptent aussi ces paramètres :
+
+ deduplicate_items (boolean)
+
+ deduplicate_items storage parameter
+
+
+
+
+ Controls usage of the B-tree deduplication technique described
+ in . Set to
+ ON or OFF to enable or
+ disable the optimization. (Alternative spellings of
+ ON and OFF are allowed as
+ described in .) The default is
+ ON.
+
+
+
+
+ Turning deduplicate_items off via
+ ALTER INDEX prevents future insertions from
+ triggering deduplication, but does not in itself make existing
+ posting list tuples use the standard tuple representation.
+
+
+
+
+
- vacuum_cleanup_index_scale_factor
+ vacuum_cleanup_index_scale_factor (floating point)
vacuum_cleanup_index_scale_factorparamètre de stockage
@@ -434,7 +472,7 @@
- buffering
+ buffering (enum)
paramètre de stockage buffering
@@ -460,7 +498,7 @@
- fastupdate
+ fastupdate (boolean)
paramètre de stockage fastupdate
@@ -469,11 +507,8 @@
Ce paramètre régit l'utilisation de la technique de mise à jour rapide
décrite dans . C'est un paramètre
- booléen :
- ON active la mise à jour rapide, OFF
- la désactive. (Les autres façons d'écrire ON et
- OFF sont autorisées, comme décrit dans
- .) La valeur par défaut est
+ booléen : ON active la mise à jour rapide,
+ OFF la désactive. La valeur par défaut est
ON.
@@ -492,7 +527,7 @@
- gin_pending_list_limit
+ gin_pending_list_limit (integer)
gin_pending_list_limitparamètre de stockage
@@ -513,7 +548,7 @@
- pages_per_range
+ pages_per_range (integer)
paramètre de stockage pages_per_range
@@ -529,7 +564,7 @@
- autosummarize
+ autosummarize (boolean)
paramètre de stockage autosummarize
@@ -567,8 +602,8 @@
-
- Construire des index en parallèle
+
+ Construire des index en parallèleindex
@@ -666,13 +701,13 @@
Les constructions d'index standards permettent d'autres constructions
- d'index en simultanée sur la même table mais seul une construction d'index
- en parallèle peut survenir sur une table à un même moment. Dans les deux
- cas, la modification du schéma de la table n'est pas autorisé pendant la
- construction de l'index. Une autre différence est qu'une commande
- CREATE INDEX normale peut être réalisée à l'intérieur
- d'un bloc de transactions alors que CREATE INDEX
- CONCURRENTLY ne le peut pas.
+ d'index en simultanée sur la même table mais seul une construction d'index
+ en parallèle peut survenir sur une table à un même moment. Dans les deux
+ cas, la modification du schéma de la table n'est pas autorisé pendant la
+ construction de l'index. Une autre différence est qu'une commande
+ CREATE INDEX normale peut être réalisée à l'intérieur
+ d'un bloc de transactions alors que CREATE INDEX
+ CONCURRENTLY ne le peut pas.
@@ -704,7 +739,8 @@
- Une classe d'opérateur peut être spécifiée pour
+ Une classe d'opérateur with optional parameters
+ peut être spécifiée pour
chaque colonne d'un index. La classe d'opérateur identifie les opérateurs à
utiliser par l'index pour cette colonne. Par exemple, un index B-tree sur des
entiers codés sur quatre octets utilise la classe
@@ -863,6 +899,13 @@ CREATE UNIQUE INDEX title_idx ON films (title) INCLUDE (director, rating);
+
+ To create a B-Tree index with deduplication disabled:
+
+CREATE INDEX title_idx ON films (title) WITH (deduplicate_items = off);
+
+
+
Pour créer un index sur l'expression lower(titre),
permettant une recherche efficace quelque soit la casse :
diff --git a/postgresql/ref/create_language.xml b/postgresql/ref/create_language.xml
index 607702cbb..7a905b597 100644
--- a/postgresql/ref/create_language.xml
+++ b/postgresql/ref/create_language.xml
@@ -22,10 +22,9 @@
- CREATE [ OR REPLACE ] [ PROCEDURAL ] LANGUAGE nom
-CREATE [ OR REPLACE ] [ TRUSTED ] [ PROCEDURAL ] LANGUAGE nom
+ CREATE [ OR REPLACE ] [ TRUSTED ] [ PROCEDURAL ] LANGUAGE nom
HANDLER gestionnaire_appel [ VALIDATOR fonction_validation ]
-
+CREATE [ OR REPLACE ] [ TRUSTED ] [ PROCEDURAL ] LANGUAGE nom
@@ -38,21 +37,6 @@ CREATE [ OR REPLACE ] [ TRUSTED ] [ PROCEDURAL ] LANGUAGE ,
- et non pas avec CREATE LANGUAGE. L'utilisation directe
- de CREATE LANGUAGE devrait maintenant être réservée
- aux scripts d'installation d'extension. Si vous avez un langage
- nu dans votre base de données, peut-être comme résultat
- d'une mise à jour, vous pouvez le convertir en extension en utilisant
- CREATE EXTENSION nom_langage FROM
- unpackaged.
-
-
-
CREATE LANGUAGE associe en fait le nom du langage à
un ou des fonctions de gestion qui sont responsable de l'exécution des fonctions
@@ -61,55 +45,32 @@ CREATE [ OR REPLACE ] [ TRUSTED ] [ PROCEDURAL ] LANGUAGE pg_pltemplate
- pour déterminer les paramètres adéquats. Dans la seconde, l'utilisateur
- fournit les paramètres du langage avec son nom. Cette
- forme peut être utilisée pour créer un langage non défini dans
- pg_pltemplate. Cette approche est cependant obsolète.
+ CREATE OR REPLACE LANGUAGE will either create a
+ new language, or replace an existing definition. If the language
+ already exists, its parameters are updated according to the command,
+ but the language's ownership and permissions settings do not change,
+ and any existing functions written in the language are assumed to still
+ be valid.
- Si le serveur trouve une entrée dans le catalogue
- pg_pltemplate pour le nom donné, il utilise les données du
- catalogue quand bien même la commande incluerait les paramètres du langage. Ce
- comportement simplifie le chargement des anciens fichiers de sauvegarde ; ceux-ci
- présentent le risque de contenir des informations caduques sur les fonctions de
- support du langage.
+ Un utilisateur doit être un superutilisateur
+ PostgreSQL pour enregistrer un nouveau langage
+ or change an existing language's parameters. However, once the language is
+ created it is valid to assign ownership of it to a non-superuser, who may
+ then drop it, change its permissions, rename it, or assign it to a new
+ owner. (Do not, however, assign ownership of the underlying C functions to
+ a non-superuser; that would create a privilege escalation path for that
+ user.)
- Habituellement, l'utilisateur doit être un superutilisateur
- PostgreSQL pour enregistrer un nouveau langage.
- Néanmoins, le propriétaire d'une base de données peut enregistrer un
- nouveau langage dans sa base si le langage est listé dans le catalogue
- pg_pltemplate et est marqué comme autorisé à
- être créé par les propriétaires de base
- (tmpldbacreate à true). La valeur par défaut est
- que les langages de confiance peuvent être créés par les propriétaires de
- base de données, mais cela peut être modifié par les superutilisateurs en
- ajustant le contenu de pg_pltemplate. Le créateur
- d'un langage devient son propriétaire et peut ensuite le supprimer, le
- renommer ou le donner à un autre propriétaire.
-
-
-
- CREATE OR REPLACE LANGUAGE créera un nouveau langage ou
- remplacera une définition existante. Si le langage existe déjà, ces
- paramètres sont mis à jour suivant les valeurs indiquées ou prises de
- pg_pltemplate mais le propriétaire et les droits
- du langage ne sont pas modifiés et toutes fonctions existantes créées dans
- le langage sont supposées être toujours valides. En plus des droits
- nécessaires pour créer un langage, un utilisateur doit être superutilisateur
- ou propriétaire du langage existant. Le cas REPLACE a
- pour but principal d'être utilisé pour s'assurer que le langage existe. Si
- le langage a une entrée pg_pltemplate alors
- REPLACE ne modifiera rien sur la définition existante,
- sauf dans le cas inhabituel où l'entrée
- pg_pltemplate a été modifiée depuis que le langage
- a été créé.
+ The form of CREATE LANGUAGE that does not supply
+ any handler function is obsolete. For backwards compatibility with
+ old dump files, it is interpreted as CREATE EXTENSION.
+ That will work if the language has been packaged into an extension of
+ the same name, which is the conventional way to set up procedural
+ languages.
@@ -219,12 +180,6 @@ CREATE [ OR REPLACE ] [ TRUSTED ] [ PROCEDURAL ] LANGUAGE
@@ -255,47 +210,24 @@ CREATE [ OR REPLACE ] [ TRUSTED ] [ PROCEDURAL ] LANGUAGE Exemples
- Tout langage procédural standard sera préférentiellement créé ainsi :
- CREATE LANGUAGE plperl;
-
-
-
-
- Pour un langage inconnu du catalogue pg_pltemplate, une
- séquence comme celle-ci est nécessaire :
+ A minimal sequence for creating a new procedural language is:
CREATE FUNCTION plsample_call_handler() RETURNS language_handler
AS '$libdir/plsample'
LANGUAGE C;
CREATE LANGUAGE plsample
HANDLER plsample_call_handler;
+ Typically that would be written in an extension's creation script,
+ and users would do this to install the extension:
+
+CREATE EXTENSION plsample;
+
diff --git a/postgresql/ref/create_materialized_view.xml b/postgresql/ref/create_materialized_view.xml
index 7d26b0f6c..98084bba7 100644
--- a/postgresql/ref/create_materialized_view.xml
+++ b/postgresql/ref/create_materialized_view.xml
@@ -105,11 +105,11 @@ CREATE MATERIALIZED VIEW [ IF NOT EXISTS ] nom_table
Cette clause indique les paramètres de stockage optionnels pour la nouvelle
- vue matérialisée ; voir pour plus
+ vue matérialisée ; voir
+ dans la documentation de pour plus
d'informations. Tous les paramètres supportés pour CREATE
- TABLE sont aussi supportés par CREATE
- MATERIALIZED VIEW.
+ TABLE sont aussi supportés par CREATE
+ MATERIALIZED VIEW.
Voir pour plus d'informations.
diff --git a/postgresql/ref/create_opclass.xml b/postgresql/ref/create_opclass.xml
index 0cd4703f9..521c871fb 100644
--- a/postgresql/ref/create_opclass.xml
+++ b/postgresql/ref/create_opclass.xml
@@ -167,17 +167,18 @@
- Dans une clause FUNCTION, le (ou les) types de données
- en opérande, supporté par la fonction, si différent du type de données en
- entrée de la fonction (pour les fonctions de comparaison d'index B-tree
- et les fonctions des index hash) ou le type de
- données de la classe (pour les fonctions de support du tri pour les index
- B-tree et pour toutes les fonctions des opérateurs de classe des index
- GiST, SP-GiST, GIN et BRIN). Ces valeurs par défaut sont correctes. Du coup,
- op_type n'a pas besoin d'être
- précisé dans les clauses FUNCTION, sauf dans le cas de
- la fonction de support du tri pour les index B-tree qui doit supporter
- les comparaisons inter-types.
+ Dans une clause FUNCTION, le (ou les) types de
+ données en opérande, supporté par la fonction, si différent du type de
+ données en entrée de la fonction (pour les fonctions de comparaison
+ d'index B-tree et les fonctions des index hash) ou le type de données de
+ la classe (pour les fonctions de support du tri pour les index B-tree,
+ B-tree equal image functions et pour toutes les fonctions des opérateurs
+ de classe des index GiST, SP-GiST, GIN et BRIN). Ces valeurs par défaut
+ sont correctes. Du coup, op_type n'a pas besoin d'être précisé
+ dans les clauses FUNCTION, sauf dans le cas de la
+ fonction de support du tri pour les index B-tree qui doit supporter les
+ comparaisons inter-types.
diff --git a/postgresql/ref/create_publication.xml b/postgresql/ref/create_publication.xml
index 67e162ba6..55a2e9d5c 100644
--- a/postgresql/ref/create_publication.xml
+++ b/postgresql/ref/create_publication.xml
@@ -72,16 +72,27 @@ CREATE PUBLICATION nom
en a) est ajoutées. De manière facultative, * peut
être spécifié après le nom de la table pour indiquer explicitement que
les tables descendantes doivent être incluses.
+ This does not apply to a partitioned table, however. The partitions of
+ a partitioned table are always implicitly considered part of the
+ publication, so they are never explicitly added to the publication.
- Seules les tables persistentes peuvent faire partie d'une publication.
- Les tables temporaires, tables non journalisées, tables distantes, vues
- matérialisées, vues standard ainsi que les tables partitionnées ne
+ Seules les tables persistentes et les tables partitionnées peuvent faire
+ partie d'une publication. Les tables temporaires, tables non
+ journalisées, tables distantes, vues matérialisées et vues standard ne
peuvent pas faire partie d'une publication. Pour répliquer une table
partitionnée, il faut ajouter chaque partition individuellement à la
publication.
+
+
+ When a partitioned table is added to a publication, all of its existing
+ and future partitions are implicitly considered to be part of the
+ publication. So, even operations that are performed directly on a
+ partition are also published via publications that its ancestors are
+ part of.
+
@@ -119,6 +130,26 @@ CREATE PUBLICATION nom
+
+
+ publish_via_partition_root (boolean)
+
+
+ This parameter determines whether changes in a partitioned table (or
+ on its partitions) contained in the publication will be published
+ using the identity and schema of the partitioned table rather than
+ that of the individual partitions that are actually changed; the
+ latter is the default. Enabling this allows the changes to be
+ replicated into a non-partitioned table or a partitioned table
+ consisting of a different set of partitions.
+
+
+
+ If this is enabled, TRUNCATE operations performed
+ directly on partitions are not replicated.
+
+
+
diff --git a/postgresql/ref/create_table.xml b/postgresql/ref/create_table.xml
index 442e4194b..8af27977f 100644
--- a/postgresql/ref/create_table.xml
+++ b/postgresql/ref/create_table.xml
@@ -892,16 +892,27 @@ contrainte EXCLUDE peut valoir :
Les clauses ALWAYS et BY DEFAULT
- déterminent comment la valeur de la séquence est prioritaire par rapport
- à une valeur définie par l'utilisateur dans un ordre
- INSERT. Si ALWAYS est spécifié,
- une valeur définie par l'utilisateur ne sera acceptée que si l'ordre
- INSERT spécifie OVERRIDING SYSTEM
- VALUE. Si BY DEFAULT est spécifié, alors la
- valeur spécifiée par l'utilisateur est prioritaire. Voir pour plus de détails. (Avec une commande
- COPY, les valeurs spécifiées par l'utilisateur sont
- toujours utilisée quelque soit ce paramètre.)
+ determine how explicitly user-specified values are handled in
+ INSERT and UPDATE commands.
+
+
+
+ In an INSERT command, if ALWAYS is
+ selected, a user-specified value is only accepted if the
+ INSERT statement specifies OVERRIDING SYSTEM
+ VALUE. If BY DEFAULT is selected, then the
+ user-specified value takes precedence. See
+ for details. (In the COPY command, user-specified
+ values are always used regardless of this setting.)
+
+
+
+ In an UPDATE command, if ALWAYS is
+ selected, any update of the column to any value other than
+ DEFAULT will be rejected. If BY
+ DEFAULT is selected, the column can be updated normally.
+ (There is no OVERRIDING clause for the
+ UPDATE command.)
@@ -1352,8 +1363,8 @@ contrainte EXCLUDE peut valoir :
-
- Paramètres de stockage
+
+ Paramètres de stockageparamètres de stockage
@@ -1549,6 +1560,36 @@ contrainte EXCLUDE peut valoir :
+
+ autovacuum_vacuum_insert_threshold, toast.autovacuum_vacuum_insert_threshold (integer)
+
+ autovacuum_vacuum_insert_threshold
+ storage parameter
+
+
+
+
+ Per-table value for
+ parameter. The special value of -1 may be used to disable insert vacuums on the table.
+
+
+
+
+
+ autovacuum_vacuum_insert_scale_factor, toast.autovacuum_vacuum_insert_scale_factor (float4)
+
+ autovacuum_vacuum_insert_scale_factor
+ storage parameter
+
+
+
+
+ Per-table value for
+ parameter.
+
+
+
+
autovacuum_analyze_threshold (integer)
@@ -2086,8 +2127,8 @@ CREATE TABLE cities_partdef
-
- Compatibilité
+
+ Compatibilité
La commande CREATE TABLE est conforme au standard
diff --git a/postgresql/ref/create_tablespace.xml b/postgresql/ref/create_tablespace.xml
index f125c3247..5f6bbbfa2 100644
--- a/postgresql/ref/create_tablespace.xml
+++ b/postgresql/ref/create_tablespace.xml
@@ -106,17 +106,20 @@
option_tablespace
- Un paramètre à configurer ou réinitialiser pour un tablespace. Actuellement,
- les seuls paramètres disponibles sont seq_page_cost
- et random_page_cost et
- effective_io_concurrency. Configurer un de ces paramètres
- pour un tablespace particulier va surcharger l'estimation habituelle du
- planificateur pour le coût de lecture des pages sur les tables de ce
- tablespace (voir ,
- et
- ). Ceci peut se révéler utile si
- un des tablespaces est situé sur un disque plus rapide ou plus lent que
- le reste du système d'entrées/sorties.
+ Un paramètre à configurer ou réinitialiser pour un tablespace.
+ Actuellement, les seuls paramètres disponibles sont
+ seq_page_cost et random_page_cost,
+ effective_io_concurrency et
+ maintenance_io_concurrency. Setting these values for
+ a particular tablespace will override the planner's usual estimate of
+ the cost of reading pages from tables in that tablespace, and the
+ executor's prefetching behavior, as established by the configuration
+ parameters of the same name (see ,
+ , , ). Ceci peut se révéler utile
+ si un des tablespaces est situé sur un disque plus rapide ou plus lent
+ que le reste du système d'entrées/sorties.
diff --git a/postgresql/ref/create_trigger.xml b/postgresql/ref/create_trigger.xml
index aedce58ea..b9320fcef 100644
--- a/postgresql/ref/create_trigger.xml
+++ b/postgresql/ref/create_trigger.xml
@@ -538,8 +538,8 @@ UPDATE OF nom_colonne_1 [, nom_colonne_2
création de triggers identiques sur toutes les partitions existantes. De
plus, toute partition créée ou attachée après coup contiendra elle-aussi un
trigger identique. Si la partition est détachée de son parent, le trigger
- est supprimé. Les triggers sur les tables partitionnées ne peuvent être que
- des triggers AFTER.
+ est supprimé. Les triggers sur les tables partitionnées ne peuvent pas être
+ des triggers INSTEAD OF.
@@ -570,16 +570,6 @@ UPDATE OF nom_colonne_1 [, nom_colonne_2
l'instruction en une action sur la table de base de la vue pour que les
triggers niveau instruction de la table de base soient déclenchés.
-
-
- Dans les versions de PostgreSQL antérieures à la
- 7.3, il était nécessaire de déclarer un type opaque de
- retour pour les fonctions déclencheur, plutôt que trigger. Pour
- pouvoir charger d'anciens fichiers de sauvegarde,
- CREATE TRIGGER accepte qu'une fonction déclare une valeur de retour de type
- opaque, mais il affiche un message d'avertissement et change le
- type de retour déclaré en trigger.
-
diff --git a/postgresql/ref/create_type.xml b/postgresql/ref/create_type.xml
index 187d4dc97..d8013486e 100644
--- a/postgresql/ref/create_type.xml
+++ b/postgresql/ref/create_type.xml
@@ -837,18 +837,6 @@ CREATE TYPE nom
squelettes de type erronés, un squelette sera seulement créé quand la fonction
en entrée est écrit en C.
-
-
- Dans les versions de PostgreSQL antérieures à la
- 7.3, la création d'un type coquille était habituellement évitée en remplaçant
- les références des fonctions au nom du type par le pseudotype opaque.
- Les arguments cstring et les résultats étaient également déclarés
- opaque. Pour supporter le chargement d'anciens
- fichiers de sauvegarde, CREATE TYPE accepte les fonctions
- d'entrées/sorties déclarées avec le pseudotype opaque mais un
- message d'avertissement est affiché. La déclaration de la fonction est
- également modifiée pour utiliser les bons types.
-
diff --git a/postgresql/ref/create_view.xml b/postgresql/ref/create_view.xml
index 5321356f7..878d910a5 100644
--- a/postgresql/ref/create_view.xml
+++ b/postgresql/ref/create_view.xml
@@ -130,7 +130,7 @@ CREATE VIEW [ schéma . ] nom
- check_option (string)
+ check_option (enum)
Ce paramètre peut avoir soit local soit
@@ -290,7 +290,7 @@ propriétaire).
-Vues modifiables
+Vues modifiablesvues modifiables
diff --git a/postgresql/ref/declare.xml b/postgresql/ref/declare.xml
index 0f72ff45a..266f6d6fa 100644
--- a/postgresql/ref/declare.xml
+++ b/postgresql/ref/declare.xml
@@ -142,8 +142,8 @@
-
- Notes
+
+ Notes
Les curseurs normaux renvoient les données au format texte, le même que
diff --git a/postgresql/ref/delete.xml b/postgresql/ref/delete.xml
index 5105b98ff..cd31f1175 100644
--- a/postgresql/ref/delete.xml
+++ b/postgresql/ref/delete.xml
@@ -124,8 +124,7 @@ DELETE FROM [ ONLY ] nom_table [ *
Une expression de table, qui permet de faire apparaître des colonnes
d'autres tables dans la condition WHERE. Cela utilise
- la même syntaxe que la clause d'une instruction
+ la même syntaxe que la clause d'une instruction
SELECT ; par exemple, un alias peut être
spécifié pour un nom de table. Ne pas répéter la table cible comme un
element_from sauf si vous
diff --git a/postgresql/ref/do.xml b/postgresql/ref/do.xml
index b19504630..1d0dbd314 100644
--- a/postgresql/ref/do.xml
+++ b/postgresql/ref/do.xml
@@ -97,7 +97,7 @@ DO [ LANGUAGE nom_langage ]
- Exemples
+ Exemples
Donner les droits sur toutes les vues du schéma public
au rôle webuser :
diff --git a/postgresql/ref/drop_database.xml b/postgresql/ref/drop_database.xml
index e74da53fd..4a5a0f2da 100644
--- a/postgresql/ref/drop_database.xml
+++ b/postgresql/ref/drop_database.xml
@@ -22,23 +22,28 @@
- DROP DATABASE [ IF EXISTS ] nom
-
+ DROP DATABASE [ IF EXISTS ] name [ [ WITH ] ( option [, ...] ) ]
+
+where option can be:
+
+ FORCE
+Description
- La commande DROP DATABASE détruit une base de données. Elle supprime
- les entrées du catalogue pour la base et le répertoire
- contenant les données. Elle ne peut être exécutée que par le propriétaire de
- la base de données ou le superutilisateur.
- De plus, elle ne peut être exécutée si quelqu'un est
- connecté sur la base de données cible, y compris l'utilisateur effectuant la
- demande de suppression. (On peut se connecter à
+ La commande DROP DATABASE détruit une base de données.
+ Elle supprime les entrées du catalogue pour la base et le répertoire
+ contenant les données. Elle ne peut être exécutée que par le propriétaire
+ de la base de données ou le superutilisateur. De plus, elle ne peut être
+ exécutée si vous êtes connecté sur la base de données cible, y compris
+ l'utilisateur effectuant la demande de suppression. (On peut se connecter à
postgres ou à toute autre base de données pour lancer
- cette commande.)
+ cette commande.) Also, if anyone else is connected to the target database,
+ this command will fail unless you use the FORCE option
+ described below.
@@ -69,6 +74,24 @@
+
+
+ FORCE
+
+
+ Attempt to terminate all existing connections to the target database.
+ It doesn't terminate if prepared transactions, active logical replication
+ slots or subscriptions are present in the target database.
+
+
+ This will fail if the current user has no permissions to terminate other
+ connections. Required permissions are the same as with
+ pg_terminate_backend, described in
+ . This will also fail if we
+ are not able to terminate connections.
+
+
+
diff --git a/postgresql/ref/dropdb.xml b/postgresql/ref/dropdb.xml
index 6ac86f0af..cfc900e4b 100644
--- a/postgresql/ref/dropdb.xml
+++ b/postgresql/ref/dropdb.xml
@@ -88,6 +88,18 @@
+
+
+
+
+
+ Attempt to terminate all existing connections to the target database
+ before dropping it. See for more
+ information on this option.
+
+
+
+
diff --git a/postgresql/ref/explain.xml b/postgresql/ref/explain.xml
index d1c66e7c5..d1156ea3d 100644
--- a/postgresql/ref/explain.xml
+++ b/postgresql/ref/explain.xml
@@ -42,6 +42,7 @@ EXPLAIN [ ANALYZE ] [ VERBOSE ] instructionboolean ]
SETTINGS [ boolean ]
BUFFERS [ boolean ]
+ WAL [ boolean ]
TIMING [ boolean ]
SUMMARY [ boolean ]
FORMAT { TEXT | XML | JSON | YAML }
@@ -197,6 +198,19 @@ ROLLBACK;
+
+ WAL
+
+
+ Include information on WAL record generation. Specifically, include the
+ number of records, number of full page images (fpi) and amount of WAL
+ bytes generated. In text format, only non-zero values are printed. This
+ parameter may only be used when ANALYZE is also
+ enabled. It defaults to FALSE.
+
+
+
+
TIMING
diff --git a/postgresql/ref/insert.xml b/postgresql/ref/insert.xml
index a21cec647..3b3ca4726 100644
--- a/postgresql/ref/insert.xml
+++ b/postgresql/ref/insert.xml
@@ -79,8 +79,8 @@ INSERT INTO nom_table [ AS ON CONFLICT peut être utilisé pour indiquer une
action alternative lorsqu'une erreur sur une contrainte unique ou une
- contrainte d'exclusion est levée (voir ci-dessous).
+ contrainte d'exclusion est levée (voir
+ ci-dessous).
@@ -136,7 +136,7 @@ INSERT INTO nom_table [ AS Paramètres
- Insertion
+ Insertion
Cette section concerne les paramètres qui peuvent être utilisés
@@ -218,10 +218,19 @@ INSERT INTO nom_table [ AS OVERRIDING SYSTEM VALUE
- Sans cette clause, spécifier une valeur explicite (autre que
- (DEFAULT) pour une colonne d'identité définie comme
- GENERATED ALWAYS retourne une erreur. Cette clause
- passe outre cette restriction. restriction.
+ If this clause is specified, then any values supplied for identity
+ columns will override the default sequence-generated values.
+
+
+
+ For an identity column defined as GENERATED ALWAYS,
+ it is an error to insert an explicit value (other than
+ DEFAULT) without specifying either
+ OVERRIDING SYSTEM VALUE or OVERRIDING USER
+ VALUE. (For an identity column defined as
+ GENERATED BY DEFAULT, OVERRIDING SYSTEM
+ VALUE is the normal behavior and specifying it does nothing,
+ but PostgreSQL allows it as an extension.)
@@ -231,8 +240,7 @@ INSERT INTO nom_table [ AS
Si cette clause est spécifiée, alors toute valeur fournir pour les
- colonnes d'identité définies comme GENERATED BY
- DEFAULT sont ignorées et les valeurs par défaut générée
+ colonnes d'identité sont ignorées et les valeurs par défaut générée
par la séquence sont appliquées.
@@ -252,7 +260,8 @@ INSERT INTO nom_table [ AS DEFAULT VALUES
- Toutes les colonnes seront remplies avec leur valeur par défaut.
+ Toutes les colonnes seront remplies avec leur valeur par défaut, as if
+ DEFAULT were explicitly specified for each column.
(Une clause OVERRIDING n'est pas permise dans cette
forme.)
@@ -272,7 +281,11 @@ INSERT INTO nom_table [ AS DEFAULT
- La colonne correspondante sera remplie avec sa valeur par défaut.
+ La colonne correspondante sera remplie avec sa valeur par défaut. An
+ identity column will be filled with a new value generated by the
+ associated sequence. For a generated column, specifying this is
+ permitted but merely specifies the normal behavior of computing the
+ column from its generation expression.
@@ -314,8 +327,8 @@ INSERT INTO nom_table [ AS
-
- Clause ON CONFLICT
+
+ Clause ON CONFLICTUPSERT
diff --git a/postgresql/ref/listen.xml b/postgresql/ref/listen.xml
index d545c58cb..2b34830d3 100644
--- a/postgresql/ref/listen.xml
+++ b/postgresql/ref/listen.xml
@@ -64,12 +64,6 @@
lancer LISTEN ou UNLISTEN directement.
Tous les détails se trouvent dans la documentation de l'interface utilisée.
-
-
- décrit
- plus en détails l'utilisation de LISTEN et
- NOTIFY.
-
@@ -101,6 +95,29 @@
Une transaction qui a exécuté LISTEN ne peut pas être
préparée pour la validation en deux phases.
+
+
+ There is a race condition when first setting up a listening session:
+ if concurrently-committing transactions are sending notify events,
+ exactly which of those will the newly listening session receive?
+ The answer is that the session will receive all events committed after
+ an instant during the transaction's commit step. But that is slightly
+ later than any database state that the transaction could have observed
+ in queries. This leads to the following rule for
+ using LISTEN: first execute (and commit!) that
+ command, then in a new transaction inspect the database state as needed
+ by the application logic, then rely on notifications to find out about
+ subsequent changes to the database state. The first few received
+ notifications might refer to updates already observed in the initial
+ database inspection, but this is usually harmless.
+
+
+
+
+ contains a more extensive
+ discussion of the use of LISTEN and
+ NOTIFY.
+
diff --git a/postgresql/ref/lock.xml b/postgresql/ref/lock.xml
index d2047dc55..841f29dfc 100644
--- a/postgresql/ref/lock.xml
+++ b/postgresql/ref/lock.xml
@@ -209,7 +209,7 @@
informations sur la façon d'acquérir un vrai verrou de niveau ligne, voir
et
- dans la documentation de référence de SELECT.
+ dans la documentation de référence de .
diff --git a/postgresql/ref/notify.xml b/postgresql/ref/notify.xml
index f4ebaeb93..4c31bfaab 100644
--- a/postgresql/ref/notify.xml
+++ b/postgresql/ref/notify.xml
@@ -103,8 +103,8 @@
Si le même nom de canal est signalé plusieurs fois à partir de la même
- transaction avec des chaînes de charge identiques, le serveur de bases
- de données peut décider de délivrer une seule notification. Par contre, les
+ transaction avec des chaînes de charge identiques, only one instance of the
+ notification event is delivered to listeners. Par contre, les
notifications avec des chaînes de charges distinctes seront toujours
délivrées par des notifications distinctes. De façon similaire, les
notifications provenant de différentes transactions ne seront jamais
diff --git a/postgresql/ref/pg_basebackup.xml b/postgresql/ref/pg_basebackup.xml
index 7109a9764..601a383aa 100644
--- a/postgresql/ref/pg_basebackup.xml
+++ b/postgresql/ref/pg_basebackup.xml
@@ -116,6 +116,13 @@
+
+
+ Whenever pg_basebackup is taking a base
+ backup, the pg_stat_progress_basebackup
+ view will report the progress of the backup.
+ See for details.
+
@@ -495,13 +502,6 @@
cible estimée va augmenter quand il dépasse l'estimation totale sans
les journaux de transactions.
-
-
- Quand cette option est activée, le serveur commencera par calculer la
- taille totale des bases de données, puis enverra leur contenu. Du coup,
- cela peut rendre la sauvegarde plus longue, en particulier plus longue
- avant l'envoi de la première donnée.
-
@@ -591,6 +591,94 @@
+
+
+
+
+
+ This option prevents the server from estimating the total
+ amount of backup data that will be streamed, resulting in the
+ backup_total column in the
+ pg_stat_progress_basebackup
+ to be NULL.
+
+
+ Without this option, the backup will start by enumerating
+ the size of the entire database, and then go back and send
+ the actual contents. This may make the backup take slightly
+ longer, and in particular it will take longer before the first
+ data is sent. This option is useful to avoid such estimation
+ time if it's too long.
+
+
+ This option is not allowed when using .
+
+
+
+
+
+
+
+
+ Disables generation of a backup manifest. If this option is not
+ specified, the server will generate and send a backup manifest
+ which can be verified using .
+ The manifest is a list of every file present in the backup with the
+ exception of any WAL files that may be included. It also stores the
+ size, last modification time, and an optional checksum for each file.
+
+
+
+
+
+
+
+
+ Forces all filenames in the backup manifest to be hex-encoded.
+ If this option is not specified, only non-UTF8 filenames are
+ hex-encoded. This option is mostly intended to test that tools which
+ read a backup manifest file properly handle this case.
+
+
+
+
+
+
+
+
+ Specifies the checksum algorithm that should be applied to each file
+ included in the backup manifest. Currently, the available
+ algorithms are NONE, CRC32C,
+ SHA224, SHA256,
+ SHA384, and SHA512.
+ The default is CRC32C.
+
+
+ If NONE is selected, the backup manifest will
+ not contain any checksums. Otherwise, it will contain a checksum
+ of each file in the backup using the specified algorithm. In addition,
+ the manifest will always contain a SHA256
+ checksum of its own contents. The SHA algorithms
+ are significantly more CPU-intensive than CRC32C,
+ so selecting one of them may increase the time required to complete
+ the backup.
+
+
+ Using a SHA hash function provides a cryptographically secure digest
+ of each file for users who wish to verify that the backup has not been
+ tampered with, while the CRC32C algorithm provides a checksum which is
+ much faster to calculate and good at catching errors due to accidental
+ changes but is not resistant to targeted modifications. Note that, to
+ be useful against an adversary who has access to the backup, the backup
+ manifest would need to be stored securely elsewhere or otherwise
+ verified not to have been modified since the backup was taken.
+
+
+ can be used to check the
+ integrity of a backup against the backup manifest.
+
+
+
diff --git a/postgresql/ref/pg_dump.xml b/postgresql/ref/pg_dump.xml
index 8afa4a1fd..ed5218395 100644
--- a/postgresql/ref/pg_dump.xml
+++ b/postgresql/ref/pg_dump.xml
@@ -412,8 +412,7 @@
sélectionnés en utilisant des caractères joker dans le modèle. Lors de
l'utilisation de ces caractères, il faut faire attention à placer le
modèle entre guillemets, si nécessaire, pour empêcher le shell de
- remplacer les jokers ; voir .
+ remplacer les jokers ; voir .
@@ -555,7 +554,7 @@
modèle. Lors de l'utilisation de ces caractères, il faut faire
attention à placer le modèle entre guillemets, si nécessaire, pour
empêcher le shell de remplacer les jokers ; voir .
+ linkend="pg-dump-examples"/>.
@@ -808,6 +807,36 @@
+
+
+
+
+ Dump the data for any foreign table with a foreign server
+ matching foreignserver
+ pattern. Multiple foreign servers can be selected by writing multiple
+ switches.
+ Also, the foreignserver parameter is
+ interpreted as a pattern according to the same rules used by
+ psql's \d commands
+ (see below),
+ so multiple foreign servers can also be selected by writing wildcard characters
+ in the pattern. When using wildcards, be careful to quote the pattern
+ if needed to prevent the shell from expanding the wildcards; see
+ below.
+ The only exception is that an empty pattern is disallowed.
+
+
+
+
+ When is specified,
+ pg_dump does not check that the foreign
+ table is writeable. Therefore, there is no guarantee that the
+ results of a foreign table dump can be successfully restored.
+
+
+
+
+
@@ -1409,8 +1438,8 @@
-
- Exemples
+
+ Exemples
Sauvegarder une base appelée ma_base dans un script
@@ -1514,7 +1543,7 @@
Pour indiquer un nom qui comporte des majuscules dans les options
et assimilées, il faut ajouter des guillemets
- doubles ; sinon le nom est converti en minuscules (voir). Les guillemets doubles sont interprétés par
le shell et doivent donc être placés entre guillemets. Du coup, pour
sauvegarder une seule table dont le nom comporte des majuscules, on utilise
diff --git a/postgresql/ref/pg_dumpall.xml b/postgresql/ref/pg_dumpall.xml
index 504c77291..9decea6db 100644
--- a/postgresql/ref/pg_dumpall.xml
+++ b/postgresql/ref/pg_dumpall.xml
@@ -321,7 +321,7 @@
class="parameter">motif est interprété comme un motif
suivant les mêmes règles que les méta-commandes \d
de psql (voir ), donc
+ linkend="app-psql-patterns"/>), donc
plusieurs bases de données peuvent aussi être exclues en écrivant les
caractères joker dans le motif. En utilisant les caractères joker,
faite attention à bien mettre entre guillemets le motif si nécessaire
diff --git a/postgresql/ref/pg_rewind.xml b/postgresql/ref/pg_rewind.xml
index e9e67c0a0..2a438cdfc 100644
--- a/postgresql/ref/pg_rewind.xml
+++ b/postgresql/ref/pg_rewind.xml
@@ -47,17 +47,16 @@
- Le résultat est le même que lorsqu'on remplace le répertoire de données
- cible avec celui de la source. Seuls les blocs modifiés des fichiers des
- relations déjà existants sont copiés, tous les autres fichiers sont copiés
- intégralement, fichiers de configurations compris. L'avantage de
- pg_rewind par rapport à la réalisation d'une
- nouvelle sauvegarde de base, ou l'utilisation d'un outil tel que
- rsync, est que
- pg_rewind n'a pas besoin de lire tous les blocs
- non modifiés des fichiers de l'ancienne instance. Cela rend l'opération
- éminement plus rapide lorsqu'on est face à une volumétrie conséquente et
- qu'il a peu de différences entre les deux instances.
+ After a successful rewind, the state of the target data directory is
+ analogous to a base backup of the source data directory. Unlike taking
+ a new base backup or using a tool like rsync,
+ pg_rewind does not require comparing or copying
+ unchanged relation blocks in the cluster. Only changed blocks from existing
+ relation files are copied; all other files, including new relation files,
+ configuration files, and WAL segments, are copied in full. As such the
+ rewind operation is significantly faster than other approaches when the
+ database is large and only a small fraction of blocks differ between the
+ clusters.
@@ -73,26 +72,26 @@
fichiers WAL peuvent ne plus être présents dans le répertoire
pg_wal. Dans ce cas, ils peuvent être copiés à la main
depuis les fichiers WAL archivés vers le répertoire
- pg_wal ou récupérés au démarrage en configurant ou .
+ pg_wal or run
+ pg_rewind with the -c option to
+ automatically retrieve them from the WAL archive.
L'utilisation de pg_rewind n'est pas limitée au
failover : un serveur standby peut être promu, écrire quelques
transactions, puis transformé de nouveau en standby avec cet outil.
- Lorsque l'instance cible est démarrée pour la première fois après avoir
- utilisé pg_rewind, elle va se mettre en mode de
- restauration (recovery) et va rejouer tous
- les fichiers WAL générés par l'instance source depuis la bascule. Si
- certains fichiers WAL ne sont plus disponibles sur la source lorsque
- pg_rewind est en cours, ils ne peuvent donc plus
- être copiés par la session pg_rewind. Il est
- alors nécessaire de faire en sorte qu'ils puissent être disponibles lorsque
- le serveur cible sera démarré. Cela est possible en créant un fichier
- recovery.signal dans le répertoire des données cible
- et en configurant correctement le paramètre dans le fichier
+ After running pg_rewind, WAL replay needs to
+ complete for the data directory to be in a consistent state. When the
+ target server is started again it will enter archive recovery and replay
+ all WAL generated in the source server from the last checkpoint before
+ the point of divergence. If some of the WAL was no longer available in the
+ source server when pg_rewind was run, and
+ therefore could not be copied by the pg_rewind
+ session, it must be made available when the target server is started.
+ This can be done by creating a recovery.signal file
+ in the target data directory and by configuring a suitable
+ in
postgresql.conf.
@@ -115,6 +114,15 @@
recommandé.
+
+ As pg_rewind copies configuration files
+ entirely from the source, it may be required to correct the configuration
+ used for recovery before restarting the target server, especially if
+ the target is reintroduced as a standby of the source. If you restart
+ the server after the rewind operation has finished but without configuring
+ recovery, the target may again diverge from the primary.
+
+
pg_rewind échouera immédiatement s'il trouve
des fichiers qu'il ne peut pas modifier. Ceci peut arriver quand les
@@ -176,6 +184,36 @@
+
+
+
+
+ pg_rewind requires that the target server
+ is cleanly shut down before rewinding. By default, if the target server
+ is not shut down cleanly, pg_rewind starts
+ the target server in single-user mode to complete crash recovery first,
+ and stops it.
+ By passing this option, pg_rewind skips
+ this and errors out immediately if the server is not cleanly shut
+ down. Users are expected to handle the situation themselves in that
+ case.
+
+
+
+
+
+
+
+
+
+ Create standby.signal and append connection
+ settings to postgresql.auto.conf in the output
+ directory. --source-server is mandatory with
+ this option.
+
+
+
+
@@ -214,6 +252,19 @@
+
+
+
+
+
+ Use restore_command defined in the target cluster
+ configuration to retrieve WAL files from the WAL archive if these
+ files are no longer available in the pg_wal
+ directory.
+
+
+
+
@@ -314,7 +365,10 @@ GRANT EXECUTE ON function pg_catalog.pg_read_binary_file(text, bigint, bigint, b
chaque enregistrement dans les journaux de transactions, enregistrer
chaque bloc de données modifié. Ceci a pour résultat une liste de tous
les blocs de données modifiés dans l'instance cible, après la séparation
- avec l'instance source.
+ avec l'instance source. If some of the WAL files are no longer
+ available, try re-running pg_rewind with
+ the option to search for the missing files in
+ the WAL archive.
@@ -324,37 +378,48 @@ GRANT EXECUTE ON function pg_catalog.pg_read_binary_file(text, bigint, bigint, b
cible, soit en utilisant un accès direct au système de fichiers
() soit en SQL
().
+ Relation files are now in a state equivalent to the moment of the last
+ completed checkpoint prior to the point at which the WAL timelines of the
+ source and target diverged plus the current state on the source of any
+ blocks changed on the target after that divergence.
- Copier tous les autres fichiers, tels que pg_xact
- et les fichiers de configuration de l'instance source vers l'instance
- cible (sauf les fichiers des relations). De façon similaire aux
- sauvegardes de base, le contenu des répertoires
- pg_dynshmem/, pg_notify/,
- pg_replslot/, pg_serial/,
- pg_snapshots/, pg_stat_tmp/et
- pg_subtrans/ sont omis des données copiées à partir
- de l'instance source. Tout fichier ou répertoire commençant par
- pgsql_tmp est omis, ainsi que
- backup_label, tablespace_map,
+ Copy all other files, including new relation files, WAL segments,
+ pg_xact, and configuration files from the source
+ cluster to the target cluster. Similarly to base backups, the contents
+ of the directories pg_dynshmem/,
+ pg_notify/, pg_replslot/,
+ pg_serial/, pg_snapshots/,
+ pg_stat_tmp/, and pg_subtrans/
+ are omitted from the data copied from the source cluster. The files
+ backup_label,
+ tablespace_map,
pg_internal.init,
- postmaster.opts et
- postmaster.pid.
+ postmaster.opts, and
+ postmaster.pid, as well as any file or directory
+ beginning with pgsql_tmp, are omitted.
+
+
+
+
+
+ Create a backup_label file to begin WAL replay at
+ the checkpoint created at failover and configure the
+ pg_control file with a minimum consistency LSN
+ defined as the result of pg_current_wal_insert_lsn()
+ when rewinding from a live source or the last checkpoint LSN when
+ rewinding from a stopped source.
- Appliquer les enregistrements des journaux de transactions provenant de
- l'instance source, en commençant à partir du checkpoint créé au moment
- du failover. (En fait, pg_rewind n'applique
- pas les journaux de transactions. Il crée simplement un fichier
- backup_label qui fera en sorte que PostgreSQL
- démarre en rejouant les enregistrements des journaux de transactions à
- partir de ce checkpoint.)
+ When starting the target, PostgreSQL replays
+ all the required WAL, resulting in a data directory in a consistent
+ state.
diff --git a/postgresql/ref/pg_verifybackup.xml b/postgresql/ref/pg_verifybackup.xml
new file mode 100644
index 000000000..bc30c4628
--- /dev/null
+++ b/postgresql/ref/pg_verifybackup.xml
@@ -0,0 +1,292 @@
+
+
+
+
+
+ pg_verifybackup
+
+
+
+ pg_verifybackup
+ 1
+ Application
+
+
+
+ pg_verifybackup
+ verify the integrity of a base backup of a
+ PostgreSQL cluster
+
+
+
+
+ pg_verifybackup
+ option
+
+
+
+
+
+ Description
+
+
+ pg_verifybackup is used to check the
+ integrity of a database cluster backup taken using
+ pg_basebackup against a
+ backup_manifest generated by the server at the time
+ of the backup. The backup must be stored in the "plain"
+ format; a "tar" format backup can be checked after extracting it.
+
+
+
+ It is important to note that the validation which is performed by
+ pg_verifybackup does not and can not include
+ every check which will be performed by a running server when attempting
+ to make use of the backup. Even if you use this tool, you should still
+ perform test restores and verify that the resulting databases work as
+ expected and that they appear to contain the correct data. However,
+ pg_verifybackup can detect many problems
+ that commonly occur due to storage problems or user error.
+
+
+
+ Backup verification proceeds in four stages. First,
+ pg_verifybackup reads the
+ backup_manifest file. If that file
+ does not exist, cannot be read, is malformed, or fails verification
+ against its own internal checksum, pg_verifybackup
+ will terminate with a fatal error.
+
+
+
+ Second, pg_verifybackup will attempt to verify that
+ the data files currently stored on disk are exactly the same as the data
+ files which the server intended to send, with some exceptions that are
+ described below. Extra and missing files will be detected, with a few
+ exceptions. This step will ignore the presence or absence of, or any
+ modifications to, postgresql.auto.conf,
+ standby.signal, and recovery.signal,
+ because it is expected that these files may have been created or modified
+ as part of the process of taking the backup. It also won't complain about
+ a backup_manifest file in the target directory or
+ about anything inside pg_wal, even though these
+ files won't be listed in the backup manifest. Only files are checked;
+ the presence or absence of directories is not verified, except
+ indirectly: if a directory is missing, any files it should have contained
+ will necessarily also be missing.
+
+
+
+ Next, pg_verifybackup will checksum all the files,
+ compare the checksums against the values in the manifest, and emit errors
+ for any files for which the computed checksum does not match the
+ checksum stored in the manifest. This step is not performed for any files
+ which produced errors in the previous step, since they are already known
+ to have problems. Also, files which were ignored in the previous step are
+ also ignored in this step.
+
+
+
+ Finally, pg_verifybackup will use the manifest to
+ verify that the write-ahead log records which will be needed to recover
+ the backup are present and that they can be read and parsed. The
+ backup_manifest contains information about which
+ write-ahead log records will be needed, and
+ pg_verifybackup will use that information to
+ invoke pg_waldump to parse those write-ahed log
+ records. The --quiet flag will be used, so that
+ pg_waldump will only report errors, without producing
+ any other output. While this level of verification is sufficient to
+ detect obvious problems such as a missing file or one whose internal
+ checksums do not match, they aren't extensive enough to detect every
+ possible problem that might occur when attempting to recover. For
+ instance, a server bug that produces write-ahead log records that have
+ the correct checksums but specify nonsensical actions can't be detected
+ by this method.
+
+
+
+ Note that if extra WAL files which are not required to recover the backup
+ are present, they will not be checked by this tool, although
+ a separate invocation of pg_waldump could be used for
+ that purpose. Also note that WAL verification is version-specific: you
+ must use the version of pg_verifybackup, and thus of
+ pg_waldump, which pertains to the backup being checked.
+ In contrast, the data file integrity checks should work with any version
+ of the server that generates a backup_manifest file.
+
+
+
+
+ Options
+
+
+ The following command-line options control the behavior.
+
+
+
+
+
+
+
+ Exit as soon as a problem with the backup is detected. If this option
+ is not specified, pg_verifybackup will continue
+ checking the backup even after a problem has been detected, and will
+ report all problems detected as errors.
+
+
+
+
+
+
+
+
+
+ Ignore the specified file or directory, which should be expressed
+ as a relative pathname, when comparing the list of data files
+ actually present in the backup to those listed in the
+ backup_manifest file. If a directory is
+ specified, this option affects the entire subtree rooted at that
+ location. Complaints about extra files, missing files, file size
+ differences, or checksum mismatches will be suppressed if the
+ relative pathname matches the specified pathname. This option
+ can be specified multiple times.
+
+
+
+
+
+
+
+
+
+ Use the manifest file at the specified path, rather than one located
+ in the root of the backup directory.
+
+
+
+
+
+
+
+
+
+ Don't attempt to parse write-ahead log data that will be needed
+ to recover from this backup.
+
+
+
+
+
+
+
+
+
+ Don't print anything when a backup is successfully verified.
+
+
+
+
+
+
+
+
+
+ Do not verify data file checksums. The presence or absence of
+ files and the sizes of those files will still be checked. This is
+ much faster, because the files themselves do not need to be read.
+
+
+
+
+
+
+
+
+
+ Try to parse WAL files stored in the specified directory, rather than
+ in pg_wal. This may be useful if the backup is
+ stored in a separate location from the WAL archive.
+
+
+
+
+
+
+
+ Other options are also available:
+
+
+
+
+
+
+
+ Print the pg_verifybackup version and exit.
+
+
+
+
+
+
+
+
+
+ Show help about pg_verifybackup command
+ line arguments, and exit.
+
+
+
+
+
+
+
+
+
+
+ Examples
+
+
+ To create a base backup of the server at mydbserver and
+ verify the integrity of the backup:
+
+$pg_basebackup -h mydbserver -D /usr/local/pgsql/data
+$pg_verifybackup /usr/local/pgsql/data
+
+
+
+
+ To create a base backup of the server at mydbserver, move
+ the manifest somewhere outside the backup directory, and verify the
+ backup:
+
+$pg_basebackup -h mydbserver -D /usr/local/pgsql/backup1234
+$mv /usr/local/pgsql/backup1234/backup_manifest /my/secure/location/backup_manifest.1234
+$pg_verifybackup -m /my/secure/location/backup_manifest.1234 /usr/local/pgsql/backup1234
+
+
+
+
+ To verify a backup while ignoring a file that was added manually to the
+ backup directory, and also skipping checksum verification:
+
+$pg_basebackup -h mydbserver -D /usr/local/pgsql/data
+$edit /usr/local/pgsql/data/note.to.self
+$pg_verifybackup --ignore=note.to.self --skip-checksums /usr/local/pgsql/data
+
+
+
+
+
+
+ See Also
+
+
+
+
+
+
+
diff --git a/postgresql/ref/pg_waldump.xml b/postgresql/ref/pg_waldump.xml
index 1ec7ca04a..244c72467 100644
--- a/postgresql/ref/pg_waldump.xml
+++ b/postgresql/ref/pg_waldump.xml
@@ -134,6 +134,18 @@ PostgreSQL documentation
+
+
+
+
+
+ Do not print any output, except for errors. This option can be useful
+ when you want to know whether a range of WAL records can be
+ successfully parsed but don't care about the record contents.
+
+
+
+
diff --git a/postgresql/ref/pgbench.xml b/postgresql/ref/pgbench.xml
index c7e7f2c26..dbd4fee85 100644
--- a/postgresql/ref/pgbench.xml
+++ b/postgresql/ref/pgbench.xml
@@ -213,12 +213,34 @@ pgbench options
- g (Génère les données)
+ g or G (Generate data, client-side or server-side)
Génère des données et les charge dans les tables standards,
remplaçant toutes les données déjà présentes.
+
+ With g (client-side data generation),
+ data is generated in pgbench client and then
+ sent to the server. This uses the client/server bandwidth
+ extensively through a COPY.
+ Using g causes logging to print one message
+ every 100,000 rows while generating data for the
+ pgbench_accounts table.
+
+
+ With G (server-side data generation),
+ only small queries are sent from the pgbench
+ client and then data is actually generated in the server.
+ No significant bandwidth is required for this variant, but
+ the server will do more work.
+ Using G causes logging not to print any progress
+ message while generating data.
+
+
+ The default initialization behavior uses client-side data
+ generation (equivalent to g).
+
@@ -286,11 +308,14 @@ pgbench options
- Passe du mode verbeux au mode silencieux, en n'affichant
- qu'un message toutes les 5 secondes.
- Par défaut, on affiche un message toutes les 100 000 lignes, ce
- qui engendre souvent plusieurs lignes
- toutes les secondes (particulièrement sur du bon matériel)
+ Passe du mode verbeux au mode silencieux, en n'affichant qu'un message
+ toutes les 5 secondes. Par défaut, on affiche un message toutes les
+ 100 000 lignes, ce qui engendre souvent plusieurs lignes toutes
+ les secondes (particulièrement sur du bon matériel)
+
+
+ This setting has no effect if G is specified
+ in .
@@ -337,6 +362,31 @@ pgbench options
+
+
+
+
+ Create a partitioned pgbench_accounts table with
+ NUM partitions of nearly equal size for
+ the scaled number of accounts.
+ Default is 0, meaning no partitioning.
+
+
+
+
+
+
+
+
+ Create a partitioned pgbench_accounts table with
+ NAME method.
+ Expected values are range or hash.
+ This option requires that is set to non-zero.
+ If unspecified, default is range.
+
+
+
+
@@ -688,6 +738,16 @@ pgbench options
+
+ scriptname
+
+
+ Show the actual code of builtin script scriptname
+ on stderr, and exit immediately.
+
+
+
+
transactions
@@ -943,6 +1003,13 @@ pgbench options
d'environnement supportées par la libpq (voir
).
+
+
+ The environment variable PG_COLOR specifies whether to use
+ color in diagnostic messages. Possible values are
+ always, auto and
+ never.
+
@@ -1064,8 +1131,10 @@ pgbench options
- Variables automatiques
+ Variables automatiques de pgbench
+
+ Variable
@@ -1112,6 +1181,7 @@ pgbench options\gset [prefix]
+ \aset [prefix]
@@ -1121,18 +1191,29 @@ pgbench options
- Quand cette commande est utilisée, la requête SQL précédente doit
+ Quand the \gset command est utilisée, la requête SQL précédente doit
renvoyer une ligne, dont les valeurs des colonnes sont enregistrées dans
des variables nommées d'après les noms des colonnes et préfixées avec
prefix si ce dernier argument est fourni.
+
+ When the \aset command is used, all combined SQL queries
+ (separated by \;) have their columns stored into variables
+ named after column names, and prefixed with prefix
+ if provided. If a query returns no row, no assignment is made and the variable
+ can be tested for existence to detect this. If a query returns more than one
+ row, the last value is kept.
+
+
L'exemple suivant place la balance finale du compte provenant de la
première requête dans la variable abalance,
et remplit les variables p_two et
p_three avec les entiers provenant de la
troisième requête. Les résultats de la deuxième requête sont ignorés.
+ The result of the two last combined queries are stored in variables
+ four and five.
UPDATE pgbench_accounts
SET abalance = abalance + :delta
@@ -1141,6 +1222,7 @@ UPDATE pgbench_accounts
-- compound of two queries
SELECT 1 \;
SELECT 2 AS two, 3 AS three \gset p_
+SELECT 4 AS four \; SELECT 5 AS five \aset
@@ -1313,167 +1395,368 @@ SELECT 2 AS two, 3 AS three \gset p_
dans pgbench et peuvent être utilisés dans des
expressions apparaissant dans
\set.
+ The operators are listed in increasing precedence order.
+ Except as noted, operators taking two numeric inputs will produce
+ a double value if either input is double, otherwise they produce
+ an integer result.
-
- Opérateurs pgbench par priorité croissante
-
-
-
- Opérateur
- Description
- Exemple
- Résultat
-
-
-
-
- OR
- ou logique
- 5 or 0
- TRUE
-
-
- AND
- et logique
- 3 and 0
- FALSE
-
-
- NOT
- non logique
- not false
- TRUE
-
-
- IS [NOT] (NULL|TRUE|FALSE)
- tests de valeurs
- 1 is null
- FALSE
-
-
- ISNULL|NOTNULL
- tests sur NULL
- 1 notnull
- TRUE
-
-
- =
- est égal
- 5 = 4
- FALSE
-
-
- <>
- n'est pas égal
- 5 <> 4
- TRUE
-
-
- !=
- n'est pas égal
- 5 != 5
- FALSE
-
-
- <
- inférieur à
- 5 < 4
- FALSE
-
-
- <=
- inférieur ou égal
- 5 <= 4
- FALSE
-
-
- >
- plus grand que
- 5 > 4
- TRUE
-
-
- >=
- plus grand ou égal
- 5 >= 4
- TRUE
-
-
- |
- OU binaire sur entier
- 1 | 2
- 3
-
-
- #
- XOR binaire sur entier
- 1 # 3
- 2
-
-
- &
- ET binaire sur entier
- 1 & 3
- 1
-
-
- ~
- NON binaire sur entier
- ~ 1
- -2
-
-
- <<
- décalage binaire vers la gauche d'entier
- 1 << 2
- 4
-
-
- >>
- décalage binaire vers la droite d'entier
- 8 >> 2
- 2
-
-
- +
- addition
- 5 + 4
- 9
-
-
- -
- soustraction
- 3 - 2.0
- 1.0
-
-
- *
- multiplication
- 5 * 4
- 20
-
-
- /
- division (sur des entiers, tronque le résultat)
- 5 / 3
- 1
-
-
- %
- modulo
- 3 % 2
- 1
-
-
- -
- opposé
- - 2.0
- -2.0
-
-
-
-
@@ -1488,162 +1771,299 @@ SELECT 2 AS two, 3 AS three \gset p_
- Fonctions pgbench
-
-
-
-
-
-
+ pgbench Functions
+
- Fonction
- Type de retour
- Description
- Exemple
- Résultat
+
+ Function
+
+
+ Description
+
+
+ Example(s)
+
+
- abs(a)
- identique à a
- valeur absolue
- abs(-17)
- 17
+
+ abs ( number )
+ same type as input
+
+
+ Absolute value
+
+
+ abs(-17)
+ 17
+
+
- debug(a)
- identique à a
- affiche a dans stderr,
- et retourne a
- debug(5432.1)
- 5432.1
+
+ debug ( number )
+ same type as input
+
+
+ Prints the argument to stderr,
+ and returns the argument.
+
+
+ debug(5432.1)
+ 5432.1
+
+
- double(i)
- double
- convertit en double précision
- double(5432)
- 5432.0
+
+ double ( number )
+ double
+
+
+ Casts to double.
+
+
+ double(5432)
+ 5432.0
+
+
- exp(x)
- double
- exponentielle
- exp(1.0)
- 2.718281828459045
+
+ exp ( number )
+ double
+
+
+ Exponential (e raised to the given power)
+
+
+ exp(1.0)
+ 2.718281828459045
+
+
- greatest(a [, ... ] )
- double si a est double, sinon entier
- la plus grande valeur parmi les arguments
- greatest(5, 4, 3, 2)
- 5
+
+ greatest ( number, ... )
+ double if any argument is double, else integer
+
+
+ Selects the largest value among the arguments.
+
+
+ greatest(5, 4, 3, 2)
+ 5
+
+
- hash(a [, seed ] )
- integer
- alias pour hash_murmur2()
- hash(10, 5432)
- -5817877081768721676
+
+ hash ( value, seed )
+ integer
+
+
+ This is an alias for hash_murmur2.
+
+
+ hash(10, 5432)
+ -5817877081768721676
+
+
- hash_fnv1a(a [, seed ] )
- integer
- FNV-1a hash
- hash_fnv1a(10, 5432)
- -7793829335365542153
+
+ hash_fnv1a ( value, seed )
+ integer
+
+
+ Computes FNV-1a hash.
+
+
+ hash_fnv1a(10, 5432)
+ -7793829335365542153
+
+
- hash_murmur2(a [, seed ] )
- integer
- MurmurHash2 hash
- hash_murmur2(10, 5432)
- -5817877081768721676
+
+ hash_murmur2 ( value, seed )
+ integer
+
+
+ Computes MurmurHash2 hash.
+
+
+ hash_murmur2(10, 5432)
+ -5817877081768721676
+
+
- int(x)
- integer
- convertit en entier
- int(5.4 + 3.8)
- 9
+
+ int ( number )
+ integer
+
+
+ Casts to integer.
+
+
+ int(5.4 + 3.8)
+ 9
+
+
- least(a [, ... ] )
- double si a est double, sinon entier
- plus petite valeur parmi les arguments
- least(5, 4, 3, 2.1)
- 2.1
+
+ least ( number, ... )
+ double if any argument is double, else integer
+
+
+ Selects the smallest value among the arguments.
+
+
+ least(5, 4, 3, 2.1)
+ 2.1
+
+
- ln(x)
- double
- logarithme naturel
- ln(2.718281828459045)
- 1.0
+
+ ln ( number )
+ double
+
+
+ Natural logarithm
+
+
+ ln(2.718281828459045)
+ 1.0
+
+
- mod(i, j)
- integer
- modulo
- mod(54, 32)
- 22
+
+mod ( integer, integer )
+ integer
+
+
+ Modulo (remainder)
+
+
+ mod(54, 32)
+ 22
+
+
- pi()
- double
- constante PI
- pi()
- 3.14159265358979323846
+
+ pi ()
+ double
+
+
+ Approximate value of π
+
+
+ pi()
+ 3.14159265358979323846
+
+
- pow(x, y), power(x, y)
- double
- exponentielle
- pow(2.0, 10), power(2.0, 10)
- 1024.0
+
+ pow ( x, y )
+ double
+
+
+ power ( x, y )
+ double
+
+
+ x raised to the power of y
+
+
+ pow(2.0, 10)
+ 1024.0
+
+
- random(lb, ub)
- integer
- entier aléatoire uniformément distribué dans [lb, ub]
- random(1, 10)
- un entier entre 1 et 10
+
+ random ( lb, ub )
+ integer
+
+
+ Computes a uniformly-distributed random integer in [lb,
+ ub].
+
+
+ random(1, 10)
+ an integer between 1 and 10
+
+
- random_exponential(lb, ub, parameter)
- integer
- entier aléatoire distribué exponentiellement dans [lb, ub],
- voir plus bas
- random_exponential(1, 10, 3.0)
- un entier entre 1 et 10
+
+ random_exponential ( lb, ub, parameter )
+ integer
+
+
+ Computes an exponentially-distributed random integer in [lb,
+ ub], see below.
+
+
+ random_exponential(1, 10, 3.0)
+ an integer between 1 and 10
+
+
- random_gaussian(lb, ub, parameter)
- integer
- entier aléatoire distribué de façon gaussienne dans [lb, ub],
- voir plus bas
- random_gaussian(1, 10, 2.5)
- un entier entre 1 et 10
+
+ random_gaussian ( lb, ub, parameter )
+ integer
+
+
+ Computes a gaussian-distributed random integer in [lb,
+ ub], see below.
+
+
+ random_gaussian(1, 10, 2.5)
+ an integer between 1 and 10
+
+
- random_zipfian (lb, ub, parameter)
- integer
- entier aléatoire distribué selon la loi de Zipf dans [lb, ub],
- voir plus bas
- random_zipfian(1, 10, 1.5)
- un entier entre 1 et 10
+
+ random_zipfian ( lb, ub, parameter )
+ integer
+
+
+ Computes a Zipfian-distributed random integer in [lb,
+ ub], see below.
+
+
+ random_zipfian(1, 10, 1.5)
+ an integer between 1 and 10
+
+
- sqrt(x)
- double
- racine carrée
- sqrt(2.0)
- 1.414213562
+
+ sqrt ( number )
+ double
+
+
+ Square root
+
+
+ sqrt(2.0)
+ 1.414213562
+
-
+
@@ -1906,7 +2326,7 @@ f(x) = PHI(2.0 * parameter * (x - mu) / (max - min + 1)) /
journaux utilisent un format quelque peu différent :
-début_intervallenombre_de_transationssomme_latencesomme_latence_2latence_minimumlatence_maximumsomme_retardsomme_retard_2retard_minretard_maxtransactions_ignorées
+début_intervallenombre_de_transations&zwsp; somme_latencesomme_latence_2latence_minimumlatence_maximum&zwsp; somme_retardsomme_retard_2retard_minretard_maxtransactions_ignorées
où début_intervalle est le début de
diff --git a/postgresql/ref/pgupgrade.xml b/postgresql/ref/pgupgrade.xml
index e5be38044..ef6cdb217 100644
--- a/postgresql/ref/pgupgrade.xml
+++ b/postgresql/ref/pgupgrade.xml
@@ -97,6 +97,7 @@
repertoire_executablesrepertoire_executablesle nouveau répertoire des exécutables PostgreSQL ;
+ default is the directory where pg_upgrade resides;
variable d'environnement PGBINNEW
@@ -855,9 +856,17 @@ psql --username=postgres --file=script.sql postgres
pg_upgrade ne supporte pas la mise à jour de
bases de données contenant des colonnes de table utilisant les types de
données systèmes référençant les OID, nommés reg* :
- regproc, regprocedure, regoper,
- regoperator, regconfig et
- regdictionary. (regtype peut être mis à jour.)
+
+ regcollation
+ regconfig
+ regdictionary
+ regnamespace
+ regoper
+ regoperator
+ regproc
+ regprocedure
+
+ (regclass, regrole, and regtype can be upgraded.)
diff --git a/postgresql/ref/postgres-ref.xml b/postgresql/ref/postgres-ref.xml
index aa629aff7..8ef8c4665 100644
--- a/postgresql/ref/postgres-ref.xml
+++ b/postgresql/ref/postgres-ref.xml
@@ -536,8 +536,7 @@
Les options suivantes s'appliquent uniquement en mode mono-utilisateur
- (voir ).
+ (voir ci-dessous).
@@ -759,8 +758,8 @@
-
- Mode simple utilisateur
+
+ Mode simple utilisateur
Pour démarrer un serveur en mode mono-utilisateur, utilisez une commande
diff --git a/postgresql/ref/postmaster.xml b/postgresql/ref/postmaster.xml
index 9f77ff424..b1875abe7 100644
--- a/postgresql/ref/postmaster.xml
+++ b/postgresql/ref/postmaster.xml
@@ -16,7 +16,7 @@
- postmaster
+ postmasterServeur de bases de données PostgreSQL
diff --git a/postgresql/ref/prepare.xml b/postgresql/ref/prepare.xml
index d1986696d..e431292ad 100644
--- a/postgresql/ref/prepare.xml
+++ b/postgresql/ref/prepare.xml
@@ -215,8 +215,8 @@ EXPLAIN EXECUTE nom(valeurs_parametres
-
- Exemples
+
+ Exemples
Crée une instruction préparée pour une instruction INSERT,
puis l'exécute :
diff --git a/postgresql/ref/prepare_transaction.xml b/postgresql/ref/prepare_transaction.xml
index 95446e696..6f56d5045 100644
--- a/postgresql/ref/prepare_transaction.xml
+++ b/postgresql/ref/prepare_transaction.xml
@@ -153,7 +153,7 @@
- Exemples
+ Exemples
Préparer la transaction en cours pour une validation en deux phases en
utilisant foobar comme identifiant de transaction :
diff --git a/postgresql/ref/psql-ref.xml b/postgresql/ref/psql-ref.xml
index 7cc928b1b..d8f2a1b86 100644
--- a/postgresql/ref/psql-ref.xml
+++ b/postgresql/ref/psql-ref.xml
@@ -857,7 +857,7 @@ basetest=>
Si un deux-points sans guillemets (:) suivi d'un nom
de variable psql apparaît dans un argument,
il est remplacé par la valeur de la variable, comme décrit dans .
+ linkend="app-psql-interpolation"/>.
Les formes :'variable_name' et
:"variable_name" décrites ici
fonctionnent également. La syntaxe
@@ -1223,7 +1223,7 @@ basetest=>
et déclencheurs associés sont aussi affichés. Pour les tables distantes,
le serveur distant associé est aussi affiché. (Ce qui
correspond au motif est défini dans
-
+
ci-dessous.)
@@ -1294,6 +1294,97 @@ basetest=>
+
+
+ \dAc[+]
+ [access-method-pattern
+ [input-type-pattern]]
+
+
+
+
+ Lists operator classes
+ (see ).
+ If access-method-pattern
+ is specified, only operator classes associated with access methods whose
+ names match the pattern are listed.
+ If input-type-pattern
+ is specified, only operator classes associated with input types whose
+ names match the pattern are listed.
+ If + is appended to the command name, each operator
+ class is listed with its associated operator family and owner.
+
+
+
+
+
+
+ \dAf[+]
+ [access-method-pattern
+ [input-type-pattern]]
+
+
+
+
+ Lists operator families
+ (see ).
+ If access-method-pattern
+ is specified, only operator families associated with access methods whose
+ names match the pattern are listed.
+ If input-type-pattern
+ is specified, only operator families associated with input types whose
+ names match the pattern are listed.
+ If + is appended to the command name, each operator
+ family is listed with its owner.
+
+
+
+
+
+
+ \dAo[+]
+ [access-method-pattern
+ [operator-family-pattern]]
+
+
+
+
+
+ Lists operators associated with operator families
+ ().
+ If access-method-pattern
+ is specified, only members of operator families associated with access
+ methods whose names match the pattern are listed.
+ If input-type-pattern
+ is specified, only members of operator families whose names match the
+ pattern are listed.
+ If + is appended to the command name, each operator
+ is listed with its strategy number, purpose and sort operator family.
+
+
+
+
+
+
+ \dAp[+]
+ [access-method-pattern
+ [operator-family-pattern]]
+
+
+
+
+ Lists procedures associated with operator families
+ ().
+ If access-method-pattern
+ is specified, only members of operator families associated with access
+ methods whose names match the pattern are listed.
+ If input-type-pattern
+ is specified, only members of operator families whose names match the
+ pattern are listed.
+
+
+
+
\db[+] [ motif ]
@@ -1428,10 +1519,11 @@ basetest=>
séquence, table et vue.
Vous pouvez indiquer n'importe quelle combinaison de ces lettres, dans
n'importe quel ordre, pour obtenir la liste de tous les objets
- de ces types. Par exemple, \dit liste les index et
- tables. Si + est ajouté à la fin de la commande, chaque
- objet est listé avec sa taille physique sur disque et sa description
- associée s'il y en a une.
+ de ces types. Par exemple, \dti liste les index et
+ tables. Si + est ajouté à la fin de la commande,
+ chaque objet est listé avec son statut de persistence (permanent,
+ temporaire, non journalisé), sa taille physique sur disque et sa
+ description associée s'il y en a une.
Si motif est spécifié,
seuls les objets dont les noms correspondent au motif sont listés.
Par défaut, seuls les objets créés par les utilisateurs sont affichés ;
@@ -1901,8 +1993,9 @@ basetest=>
habituelles de psql, où le tampon complet est
traité comme une seule ligne. Toute requête complète est exécutée
immédiatemment ; c'est-à-dire que si le tampon de requête contient ou se
- termine par un point-virgule, tout ce qui précède est exécuté. Tout ce
- qui reste attendra dans le tampon de requête ; en tapant point-virgule
+ termine par un point-virgule, tout ce qui précède est exécuté and removed from
+ the query buffer. Whatever remains in the query buffer is
+ redisplayed. En tapant point-virgule
ou \g, le contenu sera envoyé, tandis que
\r annulera en effaçant le tampon de requête.
Traiter le buffer comme une ligne unique affecte principalement les
@@ -1922,9 +2015,8 @@ basetest=>
- Voir dans comment configurer
- et personnaliser votre éditeur.
+ Voir dans , ci-dessous, comment
+ configurer et personnaliser votre éditeur.
@@ -1936,14 +2028,14 @@ basetest=>
class="parameter">texte [ ... ]
- Affiche les arguments sur la sortie standard, séparés par un espace et
- suivis par une nouvelle ligne. Ceci peut être utile pour intégrer des
- informations sur la sortie des scripts. Par exemple :
+ Affiche les arguments évalués sur la sortie standard, séparés par des
+ espaces et suivis par une nouvelle ligne. Ceci peut être utile pour
+ intégrer des informations sur la sortie des scripts. Par exemple :
=> \echo `date`
Tue Oct 26 21:40:57 CEST 1999
Si le premier argument est -n sans guillemets,
- alors la fin de ligne n'est pas écrite.
+ alors la fin de ligne n'est pas écrite (nor is the first argument).
@@ -1951,6 +2043,7 @@ Tue Oct 26 21:40:57 CEST 1999
Si vous utilisez la commande \o pour rediriger la
sortie de la requête, vous pouvez aussi utiliser
\qecho au lieu de cette commande.
+ See also \warn.
@@ -1966,8 +2059,8 @@ Tue Oct 26 21:40:57 CEST 1999
désignée sous la forme d'une commande CREATE OR REPLACE
FUNCTION ou CREATE OR REPLACE PROCEDURE.
L'édition est faite de la même façon que pour \edit.
- Une fois l'éditeur fermé, la commande mise à jour attend
- dans le tampon de requête ; tapez ; ou
+ Une fois l'éditeur fermé, la commande mise à jour is executed immediately
+ if you added a semicolon to it. Otherwise it is redisplayed ; tapez ; ou
\g pour l'envoyer, ou \r pour
l'annuler.
@@ -2002,9 +2095,8 @@ Tue Oct 26 21:40:57 CEST 1999
- Voir dans la façon de configurer
- et personnaliser votre éditeur.
+ Voir dans , ci-dessous, la façon
+ de configurer et personnaliser votre éditeur.
@@ -2046,7 +2138,8 @@ Tue Oct 26 21:40:57 CEST 1999
la forme d'une commande CREATE OR REPLACE VIEW.
L'édition se termine de la même façon que pour
\edit. Après avoir quitté l'éditeur, la commande
- mise à jour attend dans le tampon de requête ; saisir un point-
+ mise à jour is executed immediately
+ if you added a semicolon to it. Otherwise it is redisplayed ; saisir un point-
virgule ou \g pour l'envoyer, ou
\r pour annuler.
@@ -2088,40 +2181,63 @@ Tue Oct 26 21:40:57 CEST 1999
- \g [ nomfichier ]
- \g [ |commande ]
+ \g [ (option=value [...]) ] [ filename ]
+ \g [ (option=value [...]) ] [ |command ]
- Envoie le tampon de requête en entrée vers le serveur et stocke en
- option la sortie de la requête dans
- nomfichier
- ou envoie dans un tube (pipe)
- la sortie vers un autre shell exécutant
- commande au lieu de
- l'exécuter comme habituellement. Le fichier ou la commande
- n'est écrit que si la requête renvoit zéro ou plus
- enregistrements, mais pas si la requête échoue ou s'il s'agit d'une
- commande SQL ne renvoyant pas de données.
-
-
- Si le tampon de la requête est vide, la dernière requête envoyée est
- ré-exécutée à la place. En dehors de cette exception, \g
- sans argument est essentiellement équivalent à un point-virgule.
- Un \g avec argument est une alternative ponctuelle
- à la commande \o.
+ Envoie le tampon de requête en entrée vers le serveur pour exécution.
+
+
+
+ If parentheses appear after \g, they surround a
+ space-separated list of option=value formatting-option clauses, which
+ are interpreted in the same way as \pset
+ optionvalue commands, but take effect only
+ for the duration of this query. In this list, spaces are not allowed
+ around = signs, but are required between option
+ clauses. If =value is omitted, the named
+ option is changed in the
+ same way as for \psetoption with no explicit value. If a
+ filename or
+ |command argument is given, la commande
+ stocke en option la sortie de la requête dans nomfichier ou envoie dans un tube
+ (pipe) la sortie vers un autre shell
+ exécutant commande au
+ lieu de l'exécuter comme habituellement. Le fichier ou la commande
+ n'est écrit que si la requête renvoit zéro ou plus enregistrements,
+ mais pas si la requête échoue ou s'il s'agit d'une commande SQL ne
+ renvoyant pas de données.
+
+
+
+ Si le tampon de la requête est vide, la dernière requête envoyée est
+ ré-exécutée à la place. En dehors de cette exception,
+ \g sans argument est essentiellement équivalent à
+ un point-virgule. With arguments, \g provides a
+ one-shot alternative to the \o
+ command, and additionally allows one-shot adjustments of the output
+ formatting options normally set by \pset.
+
+
+
+ Quand le dernier argument débute par |, alors
+ l'intégralité du reste de la ligne est pris en tant que commande à exécuter et ni
+ l'interpolation des variables ni la substitution par guillemets
+ inverses n'y sont effectuées. Le reste de la ligne est simplement
+ passé littéralement au shell.
-
- Si l'argument débute par |, alors l'intégralité du
- reste de la ligne est pris en tant que
- commande à exécuter
- et ni l'interpolation des variables ni la substitution par guillemets
- inverses n'y sont effectuées. Le reste de la ligne est simplement
- passé littéralement au shell.
-
-
-
-
+
+ \gdesc
@@ -2197,7 +2313,7 @@ CREATE INDEX
Envoie la requête courante du tampon au serveur et stocke le résultat
de la requête dans des variables psql (voir
- ).
+ ci-dessous).
La requête à exécuter doit renvoyer exactement une ligne. Chaque colonne
de la ligne est enregistrée dans une variable séparée, nommée de la même
façon que la colonne. Par exemple :
@@ -2236,12 +2352,14 @@ bonjour 10
- \gx [ filename ]
- \gx [ |command ]
+ \gx [ (option=value [...]) ] [ filename ]
+ \gx [ (option=value [...]) ] [ |command ]
- \gx est équivalent à \g, mais
- force l'affichage étendu pour cette requête. Voir \x.
+ \gx est équivalent à \g, except
+ that it forces expanded output mode for this query, as
+ if expanded=on were included in the list of
+ \pset options. See also \x.
@@ -3074,8 +3192,7 @@ lo_import 152801
Des exemples d'utilisation de ces différents formats sont
- disponibles dans la section .
+ disponibles dans la section .
@@ -3167,17 +3284,16 @@ lo_import 152801
Les noms de variables valides peuvent contenir des lettres, chiffres
- et tirets bas (_). Voir la section ci-dessous pour les détails. Les noms
- des variables sont sensibles à la casse.
+ et tirets bas (_). Voir la section
+ ci-dessous pour les détails. Les noms des variables sont sensibles à la
+ casse.
Certaines variables sont spéciales, dans le sens qu'elles contrôlent le
- comportement de psql ou qu'elles sont mises
- à jour pour refléter l'état de la connexion. Ces variables sont
- documentées plus bas dans .
+ comportement de psql ou qu'elles sont mises
+ à jour pour refléter l'état de la connexion. Ces variables sont
+ documentées plus bas dans .
@@ -3318,14 +3434,13 @@ testdb=> \setenv LESS -imx4Fnom.
-
- La plupart des variables qui contrôlent le comportement de
- psql ne peuvent pas être désinitialisées ;
- la commande \unset est interprétée comme les
- remettant à leur valeur par défaut.
- Voir
- plus bas.
-
+
+ La plupart des variables qui contrôlent le comportement de
+ psql ne peuvent pas être
+ désinitialisées ; la commande \unset est
+ interprétée comme les remettant à leur valeur par défaut. Voir plus bas.
+
@@ -3354,6 +3469,17 @@ testdb=> \setenv LESS -imx4F
+
+ \warn text [ ... ]
+
+
+ This command is identical to \echo except
+ that the output will be written to psql's
+ standard error channel, rather than standard output.
+
+
+
+
\watch [ seconds ]
@@ -3490,8 +3616,8 @@ select 1\; select 2\; select 3;
-
- motifs
+
+ Motifsmotifs
@@ -3585,8 +3711,8 @@ select 1\; select 2\; select 3;
Fonctionnalités avancées
-
- Variables
+
+ Variablespsql fournit des fonctionnalités de substitution
@@ -3609,8 +3735,7 @@ select 1\; select 2\; select 3;
bar
Ceci fonctionne avec les commandes SQL et les métacommandes standards. Il
- y a plus de détails dans , ci-dessous.
+ y a plus de détails dans , ci-dessous.
@@ -4034,7 +4159,7 @@ bar
Ils spécifient à quoi doit ressembler l'invite
psql. Voir
+ linkend="app-psql-prompting"/>
ci-dessous.
@@ -4177,8 +4302,8 @@ bar
-
- Interpolation SQL
+
+ Interpolation SQL
Une fonctionnalité clé des variables psql est
@@ -4261,8 +4386,8 @@ basetest=> INSERT INTO ma_table VALUES (:'contenu');
-
- Invite
+
+ Invite
Les invites psql peuvent être personnalisées
@@ -4426,8 +4551,7 @@ basetest=> INSERT INTO ma_table VALUES (:'contenu');
La valeur de la variable nom de psql.
- Voir la section pour les détails.
+ Voir la section pour les détails.
@@ -4466,11 +4590,23 @@ basetest=> INSERT INTO ma_table VALUES (:'contenu');
+
+ %w
+
+
+ Whitespace of the same width as the most recent output of
+ PROMPT1. This can be used as a
+ PROMPT2 setting, so that multi-line statements are
+ aligned with the first line, but there is no visible secondary prompt.
+
+
+
+
Pour insérer un pourcentage dans votre invite, écrivez
%%. Les invites par défaut sont
- '%/%R%# ' pour les invites 1 et 2 et
+ '%/%R%x%# ' pour les invites 1 et 2 et
'>> ' pour l'invite 3.
@@ -4513,8 +4649,8 @@ $endif
-
- Environnement
+
+ Environnement
@@ -4827,8 +4963,8 @@ PSQL_EDITOR_LINENUMBER_ARG='--line '
-
- Exemples
+
+ Exemples
Le premier exemple montre comment envoyer une commande sur plusieurs lignes
@@ -4932,7 +5068,28 @@ second | quatre
-
+
+ Also, these output format options can be set for just one query by using
+ \g:
+
+pierre@localhost basetest=> SELECT * FROM my_table
+pierre@localhost basetest-> \g (format=aligned tuples_only=off expanded=on)
+-[ RECORD 1 ]-
+first | 1
+second | one
+-[ RECORD 2 ]-
+first | 2
+second | two
+-[ RECORD 3 ]-
+first | 3
+second | three
+-[ RECORD 4 ]-
+first | 4
+second | four
+
+
+
+
En cas de besoin, les résultats de la requête peuvent être affichés dans une
représentation croisée avec la commande \crosstabview :
diff --git a/postgresql/ref/reindex.xml b/postgresql/ref/reindex.xml
index 637378792..08f1af615 100644
--- a/postgresql/ref/reindex.xml
+++ b/postgresql/ref/reindex.xml
@@ -21,7 +21,12 @@
- REINDEX [ ( VERBOSE ) ] { INDEX | TABLE | SCHEMA | DATABASE | SYSTEM } [ CONCURRENTLY ] nom
+ REINDEX [ ( option [, ...] ) ] { INDEX | TABLE | SCHEMA | DATABASE | SYSTEM } [ CONCURRENTLY ] name
+
+where option can be one of:
+
+ VERBOSE
+
@@ -163,8 +168,7 @@
alors qu'une réindexation standard empêche les écritures (mais pas les
lectures) sur la table jusqu'à ce qu'elle soit terminée. Certaines mises
en garde sont à prendre en compte lors de l'utilisation de cette option
- — voir .
+ — voir .
Pour les tables temporaires, REINDEX est toujours non
@@ -267,8 +271,8 @@
séparément.
-
- Reconstruire des index en parallèle
+
+ Reconstruire des index en parallèleindex
diff --git a/postgresql/ref/reindexdb.xml b/postgresql/ref/reindexdb.xml
index 7b3ccc47f..80a4d241a 100644
--- a/postgresql/ref/reindexdb.xml
+++ b/postgresql/ref/reindexdb.xml
@@ -17,7 +17,7 @@
- reindexdb
+ reindexdbreindexe une base de données
PostgreSQL
@@ -170,6 +170,29 @@
+
+
+
+
+
+ Execute the reindex commands in parallel by running
+ njobs
+ commands simultaneously. This option reduces the time of the
+ processing but it also increases the load on the database server.
+
+
+ reindexdb will open
+ njobs connections to the
+ database, so make sure your
+ setting is high enough to accommodate all connections.
+
+
+ Note that this option is incompatible with the
+ and options.
+
+
+
+
diff --git a/postgresql/ref/rollback_prepared.xml b/postgresql/ref/rollback_prepared.xml
index e9f538831..428c18785 100644
--- a/postgresql/ref/rollback_prepared.xml
+++ b/postgresql/ref/rollback_prepared.xml
@@ -71,8 +71,8 @@
-
- Exemples
+
+ Exemples
Annuler la transaction identifiée par foobar :
diff --git a/postgresql/ref/select.xml b/postgresql/ref/select.xml
index 2678f368e..fcb23785b 100644
--- a/postgresql/ref/select.xml
+++ b/postgresql/ref/select.xml
@@ -45,7 +45,7 @@ SELECT [ ALL | DISTINCT [ ON ( expressionexpression [ ASC | DESC | USING opérateur ] [ NULLS { FIRST | LAST } ] [, ...] ]
[ LIMIT { nombre | ALL } ]
[ OFFSET début ] [ ROW | ROWS ] ]
- [ FETCH { FIRST | NEXT } [ total ] { ROW | ROWS } ONLY ]
+ [ FETCH { FIRST | NEXT } [ total ] { ROW | ROWS } { ONLY | WITH TIES } ]
[ FOR { UPDATE | NO KEY UPDATE | SHARE | KEY SHARE } [ OF nom_table [, ...] ] [ NOWAIT | SKIP LOCKED ] [...] ]
avec éléments_from qui peut être :
@@ -149,31 +149,29 @@ TABLE [ ONLY ] nom_table [ * ]
SELECT DISTINCT ON élimine les lignes qui correspondent sur toute l'expression spécifiée.
SELECT ALL
(l'option par défaut) retourne toutes les lignes, y compris les doublons.
- (cf. ci-dessous.)
+ (cf. ci-dessous.)
En utilisant les opérateurs UNION,
- INTERSECT et EXCEPT, l'affichage de
- plusieurs instructions SELECT peut être combiné pour
- former un ensemble unique de résultats. L'opérateur UNION
- renvoie toutes les lignes qui appartiennent, au moins, à l'un des ensembles de
- résultats. L'opérateur INTERSECT renvoie toutes les
- lignes qui sont dans tous les ensembles de résultats.
- L'opérateur EXCEPT renvoie les lignes qui sont
- présentes dans le premier ensemble de résultats mais pas dans le
- deuxième. Dans les trois cas, les lignes dupliquées sont éliminées sauf
- si ALL est spécifié. Le mot-clé supplémentaire
- DISTINCT peut être ajouté pour signifier explicitement que
- les lignes en doublon sont éliminées. Notez bien que DISTINCT est
- là le comportement par défaut, bien que ALL soit
- le défaut pour la commande SELECT. (Voir , et ci-dessous.)
+ INTERSECT et EXCEPT, l'affichage
+ de plusieurs instructions SELECT peut être combiné
+ pour former un ensemble unique de résultats. L'opérateur
+ UNION renvoie toutes les lignes qui appartiennent, au
+ moins, à l'un des ensembles de résultats. L'opérateur
+ INTERSECT renvoie toutes les lignes qui sont dans
+ tous les ensembles de résultats. L'opérateur EXCEPT
+ renvoie les lignes qui sont présentes dans le premier ensemble de
+ résultats mais pas dans le deuxième. Dans les trois cas, les lignes
+ dupliquées sont éliminées sauf si ALL est spécifié.
+ Le mot-clé supplémentaire DISTINCT peut être ajouté
+ pour signifier explicitement que les lignes en doublon sont éliminées.
+ Notez bien que DISTINCT est là le comportement par
+ défaut, bien que ALL soit le défaut pour la commande
+ SELECT. (Voir , et ci-dessous.)
@@ -224,8 +222,8 @@ TABLE [ ONLY ] nom_table [ * ]
Paramètres
-
- Clause WITH
+
+ Clause WITH
La clause WITH vous permet de spécifier une ou plusieurs
@@ -344,8 +342,8 @@ TABLE [ ONLY ] nom_table [ * ]
-
- Clause FROM
+
+ Clause FROM
La clause FROM spécifie une ou plusieurs tables source
@@ -733,8 +731,8 @@ TABLE [ ONLY ] nom_table [ * ]
-
- Clause WHERE
+
+ Clause WHERE
La clause WHERE optionnelle a la forme générale
@@ -748,8 +746,8 @@ TABLE [ ONLY ] nom_table [ * ]
-
- Clause GROUP BY
+
+ Clause GROUP BY
La clause GROUP BY optionnelle a la forme générale
@@ -823,8 +821,8 @@ TABLE [ ONLY ] nom_table [ * ]
-
- Clause HAVING
+
+ Clause HAVING
La clause optionnelle HAVING a la forme générale
@@ -867,8 +865,8 @@ TABLE [ ONLY ] nom_table [ * ]
-
- Clause WINDOW
+
+ Clause WINDOW
La clause optionnelle WINDOW a la forme générale
@@ -902,21 +900,22 @@ WINDOW nom_window AS (
Les éléments de la liste PARTITION BY sont interprétés
- à peu près de la même façon que des éléments de , sauf qu'ils sont toujours des expressions
- simples et jamais le nom ou le numéro d'une colonne en sortie.
- Une autre différence est que ces expressions peuvent contenir des appels
- à des fonctions d' agrégat, ce qui n'est pas autorisé dans une clause
- GROUP BY classique. Ceci est autorisé ici parce que
- le windowing se produit après le regroupement et l' agrégation.
+ à peu près de la même façon que des éléments d'une clause GROUP BY, sauf qu'ils sont
+ toujours des expressions simples et jamais le nom ou le numéro d'une
+ colonne en sortie. Une autre différence est que ces expressions peuvent
+ contenir des appels à des fonctions d' agrégat, ce qui n'est pas autorisé
+ dans une clause GROUP BY classique. Ceci est autorisé
+ ici parce que le windowing se produit après le regroupement et l'
+ agrégation.
De façon similaire, les éléments de la liste ORDER BY
- sont interprétés à peu près de la même façon que les éléments d'un , sauf que les expressions
- sont toujours prises comme de simples expressions et jamais comme le nom ou
- le numéro d'une colonne en sortie.
+ sont interprétés à peu près de la même façon que les éléments d'un ORDER BY, sauf que les
+ expressions sont toujours prises comme de simples expressions et jamais
+ comme le nom ou le numéro d'une colonne en sortie.
@@ -1037,9 +1036,9 @@ EXCLUDE NO OTHERS
L'utilité d'une clause WINDOW est de spécifier le
comportement des fonctions window apparaissant dans
- la clause
- ou la clause de
- la requête. Ces fonctions peuvent référencer les entrées de clauses
+ la clause SELECT
+ ou la clause ORDER BY
+ de la requête. Ces fonctions peuvent référencer les entrées de clauses
WINDOW par nom dans leurs clauses OVER.
Toutefois, il n'est pas obligatoire qu'une entrée de clause
WINDOW soit référencée quelque part ; si elle n'est
@@ -1066,8 +1065,8 @@ EXCLUDE NO OTHERS
-
- Liste SELECT
+
+ Liste SELECT
La liste SELECT (entre les mots clés
@@ -1155,8 +1154,8 @@ EXCLUDE NO OTHERS
-
- DISTINCT Clause
+
+ Clause DISTINCT
Si SELECT DISTINCT est spécifié, toutes les lignes en double sont
@@ -1198,8 +1197,8 @@ SELECT DISTINCT ON (lieu) lieu, heure, rapport
-
- Clause UNION
+
+ Clause UNION
La clause UNION a la forme générale :
@@ -1248,8 +1247,8 @@ SELECT DISTINCT ON (lieu) lieu, heure, rapport
-
- Clause INTERSECT
+
+ Clause INTERSECT
La clause INTERSECT a la forme générale :
@@ -1297,8 +1296,8 @@ SELECT DISTINCT ON (lieu) lieu, heure, rapport
-
- Clause EXCEPT
+
+ Clause EXCEPT
La clause EXCEPT a la forme générale :
@@ -1344,8 +1343,8 @@ SELECT DISTINCT ON (lieu) lieu, heure, rapport
-
- Clause ORDER BY
+
+ Clause ORDER BY
La clause optionnelle ORDER BY a la forme
@@ -1442,8 +1441,8 @@ SELECT DISTINCT ON (lieu) lieu, heure, rapport
-
- Clause LIMIT
+
+ Clause LIMIT
La clause LIMIT est constituée de deux sous-clauses
@@ -1472,7 +1471,7 @@ OFFSET débutPostgreSQL supporte aussi cette syntaxe.
OFFSET début { ROW | ROWS }
-FETCH { FIRST | NEXT } [ compte ] { ROW | ROWS } ONLY
+FETCH { FIRST | NEXT } [ compte ] { ROW | ROWS } { ONLY | WITH TIES }
Avec cette syntaxe, le standard SQL exige que la valeur de start ou compte ] {
devront généralement être entre parenthèses pour éviter toute ambiguïté.
Si compte est omis dans une clause
FETCH, il vaut 1 par défaut.
+ The WITH TIES option is used to return any additional
+ rows that tie for the last place in the result set according to
+ the ORDER BY clause; ORDER BY
+ is mandatory in this case.
ROW et ROWS ainsi que FIRST
et NEXT sont des mots qui n'influencent pas les
effets de ces clauses.
@@ -1522,8 +1525,8 @@ FETCH { FIRST | NEXT } [ compte ] {
-
- Clause de verrouillage
+
+ Clause de verrouillageFOR UPDATE, FOR NO KEY UPDATE,
diff --git a/postgresql/ref/update.xml b/postgresql/ref/update.xml
index ef53f126d..39c6040f5 100644
--- a/postgresql/ref/update.xml
+++ b/postgresql/ref/update.xml
@@ -146,7 +146,10 @@ UPDATE [ ONLY ] nom_table [ * ] [ [
Réinitialise la colonne à sa valeur par défaut (qui vaut NULL si aucune
- expression par défaut ne lui a été affectée).
+ expression par défaut ne lui a été affectée). An identity column will be
+ set to a new value generated by the associated sequence. For a
+ generated column, specifying this is permitted but merely specifies the
+ normal behavior of computing the column from its generation expression.
@@ -173,8 +176,8 @@ UPDATE [ ONLY ] nom_table [ * ] [ [
Une expression de table, qui permet aux colonnes des autres tables
d'apparaître dans la condition WHERE et dans les
- expressions de mise à jour. Cela utilise la même syntaxe que le d'une instruction
+ expressions de mise à jour. Cela utilise la même syntaxe que le FROM d'une instruction
SELECT ; par exemple, un alias peut être indiqué
pour le nom de la table. Ne répétez pas la table cible dans un
element_from, sauf si vous souhaitez faire un
diff --git a/postgresql/ref/vacuum.xml b/postgresql/ref/vacuum.xml
index 19c061ffb..b78499a6f 100644
--- a/postgresql/ref/vacuum.xml
+++ b/postgresql/ref/vacuum.xml
@@ -36,6 +36,7 @@ VACUUM [ FULL ] [ FREEZE ] [ VERBOSE ] [ ANALYZE ] [ boolean ]
INDEX_CLEANUP [ boolean ]
TRUNCATE [ boolean ]
+ PARALLEL integeret table_et_colonnes est :
@@ -81,11 +82,14 @@ VACUUM [ FULL ] [ FREEZE ] [ VERBOSE ] [ ANALYZE ] [
+
+ PARALLEL
+
+
+ Perform index vacuum and index cleanup phases of VACUUM
+ in parallel using integer
+ background workers (for the details of each vacuum phase, please
+ refer to ). In plain VACUUM
+ (without FULL), if the PARALLEL option
+ is omitted, then the number of workers is determined based on the number of
+ indexes on the relation that support parallel vacuum operation and is further
+ limited by . An index
+ can participate in parallel vacuum if and only if the size of the index is
+ more than . Please note
+ that it is not guaranteed that the number of parallel workers specified in
+ integer will be used during
+ execution. It is possible for a vacuum to run with fewer workers than
+ specified, or even with no workers at all. Only one worker can be used per
+ index. So parallel workers are launched only when there are at least
+ 2 indexes in the table. Workers for vacuum are launched
+ before the start of each phase and exit at the end of the phase. These
+ behaviors might change in a future release. This option can't be used with
+ the FULL option.
+
+
+
+
boolean
@@ -250,6 +281,15 @@ VACUUM [ FULL ] [ FREEZE ] [ VERBOSE ] [ ANALYZE ] [ integer
+
+
+ Specifies a non-negative integer value passed to the selected option.
+
+
+
+
nom_table
@@ -333,13 +373,21 @@ VACUUM [ FULL ] [ FREEZE ] [ VERBOSE ] [ ANALYZE ] [
+ vacuum basé sur le coût. For
+ parallel vacuum, each worker sleeps in proportion to the work done by that
+ worker. Voir
pour des informations supplémentaires.
diff --git a/postgresql/ref/vacuumdb.xml b/postgresql/ref/vacuumdb.xml
index bbdb93c67..f74aac9f0 100644
--- a/postgresql/ref/vacuumdb.xml
+++ b/postgresql/ref/vacuumdb.xml
@@ -17,7 +17,7 @@
- vacuumdb
+ vacuumdbrécupère l'espace inutilisé et, optionnellement, analyse une
base de données PostgreSQL
@@ -237,6 +237,24 @@
+
+
+
+
+
+ Specify the parallel degree of parallel vacuum.
+ This allows the vacuum to leverage multiple CPUs to process indexes.
+ See .
+
+
+
+ This option is only available for servers running
+ PostgreSQL 13 and later.
+
+
+
+
+
diff --git a/postgresql/ref/values.xml b/postgresql/ref/values.xml
index e48020f21..ade268b2d 100644
--- a/postgresql/ref/values.xml
+++ b/postgresql/ref/values.xml
@@ -89,7 +89,7 @@ VALUES ( expression [, ...] ) [, ..
résultat. Cette expression peut faire référence aux colonnes de
VALUES en tant que column1,
column2, etc. Pour plus de détails, voir
- .
+ in the documentation.
@@ -99,7 +99,7 @@ VALUES ( expression [, ...] ) [, ..
Un opérateur de tri. Pour plus de détails, voir
- .
+ in the documentation.
@@ -109,7 +109,7 @@ VALUES ( expression [, ...] ) [, ..
Le nombre maximum de lignes à renvoyer. Pour plus de détails, voir
- .
+ in the documentation.
@@ -120,7 +120,7 @@ VALUES ( expression [, ...] ) [, ..
Le nombre de lignes à échapper avant de commencer à renvoyer des lignes.
Pour plus de détails,
- .
+ in the documentation.
diff --git a/postgresql/reference.xml b/postgresql/reference.xml
index 55c11ff20..4b9238a0f 100644
--- a/postgresql/reference.xml
+++ b/postgresql/reference.xml
@@ -263,6 +263,7 @@
&pgReceivewal;
&pgRecvlogical;
&pgRestore;
+ &pgVerifyBackup;
&psqlRef;
&reindexdb;
&vacuumdb;
diff --git a/postgresql/regress.xml b/postgresql/regress.xml
index 26611e794..2072723cc 100644
--- a/postgresql/regress.xml
+++ b/postgresql/regress.xml
@@ -372,15 +372,6 @@ make check LANG=C ENCODING=EUC_JP
make check EXTRA_TESTS=numeric_big
- Pour exécuter les tests sur le collationnement :
-
-make check EXTRA_TESTS='collate.linux.utf8 collate.icu.utf8' LANG=en_US.utf8
-
- Le test collate.linux.utf8 fonctionne seulement sur
- les plateformes Linux/glibc. Le test collate.icu.utf8
- fonctionne seulement si le support pour ICU est présent. Les deux tests
- ne pourront réussir que s'ils sont effectués sur une base utilisant
- un encodage UTF-8.
diff --git a/postgresql/release-12.xml b/postgresql/release-12.xml
deleted file mode 100644
index d522c3939..000000000
--- a/postgresql/release-12.xml
+++ /dev/null
@@ -1,7965 +0,0 @@
-
-
-
-
-
- Release 12.3
-
-
- Release date:
- 2020-05-14
-
-
-
- This release contains a variety of fixes from 12.2.
- For information about new features in major release 12, see
- .
-
-
-
- Migration to Version 12.3
-
-
- A dump/restore is not required for those running 12.X.
-
-
-
- However, if you are upgrading from a version earlier than 12.2,
- see .
-
-
-
-
- Changes
-
-
-
-
-
-
- Fix possible failure with GENERATED columns
- (David Rowley)
-
-
-
- If a GENERATED column's value is an exact copy of
- another column of the table (and it is a pass-by-reference data
- type), it was possible to crash or insert corrupted data into the
- table. While it would be rather pointless for
- a GENERATED expression to just duplicate another
- column, an expression using a function that sometimes returns its
- input unchanged could create the situation.
-
-
-
-
-
-
- Handle inheritance of generated columns better (Peter Eisentraut)
-
-
-
- When a table column is inherited during CREATE TABLE
- ... INHERITS, disallow changing any generation properties
- when the parent column is already
- marked GENERATED; but allow a child column to be
- marked GENERATED when its parent is not.
-
-
-
-
-
-
- Fix cross-column references in CREATE TABLE LIKE INCLUDING
- GENERATED (Peter Eisentraut)
-
-
-
- CREATE TABLE ... LIKE failed when trying to copy
- a GENERATED expression that references a
- physically-later column.
-
-
-
-
-
-
- Propagate ALTER TABLE ... SET STORAGE to indexes
- (Peter Eisentraut)
-
-
-
- Non-expression index columns have always copied
- the attstorage property of their table
- column at creation. Update them when ALTER TABLE ... SET
- STORAGE is done, to maintain consistency.
-
-
-
-
-
-
- Preserve the indisclustered setting of
- indexes rewritten by ALTER TABLE (Amit Langote,
- Justin Pryzby)
-
-
-
- Previously, ALTER TABLE lost track of which index
- had been used for CLUSTER.
-
-
-
-
-
-
- Preserve the replica identity properties of indexes rewritten
- by ALTER TABLE (Quan Zongliang, Peter Eisentraut)
-
-
-
-
-
-
- Preserve the indisclustered setting of
- indexes rebuilt by REINDEX CONCURRENTLY
- (Justin Pryzby)
-
-
-
-
-
-
- Lock objects sooner during DROP OWNED BY
- (Álvaro Herrera)
-
-
-
- This avoids failures in race-condition cases where another session is
- deleting some of the same objects.
-
-
-
-
-
-
- Fix error-case processing for CREATE ROLE ... IN
- ROLE (Andrew Gierth)
-
-
-
- Some error cases would be reported as unexpected node
- type or the like, instead of the intended message.
-
-
-
-
-
-
- Ensure that when a partition is detached, any triggers cloned from
- its formerly-parent table are removed (Justin Pryzby)
-
-
-
-
-
-
- Fix crash when COLLATE is applied to a
- non-collatable type in a partition bound expression (Dmitry Dolgov)
-
-
-
-
-
-
- Ensure that unique indexes over partitioned tables match the
- equality semantics of the partitioning key (Guancheng Luo)
-
-
-
- This would only be an issue with index opclasses that have unusual
- notions of equality, but it's wrong in theory, so check.
-
-
-
-
-
-
- Ensure that members of the pg_read_all_stats role
- can read all statistics views, as expected (Magnus Hagander)
-
-
-
- The functions underlying
- the pg_stat_progress_* views had not gotten
- this memo.
-
-
-
-
-
-
- Repair performance regression in
- information_schema.triggers
- view (Tom Lane)
-
-
-
- This patch redefines that view so that an
- outer WHERE clause constraining the table name
- can be pushed down into the view, allowing its calculations to be
- done only for triggers belonging to the table of interest rather
- than all triggers in the database. In a database with many triggers
- this would make a significant speed difference for queries of that
- form. Since things worked that way before v11, this is a potential
- performance regression. Users who find this to be a problem can fix
- it by replacing the view definition (or, perhaps, just deleting and
- reinstalling the whole information_schema
- schema).
-
-
-
-
-
-
- Repair performance regression in floating point overflow/underflow
- detection (Emre Hasegeli)
-
-
-
- Previous refactoring had resulted in isinf()
- being called extra times in some hot code paths.
-
-
-
-
-
-
- Fix full text search to handle NOT above a phrase search correctly
- (Tom Lane)
-
-
-
- Queries such as !(foo<->bar) failed to find
- matching rows when implemented as a GiST or GIN index search.
-
-
-
-
-
-
- Fix full text search for cases where a phrase search includes an
- item with both prefix matching and a weight restriction (Tom Lane)
-
-
-
-
-
-
- Fix ts_headline() to make better headline
- selections when working with phrase queries (Tom Lane)
-
-
-
-
-
-
- Fix bugs in gin_fuzzy_search_limit processing
- (Adé Heyward, Tom Lane)
-
-
-
- A small value of gin_fuzzy_search_limit could
- result in unexpected slowness due to unintentionally rescanning the
- same index page many times. Another code path failed to apply the
- intended filtering at all, possibly returning too many values.
-
-
-
-
-
-
- Allow input of type circle to accept the format
- (x,y),r
- as the documentation says it does (David Zhang)
-
-
-
-
-
-
- Make the get_bit()
- and set_bit() functions cope
- with bytea strings longer than 256MB (Movead Li)
-
-
-
- Since the bit number argument is only int4, it's
- impossible to use these functions to access bits beyond the first
- 256MB of a long bytea. We'll widen the argument
- to int8 in v13, but in the meantime, allow these
- functions to work on the initial substring of a
- long bytea.
-
-
-
-
-
-
- Ignore file-not-found errors in pg_ls_waldir()
- and allied functions (Tom Lane)
-
-
-
- This prevents a race condition failure if a file is removed between
- when we see its directory entry and when we attempt
- to stat() it.
-
-
-
-
-
-
- Avoid possibly leaking an open-file descriptor for a directory
- in pg_ls_dir(),
- pg_timezone_names(),
- pg_tablespace_databases(), and allied functions
- (Justin Pryzby)
-
-
-
-
-
-
- Fix polymorphic-function type resolution to correctly infer the
- actual type of an anyarray output when given only
- an anyrange input (Tom Lane)
-
-
-
-
-
-
- Fix server's connection-startup logic for case where a GSSAPI
- connection is rejected because support is not compiled in, and the
- client then tries SSL instead (Andrew Gierth)
-
-
-
- This led to a bogus unsupported frontend protocol
- failure.
-
-
-
-
-
-
- Fix memory leakage during GSSAPI encryption (Tom Lane)
-
-
-
- Both the backend and libpq would leak memory equivalent to the total
- amount of data sent during the session, if GSSAPI encryption is in use.
-
-
-
-
-
-
- Fix query-lifespan memory leak for a set-returning function used in
- a query's FROM clause (Andres Freund)
-
-
-
-
-
-
- Avoid leakage of a hashed subplan's hash tables across multiple
- executions (Andreas Karlsson, Tom Lane)
-
-
-
- This mistake could result in severe memory bloat if a query
- re-executed a hashed subplan enough times.
-
-
-
-
-
-
- Improve planner's handling of no-op domain coercions (Tom Lane)
-
-
-
- Fix some cases where a domain coercion that does nothing was not
- completely removed from expressions.
-
-
-
-
-
-
- Avoid unlikely crash when REINDEX is terminated
- by a session-shutdown signal (Tom Lane)
-
-
-
-
-
-
- Prevent printout of possibly-incorrect hash join table statistics
- in EXPLAIN (Konstantin Knizhnik, Tom Lane, Thomas
- Munro)
-
-
-
-
-
-
- Fix reporting of elapsed time for heap truncation steps
- in VACUUM VERBOSE (Tatsuhito Kasahara)
-
-
-
-
-
-
- Fix possible undercounting of deleted B-tree index pages
- in VACUUM VERBOSE output (Peter Geoghegan)
-
-
-
-
-
-
- Fix wrong bookkeeping for oldest deleted page in a B-tree index
- (Peter Geoghegan)
-
-
-
- This could cause subtly wrong decisions about
- when VACUUM can skip an index cleanup scan;
- although it appears there may be no significant user-visible effects
- from that.
-
-
-
-
-
-
- Ensure that TimelineHistoryRead and TimelineHistoryWrite wait states
- are reported in all code paths that read or write timeline history
- files (Masahiro Ikeda)
-
-
-
-
-
-
- Avoid possibly showing waiting twice in a process's
- PS status (Masahiko Sawada)
-
-
-
-
-
-
- Avoid race condition when ANALYZE replaces the
- catalog tuple for extended statistics data (Dean Rasheed)
-
-
-
-
-
-
- Remove ill-considered skip of redundant
- anti-wraparound vacuums (Michael Paquier)
-
-
-
- This avoids a corner case where autovacuum could get into a loop of
- repeatedly trying and then skipping the same vacuum job.
-
-
-
-
-
-
- Ensure INCLUDE'd columns are always removed from B-tree pivot tuples
- (Peter Geoghegan)
-
-
-
- This mistake wasted space in some rare cases, but was otherwise
- harmless.
-
-
-
-
-
-
- Cope with invalid TOAST indexes that could be left over after a
- failed REINDEX CONCURRENTLY (Julien Rouhaud)
-
-
-
-
-
-
- Ensure that valid index dependencies are left behind after a
- failed REINDEX CONCURRENTLY (Michael Paquier)
-
-
-
- Previously the old index could be left with
- no pg_depend links at all, so that for
- example it would not get dropped if the parent table is dropped.
-
-
-
-
-
-
- Avoid failure if autovacuum tries to access a just-dropped temporary
- schema (Tom Lane)
-
-
-
- This hazard only arises if a superuser manually drops a temporary
- schema; which isn't normal practice, but should work.
-
-
-
-
-
-
- Avoid premature recycling of WAL segments during crash recovery
- (Jehan-Guillaume de Rorthais)
-
-
-
- WAL segments that become ready to be archived during crash recovery
- were potentially recycled without being archived.
-
-
-
-
-
-
- Avoid scanning irrelevant timelines during archive recovery (Kyotaro
- Horiguchi)
-
-
-
- This can eliminate many attempts to fetch non-existent WAL files from
- archive storage, which is helpful if archive access is slow.
-
-
-
-
-
-
- Remove bogus subtransaction logged without previous top-level
- txn record error check in logical decoding (Arseny Sher,
- Amit Kapila)
-
-
-
- This condition is legitimately reachable in various scenarios, so
- remove the check.
-
-
-
-
-
-
- Avoid possible failure after a replication slot copy, due to
- premature removal of WAL data (Masahiko Sawada, Arseny Sher)
-
-
-
-
-
-
- Ensure that a replication
- slot's io_in_progress_lock is released in failure
- code paths (Pavan Deolasee)
-
-
-
- This could result in a walsender later becoming stuck waiting for
- the lock.
-
-
-
-
-
-
- Ensure that generated columns are correctly handled during updates
- issued by logical replication (Peter Eisentraut)
-
-
-
-
-
-
- Fix race conditions in synchronous standby management (Tom Lane)
-
-
-
- During a change in the synchronous_standby_names
- setting, there was a window in which wrong decisions could be made
- about whether it is OK to release transactions that are waiting for
- synchronous commit. Another hazard for similarly wrong decisions
- existed if a walsender process exited and was immediately replaced
- by another.
-
-
-
-
-
-
- Add missing SQLSTATE values to a few error reports (Sawada Masahiko)
-
-
-
-
-
-
- Fix PL/pgSQL to reliably refuse to execute an event trigger function
- as a plain function (Tom Lane)
-
-
-
-
-
-
- Fix memory leak in libpq when
- using sslmode=verify-full (Roman Peshkurov)
-
-
-
- Certificate verification during connection startup could leak some
- memory. This would become an issue if a client process opened many
- database connections during its lifetime.
-
-
-
-
-
-
- Fix ecpg to treat an argument of
- just - as meaning read
- from stdin on all platforms (Tom Lane)
-
-
-
-
-
-
- Fix crash in psql when attempting to
- re-establish a failed connection (Michael Paquier)
-
-
-
-
-
-
- Allow tab-completion of the filename argument
- to psql's \gx command
- (Vik Fearing)
-
-
-
-
-
-
- Add pg_dump support for ALTER
- ... DEPENDS ON EXTENSION (Álvaro Herrera)
-
-
-
- pg_dump previously ignored dependencies added
- this way, causing them to be forgotten during dump/restore or
- pg_upgrade.
-
-
-
-
-
-
- Fix pg_dump to dump comments on RLS
- policy objects (Tom Lane)
-
-
-
-
-
-
- In pg_dump, postpone restore of event
- triggers till the end (Fabrízio de Royes Mello, Hamid Akhtar,
- Tom Lane)
-
-
-
- This minimizes the risk that an event trigger could interfere with
- the restoration of other objects.
-
-
-
-
-
-
- Ensure that pg_basebackup generates valid
- tar files (Robert Haas)
-
-
-
- In some cases a partial block of zeroes would be added to the end of
- the file. While this seems to be harmless with common versions of
- tar, it's not OK per the POSIX file format spec.
-
-
-
-
-
-
- Make pg_checksums skip tablespace
- subdirectories that belong to a
- different PostgreSQL major version
- (Michael Banck, Bernd Helmle)
-
-
-
- Such subdirectories don't really belong to our database cluster, and
- so must not be processed.
-
-
-
-
-
-
- Ignore temporary copies of pg_internal.init
- in pg_checksums and related
- programs (Michael Paquier)
-
-
-
-
-
-
- Fix quoting of ,
- and values
- in createdb utility (Michael Paquier)
-
-
-
-
-
-
- contrib/lo's lo_manage()
- function crashed if called directly rather than as a trigger (Tom
- Lane)
-
-
-
-
-
-
- In contrib/ltree,
- protect against overflow of ltree
- and lquery length fields (Nikita Glukhov)
-
-
-
-
-
-
- Work around failure in contrib/pageinspect's
- bt_metap() function when an oldest_xact value
- exceeds 2^31-1 (Peter Geoghegan)
-
-
-
- Such XIDs will now be reported as negative integers, which isn't
- great but it beats throwing an error. v13 will widen the output
- argument to int8 to provide saner reporting.
-
-
-
-
-
-
- Fix cache reference leak in contrib/sepgsql
- (Michael Luo)
-
-
-
-
-
-
- On Windows, avoid premature creation of postmaster's log file
- during pg_ctl start (Alexander Lakhin)
-
-
-
- The previous coding could allow the file to be created with
- permissions that wouldn't allow the postmaster to write on it.
-
-
-
-
-
-
- Avoid failures when dealing with Unix-style locale names on
- Windows (Juan José Santamaría Flecha)
-
-
-
-
-
-
- On Windows, set console VT100 compatibility mode in
- programs that support PG_COLOR colorization
- (Juan José Santamaría Flecha)
-
-
-
- Without this, the colorization option doesn't actually work.
-
-
-
-
-
-
- Stop requiring extra parentheses in ereport()
- calls (Andres Freund, Tom Lane)
-
-
-
-
-
-
- Use pkg-config, if available, to
- locate libxml2
- during configure (Hugh McMaster, Tom
- Lane, Peter Eisentraut)
-
-
-
- If pkg-config is not present or lacks
- knowledge of libxml2, we still
- query xml2-config as before.
-
-
-
- This change could break build processes that try to
- make PostgreSQL use a non-default version
- of libxml2 by putting that
- version's xml2-config into
- the PATH. Instead,
- set XML2_CONFIG to point to the
- non-default xml2-config. That method
- will work with either older or
- newer PostgreSQL releases.
-
-
-
-
-
-
- Fix Makefile dependencies for libpq
- and ecpg (Dagfinn Ilmari Mannsåker)
-
-
-
-
-
-
- In MSVC builds, cope with spaces in the path name for Python
- (Victor Wagner)
-
-
-
-
-
-
- In MSVC builds, fix detection of Visual Studio version to work with
- more language settings (Andrew Dunstan)
-
-
-
-
-
-
- In MSVC builds, use -Wno-deprecated with bison
- versions newer than 3.0, as non-Windows builds already do (Andrew
- Dunstan)
-
-
-
-
-
-
- Update time zone data files to tzdata
- release 2020a for DST law changes in Morocco and the Canadian Yukon,
- plus historical corrections for Shanghai.
-
-
-
- The America/Godthab zone has been renamed to America/Nuuk to reflect
- current English usage; however, the old name remains available as a
- compatibility link.
-
-
-
- Also, update initdb's list of known
- Windows time zone names to include recent additions, improving the
- odds that it will correctly translate the system time zone setting
- on that platform.
-
-
-
-
-
-
-
-
-
- Release 12.2
-
-
- Release date:
- 2020-02-13
-
-
-
- This release contains a variety of fixes from 12.1.
- For information about new features in major release 12, see
- .
-
-
-
- Migration to Version 12.2
-
-
- A dump/restore is not required for those running 12.X.
-
-
-
- However, if you have any foreign key constraints referencing
- partitioned tables, see the two entries below about bugs in that
- feature.
-
-
-
-
- Changes
-
-
-
-
-
-
- Add missing permissions checks for ALTER ... DEPENDS ON
- EXTENSION (Álvaro Herrera)
-
-
-
- Marking an object as dependent on an extension did not have any
- privilege check whatsoever. This oversight allowed any user to mark
- routines, triggers, materialized views, or indexes as droppable by
- anyone able to drop an extension. Require that the calling user own
- the specified object (and hence have privilege to drop it).
- (CVE-2020-1720)
-
-
-
-
-
-
- Fix TRUNCATE ... CASCADE to ensure all relevant
- partitions are truncated (Jehan-Guillaume de Rorthais)
-
-
-
- If a partition of a partitioned table is truncated with
- the CASCADE option, and the partitioned table has
- a foreign-key reference from another table, that table must also be
- truncated. The need to check this was missed if the referencing
- table was itself partitioned, possibly allowing rows to survive that
- violate the foreign-key constraint.
-
-
-
- Hence, if you have foreign key constraints between partitioned
- tables, and you have done any
- partition-level TRUNCATE on the referenced table,
- you should check to see if any foreign key violations exist. The
- simplest way is to add a new instance of the foreign key constraint
- (and, once that succeeds, drop it or the original constraint).
- That may be prohibitive from a locking standpoint, however, in which
- case you might prefer to manually query for unmatched rows.
-
-
-
-
-
-
- Fix failure to attach foreign key constraints to sub-partitions
- (Jehan-Guillaume de Rorthais)
-
-
-
- When adding a partition to a level below the first level of a
- multi-level partitioned table, foreign key constraints referencing
- the top partitioned table were not cloned to the new partition,
- leading to possible constraint violations later. Detaching and
- re-attaching the new partition is the cheapest way to fix this.
- However, if there are many partitions to be fixed, adding a new
- instance of the foreign key constraint might be preferable.
-
-
-
-
-
-
- Fix possible crash during concurrent update on a partitioned table
- or inheritance tree (Tom Lane)
-
-
-
-
-
-
- Ensure that row triggers on partitioned tables are correctly
- cloned to sub-partitions when appropriate
- (Álvaro Herrera)
-
-
-
- User-defined triggers (but not triggers for foreign key or deferred
- unique constraints) might be missed when creating or attaching a
- partition.
-
-
-
-
-
-
- Fix logical replication subscriber code to execute
- per-column UPDATE triggers when appropriate
- (Peter Eisentraut)
-
-
-
-
-
-
- Avoid failure in logical decoding when a large transaction must be
- spilled into many separate temporary files (Amit Khandekar)
-
-
-
-
-
-
- Fix possible crash or data corruption when a logical replication
- subscriber processes a row update (Tom Lane, Tomas Vondra)
-
-
-
- This bug caused visible problems only if the subscriber's table
- contained columns that were not being copied from the publisher and
- had pass-by-reference data types.
-
-
-
-
-
-
- Fix crash in logical replication subscriber after DDL changes on a
- subscribed relation (Jehan-Guillaume de Rorthais, Vignesh C)
-
-
-
-
-
-
- Fix failure in logical replication publisher after a database crash
- and restart (Vignesh C)
-
-
-
-
-
-
- Ensure that the effect
- of pg_replication_slot_advance() on a physical
- replication slot will persist across restarts (Alexey Kondratov,
- Michael Paquier)
-
-
-
-
-
-
- Improve efficiency of logical replication with REPLICA
- IDENTITY FULL (Konstantin Knizhnik)
-
-
-
- When searching for an existing tuple during an update or delete
- operation, return the first matching tuple not the last one.
-
-
-
-
-
-
- Fix base backup to handle database OIDs larger
- than INT32_MAX (Peter Eisentraut)
-
-
-
-
-
-
- Ensure parallel plans are always shut down at the correct time
- (Kyotaro Horiguchi)
-
-
-
- This oversight is known to result in temporary file
- leak warnings from multi-batch parallel hash joins.
-
-
-
-
-
-
- Prevent premature shutdown of a Gather or GatherMerge plan node that
- is underneath a Limit node (Amit Kapila)
-
-
-
- This avoids failure if such a plan node needs to be scanned more
- than once, as for instance if it is on the inside of a nestloop.
-
-
-
-
-
-
- Improve efficiency of parallel hash join on CPUs with many cores
- (Gang Deng, Thomas Munro)
-
-
-
-
-
-
- Avoid crash in parallel CREATE INDEX when there
- are no free dynamic shared memory slots (Thomas Munro)
-
-
-
- Fall back to a non-parallel index build, instead.
-
-
-
-
-
-
- Avoid memory leak when there are no free dynamic shared memory slots
- (Thomas Munro)
-
-
-
-
-
-
- Ignore the CONCURRENTLY option when performing an
- index creation, drop, or rebuild on a temporary table (Michael
- Paquier, Heikki Linnakangas, Andres Freund)
-
-
-
- This avoids strange failures if the temporary table has
- an ON COMMIT action. There is no benefit in
- using CONCURRENTLY for a temporary table anyway,
- since other sessions cannot access the table, making the extra
- processing pointless.
-
-
-
-
-
-
- Fix possible failure when resetting expression indexes on temporary
- tables that are marked ON COMMIT DELETE ROWS
- (Tom Lane)
-
-
-
-
-
-
- Fix possible crash in BRIN index operations
- with box, range and inet data
- types (Heikki Linnakangas)
-
-
-
-
-
-
- Fix crash during recursive page split in GiST index build (Heikki
- Linnakangas)
-
-
-
-
-
-
- Fix handling of deleted pages in GIN indexes (Alexander Korotkov)
-
-
-
- Avoid possible deadlocks, incorrect updates of a deleted page's
- state, and failure to traverse through a recently-deleted page.
-
-
-
-
-
-
- Fix possible crash with a SubPlan (sub-SELECT)
- within a multi-row VALUES list (Tom Lane)
-
-
-
-
-
-
- Fix failure in ALTER TABLE when a column
- referenced in a GENERATED expression has been
- added or changed in type earlier in the
- same ALTER command (Tom Lane)
-
-
-
-
-
-
- Fix failure to insert default values for missing
- attributes during tuple conversion (Vik Fearing, Andrew Gierth)
-
-
-
- This could result in values incorrectly reading as NULL, when
- they come from columns that had been added by ALTER
- TABLE ADD COLUMN with a constant default.
-
-
-
-
-
-
- Fix unlikely panic in the checkpointer process, caused by opening
- relation segments that might already have been removed (Thomas Munro)
-
-
-
-
-
-
- Fix crash after FileClose() failure (Noah Misch)
-
-
-
- This issue could only be observed
- with data_sync_retry enabled, since otherwise
- FileClose() failure would be reported as a PANIC.
-
-
-
-
-
-
- Fix handling of multiple AFTER ROW triggers on a
- foreign table (Etsuro Fujita)
-
-
-
-
-
-
- Fix unlikely crash with pass-by-reference aggregate transition
- states (Andres Freund, Teodor Sigaev)
-
-
-
-
-
-
- Improve error reporting in to_date()
- and to_timestamp()
- (Tom Lane, Álvaro Herrera)
-
-
-
- Reports about incorrect month or day names in input strings could
- truncate the input in the middle of a multi-byte character, leading
- to an improperly encoded error message that could cause follow-on
- failures. Truncate at the next whitespace instead.
-
-
-
-
-
-
- Fix off-by-one result for EXTRACT(ISOYEAR
- FROM timestamp) for BC dates
- (Tom Lane)
-
-
-
-
-
-
- Ensure that the <> operator for
- type char reports indeterminate-collation errors as
- such, rather than as cache lookup failed for collation
- 0 (Tom Lane)
-
-
-
-
-
-
- Avoid treating TID scans as sequential scans (Tatsuhito Kasahara)
-
-
-
- A refactoring oversight caused TID scans (selection by CTID) to be
- counted as sequential scans in the statistics views, and to take
- whole-table predicate locks as sequential scans do. The latter
- behavior could cause unnecessary serialization errors in
- serializable transaction mode.
-
-
-
-
-
-
- Avoid stack overflow in information_schema views
- when a self-referential view exists in the system catalogs
- (Tom Lane)
-
-
-
- A self-referential view can't work; it will always result in
- infinite recursion. We handled that situation correctly when
- trying to execute the view, but not when inquiring whether it is
- automatically updatable.
-
-
-
-
-
-
- Ensure that walsender processes always show NULL for transaction
- start time in pg_stat_activity
- (Álvaro Herrera)
-
-
-
- Previously, the xact_start column would
- sometimes show the process start time.
-
-
-
-
-
-
- Improve performance of hash joins with very large inner relations
- (Thomas Munro)
-
-
-
-
-
-
- Reduce spinlock contention when there are many active walsender
- processes (Pierre Ducroquet)
-
-
-
-
-
-
- Fix placement of Subplans Removed field
- in EXPLAIN output (Daniel Gustafsson, Tom Lane)
-
-
-
- In non-text output formats, this field was emitted inside
- the Plans sub-group, resulting in syntactically
- invalid output. Attach it to the parent Append or MergeAppend plan
- node as intended. This causes the field to change position in text
- output format too: if there are any InitPlans attached to the same
- plan node, Subplans Removed will now appear before
- those.
-
-
-
-
-
-
- Fix EXPLAIN's SETTINGS option
- to print as empty in non-text output formats (Tom Lane)
-
-
-
- In the non-text output formats, fields are supposed to appear when
- requested, even if they have empty or zero values.
-
-
-
-
-
-
- Allow the planner to apply potentially-leaky tests to child-table
- statistics, if the user can read the corresponding column of the
- table that's actually named in the query (Dilip Kumar, Amit Langote)
-
-
-
- This change fixes a performance problem for partitioned tables that
- was created by the fix for CVE-2017-7484. That security fix
- disallowed applying leaky operators to statistics for columns that
- the current user doesn't have permission to read directly. However,
- it's somewhat common to grant permissions only on the parent
- partitioned table and not bother to do so on individual partitions.
- In such cases, the user can read the column via the parent, so
- there's no point in this security restriction; it only results in
- poorer planner estimates than necessary.
-
-
-
-
-
-
- Fix planner errors induced by overly-aggressive collapsing of joins
- to single-row subqueries (Tom Lane)
-
-
-
- This mistake led to errors such as failed to construct the
- join relation.
-
-
-
-
-
-
- Fix no = operator for
- opfamily NNNN planner error when
- trying to match a LIKE or regex pattern-match
- operator to a binary-compatible index opclass (Tom Lane)
-
-
-
-
-
-
- Fix edge-case crashes and misestimations in selectivity calculations
- for the <@ and @> range
- operators (Michael Paquier, Andrey Borodin, Tom Lane)
-
-
-
-
-
-
- Fix incorrect estimation for OR clauses when
- using most-common-value extended statistics (Tomas Vondra)
-
-
-
-
-
-
- Ignore system columns when applying most-common-value
- extended statistics (Tomas Vondra)
-
-
-
- This prevents negative bitmapset member not allowed
- planner errors for affected queries.
-
-
-
-
-
-
- Fix BRIN index logic to support hypothetical BRIN indexes
- (Julien Rouhaud, Heikki Linnakangas)
-
-
-
- Previously, if an index adviser extension tried to
- get the planner to produce a plan involving a hypothetical BRIN
- index, that would fail, because the BRIN cost estimation code would
- always try to physically access the index's metapage. Now it checks
- to see if the index is only hypothetical, and uses default
- assumptions about the index parameters if so.
-
-
-
-
-
-
- Improve error reporting for attempts to use automatic updating of
- views with conditional INSTEAD rules (Dean Rasheed)
-
-
-
- This has never been supported, but previously the error was thrown
- only at execution time, so that it could be masked by planner errors.
-
-
-
-
-
-
- Prevent a composite type from being included in itself indirectly
- via a range type (Tom Lane, Julien Rouhaud)
-
-
-
-
-
-
- Disallow partition key expressions that return pseudo-types, such
- as record (Tom Lane)
-
-
-
-
-
-
- Fix error reporting for index expressions of prohibited types
- (Amit Langote)
-
-
-
-
-
-
- Fix dumping of views that contain only a VALUES
- list to handle cases where a view output column has been renamed
- (Tom Lane)
-
-
-
-
-
-
- Ensure that data types and collations used
- in XMLTABLE constructs are accounted for when
- computing dependencies of a view or rule (Tom Lane)
-
-
-
- Previously it was possible to break a view
- using XMLTABLE by dropping a type, if the type
- was not otherwise referenced in the view. This fix does not
- correct the dependencies already recorded for existing views, only
- for newly-created ones.
-
-
-
-
-
-
- Prevent unwanted downcasing and truncation of RADIUS authentication
- parameters (Marcos David)
-
-
-
- The pg_hba.conf parser mistakenly treated these
- fields as SQL identifiers, which in general they aren't.
-
-
-
-
-
-
- Transmit incoming NOTIFY messages to the client
- before sending ReadyForQuery, rather than after
- (Tom Lane)
-
-
-
- This change ensures that, with libpq and other client libraries that
- act similarly to it, any notifications received during a transaction
- will be available by the time the client thinks the transaction is
- complete. This probably makes no difference in practical
- applications (which would need to cope with asynchronous
- notifications in any case); but it makes it easier to build test
- cases with reproducible behavior.
-
-
-
-
-
-
- Fix bugs in handling of non-blocking I/O when using GSSAPI
- encryption (Tom Lane)
-
-
-
- These errors could result in dropping data (usually leading to
- subsequent wire-protocol-violation errors) or in
- a livelock situation where a sending process goes to
- sleep although not all its data has been sent.
- Moreover, libpq failed to keep separate
- encryption state for each connection, creating the possibility for
- failures in applications using multiple encrypted database
- connections.
-
-
-
-
-
-
- Allow libpq to parse all GSS-related
- connection parameters even when the GSSAPI code hasn't been compiled
- in (Tom Lane)
-
-
-
- This makes the behavior similar to our SSL support, where it was
- long ago deemed to be a good idea to always accept all the related
- parameters, even if some are ignored or restricted due to lack of
- the feature in a particular build.
-
-
-
-
-
-
- Fix incorrect handling of %b
- and %B format codes
- in ecpg's
- PGTYPEStimestamp_fmt_asc() function
- (Tomas Vondra)
-
-
-
- Due to an off-by-one error, these codes would print the wrong month
- name, or possibly crash.
-
-
-
-
-
-
- Avoid crash after an out-of-memory failure
- in ecpglib (Tom Lane)
-
-
-
-
-
-
- Fix
- parallel pg_dump/pg_restore
- to more gracefully handle failure to create worker processes
- (Tom Lane)
-
-
-
-
-
-
- Prevent possible crash or lockup when attempting to terminate a
- parallel pg_dump/pg_restore
- run via a signal (Tom Lane)
-
-
-
-
-
-
- In pg_upgrade, look inside arrays and
- ranges while searching for non-upgradable data types in tables
- (Tom Lane)
-
-
-
-
-
-
- Apply more thorough syntax checking
- to createuser's
- option (Álvaro Herrera)
-
-
-
-
-
-
- Cope with changes of the specific type referenced by a PL/pgSQL
- composite-type variable in more cases (Ashutosh Sharma, Tom Lane)
-
-
-
- Dropping and re-creating the composite type referenced by a PL/pgSQL
- variable could lead to could not open relation with
- OID NNNN errors.
-
-
-
-
-
-
- Avoid crash in postgres_fdw when trying to
- send a command like UPDATE remote_tab SET (x,y) = (SELECT
- ...) to the remote server (Tom Lane)
-
-
-
-
-
-
- In contrib/dict_int,
- reject maxlen settings less than one
- (Tomas Vondra)
-
-
-
- This prevents a possible crash with silly settings for that parameter.
-
-
-
-
-
-
- Disallow NULL category values
- in contrib/tablefunc's
- crosstab() function (Joe Conway)
-
-
-
- This case never worked usefully, and it would crash on some
- platforms.
-
-
-
-
-
-
- Fix configure's probe for
- OpenSSL's SSL_clear_options() function so that
- it works with OpenSSL versions before 1.1.0 (Michael Paquier, Daniel
- Gustafsson)
-
-
-
- This problem could lead to failure to set the SSL compression option
- as desired, when PostgreSQL is built against
- an old version of OpenSSL.
-
-
-
-
-
-
- Mark some timeout and statistics-tracking GUC variables
- as PGDLLIMPORT, to allow extensions to access
- them on Windows (Pascal Legrand)
-
-
-
- This applies to
- idle_in_transaction_session_timeout,
- lock_timeout,
- statement_timeout,
- track_activities,
- track_counts, and
- track_functions.
-
-
-
-
-
-
- Avoid memory leak in sanity checks for slab memory
- contexts (Tomas Vondra)
-
-
-
- This isn't an issue for production builds, since they wouldn't
- ordinarily have memory context checking enabled; but the leak could
- be quite severe in a debug build.
-
-
-
-
-
-
- Fix multiple statistics entries reported by the LWLock statistics
- mechanism (Fujii Masao)
-
-
-
- The LWLock statistics code (which is not built by default; it
- requires compiling with )
- could report multiple entries for the same LWLock and backend
- process, as a result of faulty hashtable key creation.
-
-
-
-
-
-
- Fix race condition that led to delayed delivery of interprocess
- signals on Windows (Amit Kapila)
-
-
-
- This caused visible timing oddities in NOTIFY,
- and perhaps other misbehavior.
-
-
-
-
-
-
- Fix handling of a corner-case error result from
- Windows' ReadFile() function
- (Thomas Munro, Juan José Santamaría Flecha)
-
-
-
- So far as is known, this oversight just resulted in noisy log
- messages, not any actual query misbehavior.
-
-
-
-
-
-
- On Windows, retry a few times after
- an ERROR_ACCESS_DENIED file access failure
- (Alexander Lakhin, Tom Lane)
-
-
-
- This helps cope with cases where a file open attempt fails because
- the targeted file is flagged for deletion but not yet actually gone.
- pg_ctl, for example, frequently failed
- with such an error when probing to see if the postmaster had shut
- down yet.
-
-
-
-
-
-
- On Windows, work around sharing violations for the postmaster's log
- file when pg_ctl is used to start the
- postmaster very shortly after it's been stopped, for example by
- pg_ctl restart (Alexander Lakhin)
-
-
-
-
-
-
-
-
-
- Release 12.1
-
-
- Release date:
- 2019-11-14
-
-
-
- This release contains a variety of fixes from 12.0.
- For information about new features in major release 12, see
- .
-
-
-
- Migration to Version 12.1
-
-
- A dump/restore is not required for those running 12.X.
-
-
-
-
- Changes
-
-
-
-
-
-
- Fix crash when ALTER TABLE adds a column without
- a default value along with making other changes that require a table
- rewrite (Andres Freund)
-
-
-
-
-
-
- Fix lock handling in REINDEX CONCURRENTLY
- (Michael Paquier)
-
-
-
- REINDEX CONCURRENTLY neglected to take a
- session-level lock on the new index version, potentially allowing
- other sessions to manipulate it too soon.
- Also, a query-cancel or session-termination interrupt arriving at the
- wrong time could result in failure to release the session-level
- locks that REINDEX CONCURRENTLY does hold.
-
-
-
-
-
-
- Avoid crash due to race condition when reporting the progress of
- a CREATE INDEX CONCURRENTLY or REINDEX
- CONCURRENTLY command (Álvaro Herrera)
-
-
-
-
-
-
- Avoid creating duplicate dependency entries during REINDEX
- CONCURRENTLY (Michael Paquier)
-
-
-
- This bug resulted in bloat in pg_depend,
- but no worse consequences than that.
-
-
-
-
-
-
- Prevent VACUUM from trying to freeze
- an old multixact ID involving a still-running transaction
- (Nathan Bossart, Jeremy Schneider)
-
-
-
- This case would lead to VACUUM failing until the
- old transaction terminates.
-
-
-
-
-
-
- Fix wrong type of slot error when trying
- to CLUSTER on an expression index (Andres Freund)
-
-
-
-
-
-
- SET CONSTRAINTS ... DEFERRED failed on
- partitioned tables, incorrectly complaining about lack of triggers
- (Álvaro Herrera)
-
-
-
-
-
-
- Fix failure when creating indexes for a partition, if the parent
- partitioned table contains any dropped columns (Michael Paquier)
-
-
-
-
-
-
- Fix dropping of indexed columns in partitioned tables
- (Amit Langote, Michael Paquier)
-
-
-
- Previously this might fail with an error message complaining about
- the dependencies of the indexes. It should automatically drop the
- indexes, instead.
-
-
-
-
-
-
- Ensure that a partition index can be dropped after a failure to
- reindex it concurrently (Michael Paquier)
-
-
-
- The
- index's pg_class.relispartition
- flag was left in the wrong state in such a case,
- causing DROP INDEX to fail.
-
-
-
-
-
-
- Fix handling of equivalence class members for partition-wise joins
- (Amit Langote)
-
-
-
- This oversight could lead either to failure to use a feasible
- partition-wise join plan, or to a could not find pathkey item
- to sort planner failure.
-
-
-
-
-
-
- Ensure that offset expressions in WINDOW clauses
- are processed when a query's expressions are manipulated (Andrew Gierth)
-
-
-
- This oversight could result in assorted failures when the offsets
- are nontrivial expressions. One example is that a function
- parameter reference in such an expression would fail if the function
- was inlined.
-
-
-
-
-
-
- Avoid postmaster failure if a parallel query requests a background
- worker when no postmaster child process array slots remain free
- (Tom Lane)
-
-
-
-
-
-
- Fix crash triggered by an EvalPlanQual recheck on a table with
- a BEFORE UPDATE trigger (Andres Freund)
-
-
-
-
-
-
- Fix unexpected relkind error when a query tries to
- access a TOAST table (John Hsu, Michael Paquier, Tom Lane)
-
-
-
- The error should say that permission is denied, but this case got
- broken during code refactoring.
-
-
-
-
-
-
- Provide a relevant error context line when an error occurs while
- setting GUC parameters during parallel worker startup (Thomas Munro)
-
-
-
-
-
-
- Ensure that fsync() is applied only to files
- that are opened read/write (Andres Freund, Michael Paquier)
-
-
-
- Some code paths tried to do this after opening a file read-only,
- but on some platforms that causes bad file descriptor
- or similar errors.
-
-
-
-
-
-
- Allow encoding conversion to succeed on longer strings than before
- (Álvaro Herrera, Tom Lane)
-
-
-
- Previously, there was a hard limit of 0.25GB on the input string,
- but now it will work as long as the converted output is not over 1GB.
-
-
-
-
-
-
- Avoid creating unnecessarily-bulky tuple stores for window functions
- (Andrew Gierth)
-
-
-
- In some cases the tuple storage would include all columns of the
- source table(s), not just the ones that are needed by the query.
-
-
-
-
-
-
- Allow repalloc() to give back space when a
- large chunk is reduced in size (Tom Lane)
-
-
-
-
-
-
- Ensure that temporary WAL and history files are removed at the end
- of archive recovery (Sawada Masahiko)
-
-
-
-
-
-
- Avoid failure in archive recovery
- if recovery_min_apply_delay is enabled
- (Fujii Masao)
-
-
-
- recovery_min_apply_delay is not typically used in
- this configuration, but it should work.
-
-
-
-
-
-
- Ignore restore_command,
- recovery_end_command,
- and recovery_min_apply_delay settings during
- crash recovery (Fujii Masao)
-
-
-
- Now that these settings can be specified
- in postgresql.conf, they could be turned on
- during crash recovery, but honoring them then is undesirable.
- Ignore these settings until crash recovery is complete.
-
-
-
-
-
-
- Fix logical replication failure when publisher and subscriber have
- different ideas about a table's replica identity columns
- (Jehan-Guillaume de Rorthais, Peter Eisentraut)
-
-
-
- Declaring a column as part of the replica identity on the
- subscriber, when it does not exist at all on the publisher, led
- to negative bitmapset member not allowed errors.
-
-
-
-
-
-
- Avoid unwanted delay during shutdown of a logical replication
- walsender (Craig Ringer, Álvaro Herrera)
-
-
-
-
-
-
- Fix timeout handling in logical replication walreceiver processes
- (Julien Rouhaud)
-
-
-
- Erroneous logic prevented wal_receiver_timeout
- from working in logical replication deployments.
-
-
-
-
-
-
- Correctly time-stamp replication messages for logical
- decoding (Jeff Janes)
-
-
-
- This oversight resulted, for example,
- in pg_stat_subscription.last_msg_send_time
- usually reading as NULL.
-
-
-
-
-
-
- Fix race condition during backend exit, when the backend process has
- previously waited for synchronous replication to occur (Dongming Liu)
-
-
-
-
-
-
- Avoid logging complaints about abandoned connections when using PAM
- authentication (Tom Lane)
-
-
-
- libpq-based clients will typically make two connection attempts when
- a password is required, since they don't prompt their user for a
- password until their first connection attempt fails. Therefore the
- server is coded not to generate useless log spam when a client
- closes the connection upon being asked for a password. However,
- the PAM authentication code hadn't gotten that memo, and would
- generate several messages about a phantom authentication failure.
-
-
-
-
-
-
- Fix misbehavior of bitshiftright() (Tom Lane)
-
-
-
- The bitstring right shift operator failed to zero out padding space
- that exists in the last byte of the result when the bitstring length
- is not a multiple of 8. While invisible to most operations, any
- nonzero bits there would result in unexpected comparison behavior,
- since bitstring comparisons don't bother to ignore the extra bits,
- expecting them to always be zero.
-
-
-
- If you have inconsistent data as a result of saving the output
- of bitshiftright() in a table, it's possible to
- fix it with something like
-
-UPDATE mytab SET bitcol = ~(~bitcol) WHERE bitcol != ~(~bitcol);
-
-
-
-
-
-
-
- Fix result of text position() function (also
- known as strpos()) for an empty search string
- (Tom Lane)
-
-
-
- Historically, and per the SQL standard, the result should be one in
- such cases, but 12.0 returned zero.
-
-
-
-
-
-
- Fix detection of edge-case integer overflow in interval
- multiplication (Yuya Watari)
-
-
-
-
-
-
- Avoid crashes if ispell text search dictionaries
- contain wrong affix data (Arthur Zakirov)
-
-
-
-
-
-
- Avoid memory leak while vacuuming a GiST index (Dilip Kumar)
-
-
-
-
-
-
- On Windows, recognize additional spellings of the Norwegian
- (Bokmål) locale name (Tom Lane)
-
-
-
-
-
-
- Fix libpq to allow trailing whitespace in
- the string values of integer parameters (Michael Paquier)
-
-
-
- Version 12 tightened libpq's validation
- of integer parameters, but disallowing trailing whitespace seems
- undesirable.
-
-
-
-
-
-
- In libpq, correctly
- report CONNECTION_BAD connection status after a
- failure caused by a syntactically
- invalid parameter value (Lars Kanis)
-
-
-
-
-
-
- Avoid compile failure if an ECPG client
- includes ecpglib.h while
- having ENABLE_NLS defined (Tom Lane)
-
-
-
- This risk was created by a misplaced
- declaration: ecpg_gettext() should not be
- visible to client code.
-
-
-
-
-
-
- Fix scheduling of parallel restore of a foreign key constraint on a
- partitioned table (Álvaro Herrera)
-
-
-
- pg_dump failed to emit full dependency
- information for partitioned tables' foreign keys. This could allow
- parallel pg_restore to try to recreate a
- foreign key constraint too soon.
-
-
-
-
-
-
- In pg_dump, ensure stable output order
- for similarly-named triggers and row-level-security policy objects
- (Benjie Gillam)
-
-
-
- Previously, if two triggers on different tables had the same names,
- they would be sorted in OID-based order, which is less desirable
- than sorting them by table name. Likewise for RLS policies.
-
-
-
-
-
-
- In pg_upgrade, reject tables with
- columns of type sql_identifier, as that has changed
- representation in version 12 (Tomas Vondra)
-
-
-
-
-
-
- Improve pg_upgrade's checks for the use
- of a data type that has changed representation, such
- as line (Tomas Vondra)
-
-
-
- The previous coding could be fooled by cases where the data type of
- interest underlies a stored column of a domain or composite type.
-
-
-
-
-
-
- In pg_rewind
- with the option, avoid
- updating pg_control
- (Alexey Kondratov)
-
-
-
- This could lead to failures in
- subsequent pg_rewind attempts.
-
-
-
-
-
-
- Fix failure in pg_waldump with
- the option, when a continuation WAL record ends
- exactly at a page boundary (Andrey Lepikhov)
-
-
-
-
-
-
- In pg_waldump with
- the option, avoid emitting extra
- newlines for WAL records involving full-page writes (Andres Freund)
-
-
-
-
-
-
- Fix small memory leak in pg_waldump
- (Andres Freund)
-
-
-
-
-
-
- Put back pqsignal() as an
- exported libpq symbol (Tom Lane)
-
-
-
- This function was removed on the grounds that no clients should be
- using it, but that turns out to break usage of
- current libpq with very old versions
- of psql, and perhaps other applications.
-
-
-
-
-
-
- Fix configure's test for presence of
- libperl so that it works on recent Red Hat releases (Tom Lane)
-
-
-
- Previously, it could fail if the user sets CFLAGS
- to -O0.
-
-
-
-
-
-
- Ensure correct code generation for spinlocks on PowerPC (Noah Misch)
-
-
-
- The previous spinlock coding allowed the compiler to select register
- zero for use with an assembly instruction that does not accept that
- register, causing a build failure. We have seen only one long-ago
- report that matches this bug, but it could cause problems for people
- trying to build modified PostgreSQL code
- or use atypical compiler options.
-
-
-
-
-
-
- On AIX, don't use the compiler option
- (Noah Misch)
-
-
-
- This avoids an internal compiler error with xlc v16.1.0, with little
- consequence other than changing the format of compiler error messages.
-
-
-
-
-
-
- Fix MSVC build process to cope with spaces in the file path of
- OpenSSL (Andrew Dunstan)
-
-
-
-
-
-
-
-
-
- Release 12
-
-
- Release date:
- 2019-10-03
-
-
-
- Overview
-
-
- Major enhancements in PostgreSQL 12 include:
-
-
-
-
-
-
-
-
- General performance improvements, including:
-
-
-
- Optimizations to space utilization and read/write performance for
- B-tree indexes
-
-
-
-
-
- Partitioning performance enhancements, including improved query
- performance on tables with thousands of partitions, improved
- insertion performance with and , and the ability to execute ALTER TABLE ATTACH
- PARTITION without blocking queries
-
-
-
-
-
- Automatic (but overridable) inlining
- of common table expressions
- (CTEs)
-
-
-
-
-
- Reduction of WAL overhead for creation of
- GiST, GIN, and
- SP-GiST indexes
-
-
-
-
-
- Support for covering GiST indexes, via
- the INCLUDE
- clause
-
-
-
-
-
- Multi-column most-common-value (MCV) statistics can be defined
- via , to support better
- plans for queries that test several non-uniformly-distributed
- columns
-
-
-
-
-
-
-
-
- Enhancements to administrative functionality, including:
-
-
-
- REINDEX
- CONCURRENTLY can rebuild an index without
- blocking writes to its table
-
-
-
-
-
- can enable/disable page checksums
- (used for detecting data corruption) in an offline cluster
-
-
-
-
-
- Progress reporting statistics for ,
- , ,
- VACUUM FULL, and
-
-
-
-
-
-
-
-
-
- Support for the SQL/JSON
- path language
-
-
-
-
-
- Stored generated columns
-
-
-
-
-
- Nondeterministic ICU
- collations, enabling case-insensitive and accent-insensitive grouping
- and ordering
-
-
-
-
-
- New authentication features, including:
-
-
-
- Encryption of TCP/IP connections when using
- GSSAPI
- authentication
-
-
-
-
-
- Discovery of LDAP servers using DNS SRV records
-
-
-
-
-
- Multi-factor authentication, using the
- clientcert=verify-full option combined
- with an additional authentication method in
- pg_hba.conf
-
-
-
-
-
-
-
-
-
- The above items are explained in more detail in the sections below.
-
-
-
-
-
-
- Migration to Version 12
-
-
- A dump/restore using or use of or logical replication is required for those
- wishing to migrate data from any previous release. See for general information on migrating to new major
- releases.
-
-
-
- Version 12 contains a number of changes that may affect compatibility
- with previous releases. Observe the following incompatibilities:
-
-
-
-
-
-
-
-
- Remove the special behavior of oid columns (Andres Freund,
- John Naylor)
-
-
-
- Previously, a normally-invisible oid
- column could be specified during table creation using WITH
- OIDS; that ability has been removed. Columns can still be
- explicitly declared as type oid. Operations on tables
- that have columns created using WITH OIDS will
- need adjustment.
-
-
-
- The system catalogs that previously had
- hidden oid columns now have
- ordinary oid columns.
- Hence, SELECT * will now output those columns,
- whereas previously they would be displayed only if selected
- explicitly.
-
-
-
-
-
-
-
- Remove data types abstime, reltime,
- and tinterval (Andres Freund)
-
-
-
- These are obsoleted by SQL-standard types such
- as timestamp.
-
-
-
-
-
-
-
- Remove the timetravel extension
- (Andres Freund)
-
-
-
-
-
-
-
- Move recovery.conf settings into postgresql.conf
- (Masao Fujii, Simon Riggs, Abhijit Menon-Sen, Sergei Kornilov)
-
-
-
- recovery.conf is no longer used,
- and the server will not start if that file exists. recovery.signal
- and standby.signal files are now used to switch
- into non-primary mode. The trigger_file setting
- has been renamed to . The
- standby_mode setting has been removed.
-
-
-
-
-
-
-
- Do not allow multiple conflicting recovery_target*
- specifications (Peter Eisentraut)
-
-
-
- Specifically, only allow one of , ,
- ,
- , and . Previously, multiple different
- instances of these parameters could be specified, and the last one
- was honored. Now, only one can be specified, though the same one can
- be specified multiple times and the last specification is honored.
-
-
-
-
-
-
-
- Cause recovery to advance to the latest timeline by default
- (Peter Eisentraut)
-
-
-
- Specifically, now
- defaults to latest. Previously, it defaulted
- to current.
-
-
-
-
-
-
-
- Refactor code for geometric
- functions and operators (Emre Hasegeli)
-
-
-
- This could lead to more accurate, but slightly different, results
- compared to previous releases. Notably, cases involving NaN,
- underflow, overflow, and division by zero are handled more
- consistently than before.
-
-
-
-
-
-
-
- Improve performance by using a new algorithm for output
- of real
- and double precision values (Andrew Gierth)
-
-
-
- Previously, displayed floating-point values were rounded to 6
- (for real) or 15 (for double precision)
- digits by default, adjusted by the value of
- . Now,
- whenever extra_float_digits is more than zero (as
- it now is by default), only the minimum number of digits required to
- preserve the exact binary value are output. The behavior is the
- same as before when extra_float_digits is set to
- zero or less.
-
-
-
- Also, formatting of floating-point exponents is now uniform across
- platforms: two digits are used unless three are necessary. In
- previous releases, Windows builds always printed three digits.
-
-
-
-
-
-
-
- random()
- and setseed() now behave uniformly across
- platforms (Tom Lane)
-
-
-
- The sequence of random() values generated
- following a setseed() call with a particular
- seed value is likely to be different now than before. However, it
- will also be repeatable, which was not previously guaranteed because
- of interference from other uses of random numbers inside the server.
- The SQL random() function now has its own
- private per-session state to forestall that.
-
-
-
-
-
-
-
- Change SQL-style
- substring()
- to have standard-compliant greediness behavior (Tom Lane)
-
-
-
- In cases where the pattern can be matched in more than one way, the
- initial sub-pattern is now treated as matching the least possible
- amount of text rather than the greatest; for example, a pattern such
- as %#"aa*#"% now selects the first group
- of a's from the input, not the last group.
-
-
-
-
-
-
-
- Do not pretty-print the result
- of xpath()
- or the XMLTABLE construct (Tom Lane)
-
-
-
- In some cases, these functions would insert extra whitespace
- (newlines and/or spaces) in nodeset values. This is undesirable
- since depending on usage, the whitespace might be considered
- semantically significant.
-
-
-
-
-
-
-
- Rename command-line tool
- pg_verify_checksums to (Michaël Paquier)
-
-
-
-
-
-
-
- In , require specification of
- -f - to send the dump contents to standard output
- (Euler Taveira)
-
-
-
- Previously, this happened by default if no destination was
- specified, but that was deemed to be unfriendly.
-
-
-
-
-
-
-
- Disallow non-unique abbreviations
- in psql's \pset format
- command (Daniel Vérité)
-
-
-
- Previously, for example, \pset format a chose
- aligned; it will now fail since that could
- equally well mean asciidoc.
-
-
-
-
-
-
-
- In new btree indexes, the maximum index entry length is
- reduced by eight bytes, to improve handling of duplicate entries
- (Peter Geoghegan)
-
-
-
- This means that a operation on an
- index pg_upgrade'd from a previous
- release could potentially fail.
-
-
-
-
-
-
-
- Cause DROP IF EXISTS
- FUNCTION/PROCEDURE/AGGREGATE/ROUTINE
- to generate an error if no argument list is supplied and there are
- multiple matching objects (David Rowley)
-
-
-
- Also improve the error message in such cases.
-
-
-
-
-
-
-
- Split the pg_statistic_ext
- catalog into two catalogs, and add the pg_stats_ext
- view of it (Dean Rasheed, Tomas Vondra)
-
-
-
- This change supports hiding potentially-sensitive statistics data
- from unprivileged users.
-
-
-
-
-
-
-
- Remove obsolete pg_constraint.consrc
- column (Peter Eisentraut)
-
-
-
- This column has been deprecated for a long time, because it did not
- update in response to other catalog changes (such as column renamings).
- The recommended way to get a text version of a check constraint's
- expression from pg_constraint
- is pg_get_expr(conbin, conrelid).
- pg_get_constraintdef() is also a useful
- alternative.
-
-
-
-
-
-
-
- Remove obsolete pg_attrdef.adsrc
- column (Peter Eisentraut)
-
-
-
- This column has been deprecated for a long time, because it did not
- update in response to other catalog changes (such as column renamings).
- The recommended way to get a text version of a default-value expression
- from pg_attrdef is pg_get_expr(adbin,
- adrelid).
-
-
-
-
-
-
-
- Mark table columns of type name as having
- C collation by default (Tom Lane, Daniel Vérité)
-
-
-
- The comparison operators for data type name can now use
- any collation, rather than always using C collation.
- To preserve the previous semantics of queries, columns of
- type name are now explicitly marked as
- having C collation. A side effect of this is that
- regular-expression operators on name columns will now
- use the C collation by default, not the database
- collation, to determine the behavior of locale-dependent regular
- expression patterns (such as \w). If you want
- non-C behavior for a regular expression on a name
- column, attach an explicit COLLATE clause. (For
- user-defined name columns, another possibility is to
- specify a different collation at table creation time; but that just
- moves the non-backwards-compatibility to the comparison operators.)
-
-
-
-
-
-
-
- Treat object-name columns in
- the information_schema
- views as being of type name, not varchar
- (Tom Lane)
-
-
-
- Per the SQL standard, object-name columns in
- the information_schema views are declared
- as being of domain type sql_identifier.
- In PostgreSQL, the underlying catalog
- columns are really of type name. This change
- makes sql_identifier be a domain
- over name, rather than varchar as before.
- This eliminates a semantic mismatch in comparison and sorting
- behavior, which can greatly improve the performance of queries
- on information_schema views that restrict
- an object-name column. Note however that inequality restrictions,
- for example
-
-SELECT ... FROM information_schema.tables WHERE table_name < 'foo';
-
- will now use C-locale comparison semantics by
- default, rather than the database's default collation as before.
- Sorting on these columns will also follow C ordering
- rules. The previous behavior (and inefficiency) can be enforced by
- adding a COLLATE "default" clause.
-
-
-
-
-
-
-
- Remove the ability to disable dynamic shared memory (Kyotaro
- Horiguchi)
-
-
-
- Specifically,
- can no longer be set to none.
-
-
-
-
-
-
-
- Parse libpq integer connection parameters more strictly (Fabien
- Coelho)
-
-
-
- In previous releases, using an incorrect integer value for
- connection parameters connect_timeout,
- keepalives, keepalives_count,
- keepalives_idle,
- keepalives_interval and port
- resulted in libpq either ignoring those values or failing with
- incorrect error messages.
-
-
-
-
-
-
-
-
- Changes
-
-
- Below you will find a detailed account of the changes between
- PostgreSQL 12 and the previous
- major release.
-
-
-
- Server
-
-
- Partitioning
-
-
-
-
-
-
-
- Improve performance of many operations on partitioned tables
- (Amit Langote, David Rowley, Tom Lane, Álvaro Herrera)
-
-
-
- Allow tables with thousands of child partitions to be processed
- efficiently by operations that only affect a small number of
- partitions.
-
-
-
-
-
-
-
- Allow foreign keys
- to reference partitioned tables (Álvaro Herrera)
-
-
-
-
-
-
-
- Improve speed of COPY into partitioned tables
- (David Rowley)
-
-
-
-
-
-
-
- Allow partition bounds to be any expression (Kyotaro Horiguchi,
- Tom Lane, Amit Langote)
-
-
-
- Such expressions are evaluated at partitioned-table creation time.
- Previously, only simple constants were allowed as partition bounds.
-
-
-
-
-
-
-
- Allow CREATE TABLE's tablespace specification
- for a partitioned table to affect the tablespace of its children
- (David Rowley, Álvaro Herrera)
-
-
-
-
-
-
-
- Avoid sorting when partitions are already being scanned in the
- necessary order (David Rowley)
-
-
-
-
-
-
-
- ALTER TABLE ATTACH
- PARTITION is now performed with reduced locking
- requirements (Robert Haas)
-
-
-
-
-
-
-
- Add partition introspection functions (Michaël Paquier, Álvaro
- Herrera, Amit Langote)
-
-
-
- The new function pg_partition_root()
- returns the top-most parent of a partition tree, pg_partition_ancestors()
- reports all ancestors of a partition, and pg_partition_tree()
- displays information about partitions.
-
-
-
-
-
-
-
- Include partitioned indexes in the system view pg_indexes
- (Suraj Kharage)
-
-
-
-
-
-
-
- Add psql command \dP
- to list partitioned tables and indexes (Pavel Stehule)
-
-
-
-
-
-
-
- Improve psql\d
- and \z display of partitioned tables (Pavel
- Stehule, Michaël Paquier, Álvaro Herrera)
-
-
-
-
-
-
-
- Fix bugs that could cause ALTER TABLE DETACH
- PARTITION to leave behind incorrect dependency state,
- allowing subsequent operations to misbehave, for example by not
- dropping a former partition child index when its table is dropped
- (Tom Lane)
-
-
-
-
-
-
-
-
- Indexes
-
-
-
-
-
-
-
- Improve performance and space utilization of btree indexes with
- many duplicates (Peter Geoghegan, Heikki Linnakangas)
-
-
-
- Previously, duplicate index entries were stored unordered within
- their duplicate groups. This caused overhead during index
- inserts, wasted space due to excessive page splits, and it reduced
- VACUUM's ability to recycle entire pages.
- Duplicate index entries are now sorted in heap-storage order.
-
-
-
- Indexes pg_upgrade'd from previous
- releases will not have these benefits.
-
-
-
-
-
-
-
- Allow multi-column btree indexes to be smaller (Peter Geoghegan,
- Heikki Linnakangas)
-
-
-
- Internal pages and min/max leaf page indicators now only store
- index keys until the change key, rather than all indexed keys.
- This also improves the locality of index access.
-
-
-
- Indexes pg_upgrade'd from previous
- releases will not have these benefits.
-
-
-
-
-
-
-
- Improve speed of btree index insertions by reducing locking
- overhead (Alexander Korotkov)
-
-
-
-
-
-
-
- Support INCLUDE columns
- in GiST indexes (Andrey Borodin)
-
-
-
-
-
-
-
- Add support for nearest-neighbor (KNN) searches
- of SP-GiST indexes (Nikita Glukhov,
- Alexander Korotkov, Vlad Sterzhanov)
-
-
-
-
-
-
-
-
- Reduce the WAL write overhead
- of GiST, GIN, and
- SP-GiST index creation (Anastasia Lubennikova,
- Andrey V. Lepikhov)
-
-
-
-
-
-
-
- Allow index-only scans to be more efficient on indexes with many
- columns (Konstantin Knizhnik)
-
-
-
-
-
-
-
- Improve the performance of vacuum scans of GiST indexes (Andrey
- Borodin, Konstantin Kuznetsov, Heikki Linnakangas)
-
-
-
-
-
-
-
- Delete empty leaf pages during GiST
- VACUUM (Andrey Borodin)
-
-
-
-
-
-
-
- Reduce locking requirements for index renaming (Peter Eisentraut)
-
-
-
-
-
-
-
-
- Optimizer
-
-
-
-
-
-
-
- Allow to create
- most-common-value statistics for multiple columns (Tomas Vondra)
-
-
-
- This improves optimization for queries that test several columns,
- requiring an estimate of the combined effect of
- several WHERE clauses. If the columns are
- correlated and have non-uniform distributions then multi-column
- statistics will allow much better estimates.
-
-
-
-
-
-
-
- Allow common table expressions
- (CTEs) to be inlined into the outer query
- (Andreas Karlsson, Andrew Gierth, David Fetter, Tom Lane)
-
-
-
- Specifically, CTEs are automatically inlined if
- they have no side-effects, are not recursive, and are referenced
- only once in the query. Inlining can be prevented by
- specifying MATERIALIZED, or forced for
- multiply-referenced CTEs by
- specifying NOT MATERIALIZED. Previously,
- CTEs were never inlined and were always
- evaluated before the rest of the query.
-
-
-
-
-
-
-
- Allow control over when generic plans are used for prepared
- statements (Pavel Stehule)
-
-
-
- This is controlled by the
- server parameter.
-
-
-
-
-
-
-
- Improve optimization of partition and UNION ALL
- queries that have only a single child (David Rowley)
-
-
-
-
-
-
-
- Improve processing of domains that
- have no check constraints (Tom Lane)
-
-
-
- Domains that are being used purely as type aliases no longer cause
- optimization difficulties.
-
-
-
-
-
-
-
- Pre-evaluate calls of LEAST
- and GREATEST when their arguments are constants
- (Vik Fearing)
-
-
-
-
-
-
-
- Improve optimizer's ability to verify that partial indexes
- with IS NOT NULL conditions are usable in
- queries (Tom Lane, James Coleman)
-
-
-
- Usability can now be recognized in more cases where the calling
- query involves casts or
- large x IN
- (array) clauses.
-
-
-
-
-
-
-
- Compute ANALYZE statistics using the collation
- defined for each column (Tom Lane)
-
-
-
- Previously, the database's default collation was used for all
- statistics. This potentially gives better optimizer behavior for
- columns with non-default collations.
-
-
-
-
-
-
-
- Improve selectivity estimates for inequality comparisons
- on ctid
- columns (Edmund Horner)
-
-
-
-
-
-
-
- Improve optimization of joins on columns of type tid
- (Tom Lane)
-
-
-
- These changes primarily improve the efficiency of self-joins
- on ctid columns.
-
-
-
-
-
-
-
- Fix the leakproofness designations of some btree comparison operators
- and support functions (Tom Lane)
-
-
-
- This allows some optimizations that previously would not have been
- applied in the presence of security barrier views or row-level
- security.
-
-
-
-
-
-
-
-
- General Performance
-
-
-
-
-
-
-
- Enable Just-in-Time
- (JIT) compilation by default, if the server
- has been built with support for it (Andres Freund)
-
-
-
- Note that this support is not built by default, but has to be
- selected explicitly while configuring the build.
-
-
-
-
-
-
-
- Speed up keyword lookup (John Naylor, Joerg Sonnenberger, Tom Lane)
-
-
-
-
-
-
-
- Improve search performance for multi-byte characters
- in position() and related functions (Heikki
- Linnakangas)
-
-
-
-
-
-
-
- Allow toasted
- values to be minimally decompressed (Paul Ramsey)
-
-
-
- This is useful for routines that only need to examine the initial
- portion of a toasted field.
-
-
-
-
-
-
-
- Allow ALTER TABLE ... SET
- NOT NULL to avoid unnecessary table scans (Sergei
- Kornilov)
-
-
-
- This can be optimized when the table's column constraints can be
- recognized as disallowing nulls.
-
-
-
-
-
-
-
- Allow ALTER TABLE ... SET DATA TYPE changing between
- timestamp and timestamptz to avoid a
- table rewrite when the session time zone is UTC
- (Noah Misch)
-
-
-
- In the UTC time zone, these two data types are
- binary compatible.
-
-
-
-
-
-
-
- Improve speed in converting strings to
- int2 or int4 integers (Andres Freund)
-
-
-
-
-
-
-
- Allow parallelized queries when in SERIALIZABLE
- isolation mode (Thomas Munro)
-
-
-
- Previously, parallelism was disabled when in this mode.
-
-
-
-
-
-
-
- Use pread() and pwrite()
- for random I/O (Oskari Saarenmaa, Thomas Munro)
-
-
-
- This reduces the number of system calls required for I/O.
-
-
-
-
-
-
-
- Improve the speed of setting the process title on
- FreeBSD (Thomas Munro)
-
-
-
-
-
-
-
-
- Monitoring
-
-
-
-
-
-
-
- Allow logging of statements from only a percentage of transactions
- (Adrien Nayrat)
-
-
-
- The parameter
- controls this.
-
-
-
-
-
-
-
- Add progress reporting to CREATE INDEX and
- REINDEX operations (Álvaro Herrera, Peter
- Eisentraut)
-
-
-
- Progress is reported in the pg_stat_progress_create_index
- system view.
-
-
-
-
-
-
-
- Add progress reporting to CLUSTER and
- VACUUM FULL (Tatsuro Yamada)
-
-
-
- Progress is reported in the pg_stat_progress_cluster
- system view.
-
-
-
-
-
-
-
- Add progress reporting to
- (Michael Banck, Bernd Helmle)
-
-
-
- This is enabled with the option .
-
-
-
-
-
-
-
- Add counter of checksum failures to
- pg_stat_database (Magnus Hagander)
-
-
-
-
-
-
-
- Add tracking of global objects in system view
- pg_stat_database (Julien Rouhaud)
-
-
-
- Global objects are shown with a pg_stat_database.datid
- value of zero.
-
-
-
-
-
-
-
- Add the ability to list the contents of the archive directory
- (Christoph Moench-Tegeder)
-
-
-
- The function is pg_ls_archive_statusdir().
-
-
-
-
-
-
-
- Add the ability to list the contents of temporary directories
- (Nathan Bossart)
-
-
-
- The function, pg_ls_tmpdir(),
- optionally allows specification of a tablespace.
-
-
-
-
-
-
-
- Add information about the client certificate to the system view pg_stat_ssl
- (Peter Eisentraut)
-
-
-
- The new columns are client_serial
- and issuer_dn. Column
- clientdn has been renamed to
- client_dn for clarity.
-
-
-
-
-
-
-
- Restrict visibility of rows in pg_stat_ssl
- for unprivileged users (Peter Eisentraut)
-
-
-
-
-
-
-
- At server start, emit a log message including the server
- version number (Christoph Berg)
-
-
-
-
-
-
-
- Prevent logging incomplete startup packet if a new
- connection is immediately closed (Tom Lane)
-
-
-
- This avoids log spam from certain forms of monitoring.
-
-
-
-
-
-
-
- Include the , if set,
- in log messages (Don Seiler)
-
-
-
-
-
-
-
- Make the walreceiver set its application name to the cluster name,
- if set (Peter Eisentraut)
-
-
-
-
-
-
-
- Add the timestamp of the last received standby message to pg_stat_replication
- (Lim Myungkyu)
-
-
-
-
-
-
-
- Add a wait event for fsync
- of WAL segments (Konstantin Knizhnik)
-
-
-
-
-
-
-
-
- Authentication
-
-
-
-
-
-
-
- Add GSSAPI
- encryption support (Robbie Harwood, Stephen Frost)
-
-
-
- This feature allows TCP/IP connections to be encrypted when using
- GSSAPI authentication, without having to set up a separate
- encryption facility such as SSL.
- In support of this, add hostgssenc
- and hostnogssenc record types in pg_hba.conf
- for selecting connections that do or do not use GSSAPI encryption,
- corresponding to the existing hostssl
- and hostnossl record types.
- There is also a new
- libpq option, and a system
- view.
-
-
-
-
-
-
-
- Allow the clientcert
- pg_hba.conf option to check that the database
- user name matches the client certificate's common name
- (Julian Markwort, Marius Timmer)
-
-
-
- This new check is enabled with
- clientcert=verify-full.
-
-
-
-
-
-
-
- Allow discovery of an LDAP server using
- DNS SRV records (Thomas Munro)
-
-
-
- This avoids the requirement of specifying
- ldapserver. It is only supported if
- PostgreSQL is compiled with
- OpenLDAP.
-
-
-
-
-
-
-
-
- Server Configuration
-
-
-
-
-
-
-
- Add ability to enable/disable cluster checksums using (Michael Banck, Michaël Paquier)
-
-
-
- The cluster must be shut down for these operations.
-
-
-
-
-
-
-
- Reduce the default value of to 2ms (Tom Lane)
-
-
-
- This allows autovacuum operations to proceed faster by default.
-
-
-
-
-
-
-
- Allow to specify
- sub-millisecond delays, by accepting fractional values (Tom Lane)
-
-
-
-
-
-
-
- Allow time-based server parameters to use units of microseconds
- (us) (Tom Lane)
-
-
-
-
-
-
-
- Allow fractional input for integer server parameters (Tom Lane)
-
-
-
- For example, SET work_mem = '30.1GB' is now
- allowed, even though work_mem is an integer
- parameter. The value will be rounded to an integer after any
- required units conversion.
-
-
-
-
-
-
-
- Allow units to be defined for floating-point server parameters
- (Tom Lane)
-
-
-
-
-
-
-
- Add and server parameters to control
- WAL file recycling (Jerry Jelinek)
-
-
-
- Avoiding file recycling can be beneficial on copy-on-write file
- systems like ZFS.
-
-
-
-
-
-
-
- Add server parameter to
- control the server's TCP timeout (Ryohei Nagaura)
-
-
-
-
-
-
-
- Allow control of the minimum and maximum SSL
- protocol versions (Peter Eisentraut)
-
-
-
- The server parameters are and .
-
-
-
-
-
-
-
- Add server parameter to report
- the SSL library version used by the server
- (Peter Eisentraut)
-
-
-
-
-
-
-
- Add server parameter
- to control the type of shared memory to use (Andres Freund)
-
-
-
- This allows selection of System V
- shared memory, if desired.
-
-
-
-
-
-
-
-
-
-
- Streaming Replication and Recovery
-
-
-
-
-
-
-
- Allow some recovery parameters to be changed with reload (Peter
- Eisentraut)
-
-
-
- These parameters are ,
- , , and .
-
-
-
-
-
-
-
- Allow the streaming replication timeout () to be set per connection
- (Takayuki Tsunakawa)
-
-
-
- Previously, this could only be set cluster-wide.
-
-
-
-
-
-
-
- Add function pg_promote()
- to promote standbys to primaries (Laurenz Albe, Michaël Paquier)
-
-
-
- Previously, this operation was only possible by using or creating a trigger file.
-
-
-
-
-
-
-
- Allow replication slots to be copied (Masahiko Sawada)
-
-
-
- The functions for this are pg_copy_physical_replication_slot()
- and pg_copy_logical_replication_slot().
-
-
-
-
-
-
-
- Make not count as part of
- (Alexander Kukushkin)
-
-
-
-
-
-
-
- Add an explicit value of current for (Peter Eisentraut)
-
-
-
-
-
-
-
- Make recovery fail if a two-phase transaction
- status file is corrupt (Michaël Paquier)
-
-
-
- Previously, a warning was logged and recovery continued,
- allowing the transaction to be lost.
-
-
-
-
-
-
-
-
- Utility Commands
-
-
-
-
-
-
-
- Add CONCURRENTLY
- option to allow reindexing without locking out writes (Michaël
- Paquier, Andreas Karlsson, Peter Eisentraut)
-
-
-
- This is also controlled by the
- application's option.
-
-
-
-
-
-
-
- Add support for generated
- columns (Peter Eisentraut)
-
-
-
- The content of generated columns are computed from expressions
- (including references to other columns in the same table)
- rather than being specified by INSERT or
- UPDATE commands.
-
-
-
-
-
-
-
- Add a WHERE clause
- to COPY FROM to
- control which rows are accepted (Surafel Temesgen)
-
-
-
- This provides a simple way to filter incoming data.
-
-
-
-
-
-
-
- Allow enumerated values to be added more flexibly
- (Andrew Dunstan, Tom Lane, Thomas Munro)
-
-
-
- Previously, ALTER TYPE
- ... ADD VALUE could not be called in a transaction
- block, unless it was part of the same transaction that created the
- enumerated type. Now it can be called in a later transaction, so
- long as the new enumerated value is not referenced until after it is
- committed.
-
-
-
-
-
-
-
- Add commands to end a transaction and start a new one (Peter
- Eisentraut)
-
-
-
- The commands are COMMIT AND
- CHAIN
- and ROLLBACK AND
- CHAIN.
-
-
-
-
-
-
-
- Add and CREATE
- TABLE options to prevent VACUUM
- from truncating trailing empty pages (Takayuki Tsunakawa)
-
-
-
- These options are vacuum_truncate and
- toast.vacuum_truncate. Use of these options
- reduces VACUUM's locking requirements, but
- prevents returning disk space to the operating system.
-
-
-
-
-
-
-
- Allow VACUUM to skip index cleanup
- (Masahiko Sawada)
-
-
-
- This change adds a VACUUM command
- option INDEX_CLEANUP as well as a table storage
- option vacuum_index_cleanup. Use of this option
- reduces the ability to reclaim space and can lead to index bloat,
- but it is helpful when the main goal is to freeze old tuples.
-
-
-
-
-
-
-
- Add the ability to skip VACUUM and
- ANALYZE operations on tables that cannot be
- locked immediately (Nathan Bossart)
-
-
-
- This option is called SKIP_LOCKED.
-
-
-
-
-
-
-
- Allow VACUUM and ANALYZE
- to take optional Boolean argument specifications (Masahiko Sawada)
-
-
-
-
-
-
-
- Prevent ,
- VACUUM and ANALYZE
- from requesting a lock on
- tables for which the user lacks permission (Michaël Paquier)
-
-
-
- This prevents unauthorized locking, which could interfere with
- user queries.
-
-
-
-
-
-
-
- Add option
- SETTINGS to output non-default optimizer
- settings (Tomas Vondra)
-
-
-
- This output can also be obtained when using
- by setting auto_explain.log_settings.
-
-
-
-
-
-
-
- Add OR REPLACE option to
-
- (Andrew Gierth)
-
-
-
-
-
-
-
- Allow modifications of system catalogs' options using (Peter Eisentraut)
-
-
-
- Modifications of catalogs' reloptions and
- autovacuum settings are now supported. (Setting is still required.)
-
-
-
-
-
-
-
- Use all key columns' names when selecting default constraint
- names for foreign keys (Peter Eisentraut)
-
-
-
- Previously, only the first column name was included in the constraint
- name, resulting in ambiguity for multi-column foreign keys.
-
-
-
-
-
-
-
-
- Data Types
-
-
-
-
-
-
-
- Update assorted knowledge about Unicode to match Unicode 12.1.0
- (Peter Eisentraut)
-
-
-
- This fixes, for example, cases
- where psql would misformat output
- involving combining characters.
-
-
-
-
-
-
-
- Update Snowball stemmer dictionaries with support for new languages
- (Arthur Zakirov)
-
-
-
- This adds word stemming support for Arabic, Indonesian, Irish,
- Lithuanian, Nepali, and Tamil to full
- text search.
-
-
-
-
-
-
-
- Allow creation of collations that report
- string equality for strings that are not bit-wise equal (Peter
- Eisentraut)
-
-
-
- This feature supports nondeterministic collations
- that can define case- and accent-agnostic equality comparisons.
- Thus, for example, a case-insensitive uniqueness constraint on a
- text column can be made more easily than before. This is only
- supported for ICU collations.
-
-
-
-
-
-
-
- Add support for ICU collation attributes on older
- ICU versions (Peter Eisentraut)
-
-
-
- This allows customization of the collation rules in a consistent way
- across all ICU versions.
-
-
-
-
-
-
-
- Allow data
- type name
- to more seamlessly be compared to other text types (Tom Lane)
-
-
-
- Type name now behaves much like a domain over
- type text that has default collation C.
- This allows cross-type comparisons to be processed more efficiently.
-
-
-
-
-
-
-
-
- Functions
-
-
-
-
-
-
-
- Add support for the SQL/JSON path language
- (Nikita Glukhov, Teodor Sigaev, Alexander Korotkov, Oleg Bartunov,
- Liudmila Mantrova)
-
-
-
- This allows execution of complex queries on JSON
- values using an SQL-standard language.
-
-
-
-
-
-
-
- Add support for hyperbolic
- functions (Lætitia Avrot)
-
-
-
- Also add log10() as an alias for
- log(), for standards compliance.
-
-
-
-
-
-
- Improve the accuracy of statistical aggregates like variance()
- by using more precise algorithms (Dean Rasheed)
-
-
-
-
-
-
-
- Allow date_trunc()
- to have an additional argument to control the time zone (Vik
- Fearing, Tom Lane)
-
-
-
- This is faster and simpler than using the AT TIME
- ZONE clause.
-
-
-
-
-
-
-
- Adjust to_timestamp()/to_date()
- functions to be more forgiving of template mismatches (Artur
- Zakirov, Alexander Korotkov, Liudmila Mantrova)
-
-
-
- This new behavior more closely matches the
- Oracle functions of the same name.
-
-
-
-
-
-
-
- Fix assorted bugs in XML functions
- (Pavel Stehule, Markus Winand, Chapman Flack)
-
-
-
- Specifically, in XMLTABLE,
- xpath(), and xmlexists(),
- fix some cases where nothing was output for a node, or an
- unexpected error was thrown, or necessary escaping of XML special
- characters was omitted.
-
-
-
-
-
-
-
- Allow the BY VALUE clause
- in XMLEXISTS and XMLTABLE
- (Chapman Flack)
-
-
-
- This SQL-standard clause has no effect
- in PostgreSQL's implementation, but it
- was unnecessarily being rejected.
-
-
-
-
-
-
-
- Prevent current_schema()
- and current_schemas() from being run by
- parallel workers, as they are not parallel-safe (Michaël Paquier)
-
-
-
-
-
-
-
- Allow RECORD and RECORD[] to be used
- as column types in a query's column definition list for a table function that is declared
- to return RECORD (Elvis Pranskevichus)
-
-
-
-
-
-
-
-
- PL/pgSQL
-
-
-
-
-
-
-
- Allow SQL commands and variables with the same names as those
- commands to be used in the same PL/pgSQL function (Tom Lane)
-
-
-
- For example, allow a variable called comment to
- exist in a function that calls
- the COMMENT SQL command.
- Previously this combination caused a parse error.
-
-
-
-
-
-
-
- Add new optional warning and error checks to PL/pgSQL (Pavel
- Stehule)
-
-
-
- The new checks allow for run-time validation of
- INTO column counts and single-row results.
-
-
-
-
-
-
-
-
- Client Interfaces
-
-
-
-
-
-
-
- Add connection parameter
- to control libpq's TCP
- timeout (Ryohei Nagaura)
-
-
-
-
-
-
-
- Allow libpq (and thus
- psql) to report only the
- SQLSTATE value in error messages (Didier Gautheron)
-
-
-
-
-
-
-
- Add libpq
- function PQresultMemorySize()
- to report the memory used by a query result (Lars Kanis, Tom Lane)
-
-
-
-
-
-
-
- Remove the no-display/debug flag from libpq's
- options connection parameter (Peter Eisentraut)
-
-
-
- This allows this parameter to be set by
- postgres_fdw.
-
-
-
-
-
-
-
- Allow to create variables of data type
- bytea (Ryo Matsumura)
-
-
-
- This allows ECPG clients to interact with bytea data
- directly, rather than using an encoded form.
-
-
-
-
-
-
-
- Add PREPARE AS support to
- ECPG (Ryo Matsumura)
-
-
-
-
-
-
-
-
- Client Applications
-
-
-
-
-
-
-
- Allow to select tables for vacuum
- based on their wraparound horizon (Nathan Bossart)
-
-
-
- The options are and
- .
-
-
-
-
-
-
-
- Allow vacuumdb to disable waiting for locks
- or skipping all-visible pages (Nathan Bossart)
-
-
-
- The options are and
- .
-
-
-
-
-
-
-
- Add colorization to the output of command-line utilities (Peter
- Eisentraut)
-
-
-
- This is enabled by setting the environment variable
- PG_COLOR to always
- or auto. The specific colors used can be
- adjusted by setting the environment variable
- PG_COLORS, using ANSI escape codes for colors.
- For example, the default behavior is equivalent to
- PG_COLORS="error=01;31:warning=01;35:locus=01".
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Add CSV table output mode in
- psql (Daniel Vérité)
-
-
-
- This is controlled by \pset format csv or the
- command-line option.
-
-
-
-
-
-
-
- Show the manual page URL in
- psql's \help output
- for a SQL command (Peter Eisentraut)
-
-
-
-
-
-
-
- Display the IP address in
- psql's \conninfo
- (Fabien Coelho)
-
-
-
-
-
-
-
- Improve tab completion of CREATE TABLE,
- CREATE TRIGGER,
- CREATE EVENT TRIGGER,
- ANALYZE, EXPLAIN,
- VACUUM, ALTER TABLE,
- ALTER INDEX, ALTER DATABASE,
- and ALTER INDEX ALTER COLUMN
- (Dagfinn Ilmari Mannsåker, Tatsuro Yamada, Michaël Paquier,
- Tom Lane, Justin Pryzby)
-
-
-
-
-
-
-
-
- pgbench
-
-
-
-
-
-
-
- Allow values produced by queries to be assigned
- to pgbench variables (Fabien Coelho,
- Álvaro Herrera)
-
-
-
- The command for this is \gset.
-
-
-
-
-
-
-
- Improve precision of pgbench's
- option (Tom Lane)
-
-
-
-
-
-
- Improve pgbench's error reporting with
- clearer messages and return codes (Peter Eisentraut)
-
-
-
-
-
-
-
-
-
-
- Server Applications
-
-
-
-
-
-
-
- Allow control of log file rotation via
- (Kyotaro Horiguchi, Alexander Kuzmenkov, Alexander Korotkov)
-
-
-
- Previously, this was only possible via an SQL
- function or a process signal.
-
-
-
-
-
-
-
- Properly detach the new server process
- during pg_ctl start
- (Paul Guo)
-
-
-
- This prevents the server from being shut down if the shell script
- that invoked pg_ctl is interrupted later.
-
-
-
-
-
-
-
- Allow to use the file system's cloning
- feature, if there is one (Peter Eisentraut)
-
-
-
- The option has the advantages of
- , while preventing the old cluster from
- being changed after the new cluster has started.
-
-
-
-
-
-
-
- Allow specification of the socket directory to use
- in pg_upgrade (Daniel Gustafsson)
-
-
-
- This is controlled by ; the default
- is the current directory.
-
-
-
-
-
-
-
- Allow to disable fsync operations
- (Michaël Paquier)
-
-
-
- This is controlled by the option.
-
-
-
-
-
-
-
- Allow to disable fsync operations
- (Michaël Paquier)
-
-
-
-
-
-
-
- Fix to report accurate
- open_datasync durations on
- Windows (Laurenz Albe)
-
-
-
-
-
-
- pg_dump,
- pg_dumpall,
- pg_restore
-
-
-
-
-
-
-
- When pg_dump emits data
- with INSERT commands rather
- than COPY, allow more than one data row to be
- included in each INSERT (Surafel Temesgen,
- David Rowley)
-
-
-
- The option controlling this is .
-
-
-
-
-
-
-
- Allow pg_dump to emit INSERT
- ... ON CONFLICT DO NOTHING (Surafel Temesgen)
-
-
-
- This avoids conflict failures during restore.
- The option is .
-
-
-
-
-
-
-
- Decouple the order of operations in a
- parallel pg_dump from the order used by
- a subsequent parallel pg_restore (Tom
- Lane)
-
-
-
- This allows pg_restore to perform
- more-fully-parallelized parallel restores, especially in cases
- where the original dump was not done in parallel. Scheduling of a
- parallel pg_dump is also somewhat
- improved.
-
-
-
-
-
-
-
- Allow the setting to be
- specified for pg_dump and
- pg_dumpall (Andrew Dunstan)
-
-
-
- This is primarily useful for making dumps that are exactly
- comparable across different source server versions. It is not
- recommended for normal use, as it may result in loss of precision
- when the dump is restored.
-
-
-
-
-
-
-
- Add option to
- pg_dumpall (Andrew Dunstan)
-
-
-
-
-
-
-
-
-
-
- Source Code
-
-
-
-
-
-
-
- Add command to create
- new table types (Andres Freund, Haribabu Kommi, Álvaro Herrera,
- Alexander Korotkov, Dmitry Dolgov)
-
-
-
- This enables the development of new table
- access methods, which can optimize storage for different
- use cases. The existing heap access method
- remains the default.
-
-
-
-
-
-
-
- Add planner support
- function interfaces to improve optimizer estimates,
- inlining, and indexing for functions (Tom Lane)
-
-
-
- This allows extensions to create planner support functions that
- can provide function-specific selectivity, cost, and row-count
- estimates that can depend on the function's arguments. Support
- functions can also supply simplified representations and index
- conditions, greatly expanding optimization possibilities.
-
-
-
-
-
-
-
- Simplify renumbering manually-assigned OIDs, and establish a new
- project policy for management of such OIDs (John Naylor, Tom Lane)
-
-
-
- Patches that manually assign OIDs for new built-in objects (such as
- new functions) should now randomly choose OIDs in the range
- 8000—9999. At the end of a development cycle, the OIDs used
- by committed patches will be renumbered down to lower numbers,
- currently somewhere in the 4xxx range,
- using the new renumber_oids.pl
- script. This approach should greatly reduce the odds of OID
- collisions between different in-process patches.
-
-
-
- While there is no specific policy reserving any OIDs for external
- use, it is recommended that forks and other projects needing
- private manually-assigned OIDs use numbers in the high
- 7xxx range. This will avoid conflicts
- with recently-merged patches, and it should be a long time before
- the core project reaches that range.
-
-
-
-
-
-
-
- Build Cygwin binaries using dynamic
- instead of static libraries (Marco Atzeri)
-
-
-
-
-
-
-
- Remove configure switch
- (Michaël Paquier)
-
-
-
- A strong random-number source is now required.
-
-
-
-
-
-
-
- printf-family functions, as well
- as strerror
- and strerror_r, now behave uniformly across
- platforms within Postgres code (Tom Lane)
-
-
-
- Notably, printf
- understands %m everywhere; on
- Windows, strerror copes with Winsock error
- codes (it used to do so in backend but not frontend code);
- and strerror_r always follows the GNU return
- convention.
-
-
-
-
-
-
-
- Require a C99-compliant compiler, and MSVC
- 2013 or later on Windows (Andres Freund)
-
-
-
-
-
-
-
- Use pandoc,
- not lynx, for generating plain-text
- documentation output files (Peter Eisentraut)
-
-
-
- This affects only the INSTALL file generated
- during make dist and the seldom-used
- plain-text postgres.txt output file.
- Pandoc produces better output than lynx and avoids some
- locale/encoding issues. Pandoc version 1.13 or later is required.
-
-
-
-
-
-
-
- Support use of images in the PostgreSQL
- documentation (Jürgen Purtz)
-
-
-
-
-
-
-
-
- Additional Modules
-
-
-
-
-
-
-
- Allow ORDER BY sorts
- and LIMIT clauses to be pushed
- to foreign servers in more
- cases (Etsuro Fujita)
-
-
-
-
-
-
-
- Improve optimizer cost accounting for
- postgres_fdw queries (Etsuro Fujita)
-
-
-
-
-
-
-
- Properly honor WITH CHECK OPTION on views
- that reference postgres_fdw tables
- (Etsuro Fujita)
-
-
-
- While CHECK OPTIONs on
- postgres_fdw tables are ignored (because
- the reference is foreign), views on such tables are considered
- local, so this change enforces CHECK OPTIONs
- on them. Previously, only INSERTs and
- UPDATEs with RETURNING
- clauses that returned CHECK OPTION values
- were validated.
-
-
-
-
-
-
-
- Allow pg_stat_statements_reset()
- to be more granular (Haribabu Kommi, Amit Kapila)
-
-
-
- The function now allows reset of statistics for specific databases,
- users, and queries.
-
-
-
-
-
-
-
- Allow control of the log level
- (Tom Dunstan, Andrew Dunstan)
-
-
-
- The default is LOG.
-
-
-
-
-
-
-
- Update rules with new
- punctuation and symbols (Hugh Ranalli, Michaël Paquier)
-
-
-
-
-
-
-
- Allow unaccent to handle some accents
- encoded as combining characters (Hugh Ranalli)
-
-
-
-
-
-
-
- Allow unaccent to remove accents from
- Greek characters (Tasos Maschalidis)
-
-
-
-
-
-
-
- Add a parameter to
- 's bt_index_parent_check()
- function to check each index tuple from the root of the tree
- (Peter Geoghegan)
-
-
-
-
-
-
-
- Improve and
- option handling to match other commands (Tatsuro Yamada)
-
-
-
-
-
-
-
-
-
-
- Acknowledgments
-
-
- The following individuals (in alphabetical order) have contributed to this
- release as patch authors, committers, reviewers, testers, or reporters of
- issues.
-
-
-
- Abhijit Menon-Sen
- Achilleas Mantzios
- Adam Berlin
- Adam Bielanski
- Aditya Toshniwal
- Adrien Nayrat
- Alan Jackson
- Albert Schabhuetl
- Aleksander Alekseev
- Alex Aktsipetrov
- Alex Kliukin
- Alex Macy
- Alexander Korotkov
- Alexander Kukushkin
- Alexander Kuzmenkov
- Alexander Lakhin
- Alexandra Ryzhevich
- Alexey Bashtanov
- Alexey Ermakov
- Alexey Kondratov
- Alexey Kryuchkov
- Alexey Stepanov
- Allison Kaptur
- Álvaro Herrera
- Alyssa Ross
- Amit Kapila
- Amit Khandekar
- Amit Langote
- Amul Sul
- Anastasia Lubennikova
- André Hänsel
- Andrea Gelmini
- Andreas Joseph Krogh
- Andreas Karlsson
- Andreas Kunert
- Andreas Scherbaum
- Andreas Seltenreich
- Andrei Yahorau
- Andres Freund
- Andrew Dunstan
- Andrew Fletcher
- Andrew Gierth
- Andrew Krasichkov
- Andrey Borodin
- Andrey Klychkov
- Andrey Lepikhov
- Andy Abelisto
- Anthony Greene
- Anthony Skorski
- Antonin Houska
- Arne Roland
- Arseny Sher
- Arthur Zakirov
- Ash Marath
- Ashutosh Bapat
- Ashutosh Sharma
- Ashwin Agrawal
- Aya Iwata
- Bartosz Polnik
- Basil Bourque
- Bernd Helmle
- Brad DeJong
- Brigitte Blanc-Lafay
- Bruce Klein
- Bruce Momjian
- Bruno Wolff
- Chapman Flack
- Chen Huajun
- Chris Travers
- Chris Wilson
- Christian Hofstaedtler
- Christoph Berg
- Christoph Moench-Tegeder
- Clemens Ladisch
- Colm McHugh
- Corey Huinker
- Craig Ringer
- Dagfinn Ilmari Mannsåker
- Daisuke Higuchi
- Daniel Fiori
- Daniel Gustafsson
- Daniel Vérité
- Daniel Westermann
- Daniel Wilches
- Darafei Praliaskouski
- Daryl Waycott
- Dave Cramer
- David Binderman
- David Fetter
- David G. Johnston
- David Rowley
- David Steele
- Davy Machado
- Dean Rasheed
- Derek Hans
- Derek Nelson
- Devrim Gündüz
- Dian Fay
- Didier Gautheron
- Dilip Kumar
- Dmitry Dolgov
- Dmitry Marakasov
- Dmitry Molotkov
- Dmitry Shalashov
- Don Seiler
- Donald Dong
- Doug Rady
- Edmund Horner
- Eduards Bezverhijs
- Elvis Pranskevichus
- Emanuel Araújo
- Emre Hasegeli
- Eric Cyr
- Erik Rijkers
- Ertugrul Kahveci
- Etsuro Fujita
- Eugen Konkov
- Euler Taveira
- Fabien Coelho
- Fabrízio de Royes Mello
- Feike Steenbergen
- Filip Rembialkowski
- Gaby Schilders
- Geert Lobbestael
- George Tarasov
- Georgios Kokolatos
- Gianni Ciolli
- Gilles Darold
- Greg Stark
- Grigory Smolkin
- Guillaume Lelarge
- Gunnlaugur Thor Briem
- Gurjeet Singh
- Hadi Moshayedi
- Hailong Li
- Hans Buschmann
- Haribabu Kommi
- Haruka Takatsuka
- Hayato Kuroda
- Heikki Linnakangas
- Hironobu Suzuki
- Hubert Lubaczewski
- Hugh Ranalli
- Ian Barwick
- Ibrar Ahmed
- Ildar Musin
- Insung Moon
- Ioseph Kim
- Isaac Morland
- Ivan Panchenko
- Jack Kelly
- Jacob Champion
- Jaime Casanova
- Jakob Egger
- Jakub Glapa
- Jakub Janecek
- James Coleman
- James Inform
- James Robinson
- James Sewell
- James Tomson
- Jan Chochol
- Jaroslav Sivy
- Jean-Christophe Arnu
- Jean-Marc Voillequin
- Jean-Pierre Pelletier
- Jeevan Chalke
- Jeevan Ladhe
- Jeff Davis
- Jeff Janes
- Jeremy Evans
- Jeremy Schneider
- Jeremy Smith
- Jerry Jelinek
- Jesper Pedersen
- Jianing Yang
- Jie Zhang
- Jim Nasby
- Jimmy Yih
- Joe Conway
- Joe Wildish
- Joerg Sonnenberger
- John Klann
- John Naylor
- Jonah Harris
- Jonathan S. Katz
- Jorge Gustavo Rocha
- José Arthur Benetasso Villanova
- Joshua D. Drake
- Juan José Santamaría Flecha
- Julian Hsiao
- Julian Markwort
- Julian Schauder
- Julien Rouhaud
- Jürgen Purtz
- Jürgen Strobel
- Justin Pryzby
- Kaiting Chen
- Karen Huddleston
- Karl Czajkowski
- Karl O. Pinc
- Keiichi Hirobe
- Keith Fiske
- Ken Tanzer
- Kenji Uno
- Kevin Grittner
- Kevin Hale Boyes
- Kieran McCusker
- Kirk Jamison
- Kohei KaiGai
- Konstantin Knizhnik
- Konstantin Kuznetsov
- Kristjan Tammekivi
- Kuntal Ghosh
- Kyle Samson
- Kyotaro Horiguchi
- Lætitia Avrot
- Lars Kanis
- Laurenz Albe
- Lim Myungkyu
- Liu Huailing
- Liudmila Mantrova
- Lloyd Albin
- Luca Ferrari
- Luis M. Carril
- Lukas Eder
- Lukas Fittl
- Madelaine Thibaut
- Madeleine Thompson
- Magnus Hagander
- Mahendra Singh
- Mai Peng
- Maksim Milyutin
- Maksym Boguk
- Malthe Borch
- Manuel Rigger
- Marco Atzeri
- Marco Slot
- Marina Polyakova
- Mario De Frutos Dieguez
- Marius Timmer
- Mark Chambers
- Mark Dilger
- Marko Tiikkaja
- Markus Winand
- Martín Marqués
- Masahiko Sawada
- Masao Fujii
- Mateusz Guzik
- Mathias Brossard
- Matt Williams
- Matthias Otterbach
- Matvey Arye
- Melanie Plageman
- Mi Tar
- Michael Banck
- Michael Davidson
- Michael Meskes
- Michael Paquier
- Michael Vitale
- Michel Pelletier
- Mikalai Keida
- Mike Palmiotto
- Mithun Cy
- Morgan Owens
- Murat Kabilov
- Nathan Bossart
- Nawaz Ahmed
- Neeraj Kumar
- Nick Barnes
- Nico Williams
- Nikita Glukhov
- Nikolay Shaplov
- Ning Yu
- Nishant Fnu
- Noah Misch
- Norbert Benkocs
- Noriyoshi Shinoda
- Oleg Bartunov
- Oleg Samoilov
- Oleksii Kliukin
- Ondrej Bouda
- Oskari Saarenmaa
- Pan Bian
- Patrick Francelle
- Patrick McHardy
- Paul A. Jungwirth
- Paul Bonaud
- Paul Guo
- Paul Martinez
- Paul Ramsey
- Paul Schaap
- Paul van der Linden
- Pavan Deolasee
- Pavel Oskin
- Pavel Raiskup
- Pavel Stehule
- Peifeng Qiu
- Peter Billen
- Peter Eisentraut
- Peter Geoghegan
- Peter Neave
- Petr Fedorov
- Petr Jelínek
- Petr Slavov
- Petru-Florin Mihancea
- Phil Bayer
- Phil Florent
- Philip Dubé
- Pierre Ducroquet
- Piotr Gabriel Kosinski
- Piotr Stefaniak
- Piotr Wlodarczyk
- Prabhat Sahu
- Quentin Rameau
- Rafael Castro
- Rafia Sabih
- Rahila Syed
- Rajkumar Raghuwanshi
- Rares Salcudean
- Raúl Marín Rodríguez
- Regina Obe
- Renaud Navarro
- Richard Guo
- Rick Otten
- Rikard Falkeborn
- RK Korlapati
- Robbie Harwood
- Robert Haas
- Robert Treat
- Robert Vollmert
- Roger Curley
- Roman Zharkov
- Ronan Dunklau
- Rui Hai Jiang
- Rushabh Lathia
- Ryan Lambert
- Ryo Matsumura
- Ryohei Nagaura
- Ryohei Takahashi
- Samuel Williams
- Sand Stone
- Sanyo Capobiango
- Satoru Koizumi
- Sean Johnston
- Serge Latyntsev
- Sergei Kornilov
- Sergey Pashkov
- Sergio Conde Gómez
- Shawn Debnath
- Shay Rojansky
- Sho Kato
- Shohei Mochizuki
- Shouyu Luo
- Simon Riggs
- Sivasubramanian Ramasubramanian
- Slawomir Chodnicki
- Stas Kelvish
- Stefan Kadow
- Stepan Yankevych
- Stephen Amell
- Stephen Frost
- Steve Rogerson
- Steve Singer
- Steven Winfield
- Surafel Temesgen
- Suraj Kharage
- Suresh Kumar R
- Takayuki Tsunakawa
- Takeshi Ideriha
- Takuma Hoshiai
- Tasos Maschalidis
- Tatsuo Ishii
- Tatsuro Yamada
- Teodor Sigaev
- Thom Brown
- Thomas Munro
- Thomas Poty
- Tillmann Schulz
- Tim Möhlmann
- Timur Birsh
- Tobias Bussmann
- Tom Cassidy
- Tom Dunstan
- Tom Gottfried
- Tom Lane
- Tomas Vondra
- Tushar Ahuja
- Ulf Adams
- Vaishnavi Prabakaran
- Victor Petrovykh
- Victor Wagner
- Victor Yegorov
- Vijaykumar Jain
- Vik Fearing
- Vlad Sterzhanov
- Vladimir Baranoff
- Vladimir Kriukov
- Wu Fei
- Yaroslav Schekin
- Yi Huang
- Yoshikazu Imai
- Yugo Nagata
- Yulian Khodorkovskiy
- Yuming Wang
- YunQiang Su
- Yuri Kurenkov
- Yusuke Egashira
- Yuzuko Hosoya
- Zhou Digoal
-
-
-
-
diff --git a/postgresql/release-13.xml b/postgresql/release-13.xml
new file mode 100644
index 000000000..8bb88243a
--- /dev/null
+++ b/postgresql/release-13.xml
@@ -0,0 +1,3034 @@
+
+
+
+
+
+ Release 13
+
+
+ Release date:
+ 2020-XX-XX, CURRENT AS OF 2020-05-03
+
+
+
+ Overview
+
+
+ Major enhancements in PostgreSQL 13 include:
+
+
+
+
+
+
+
+
+
+
+
+
+
+ The above items are explained in more detail in the sections below.
+
+
+
+
+
+
+ Migration to Version 13
+
+
+ A dump/restore using or use of or logical replication is required for those
+ wishing to migrate data from any previous release. See for general information on migrating to new major
+ releases.
+
+
+
+ Version 13 contains a number of changes that may affect compatibility
+ with previous releases. Observe the following incompatibilities:
+
+
+
+
+
+
+
+
+ Change SIMILAR
+ TO ... ESCAPE NULL to return NULL
+ (Tom Lane)
+
+
+
+ This new behavior matches the SQL specification.
+ Previously this caused the escape to be set to the default backslash
+ character. The previous behavior has been retained in old views
+ by keeping the original function unchanged. This also applies to
+ substring(text FROM pattern ESCAPE text).
+
+
+
+
+
+
+
+ Have jsonb_to_tsvector()
+ properly check "string" parameter (Dominik Czarnota)
+
+
+
+
+
+
+
+ In , when using adjacent asterisks with braces,
+ e.g. ".*{2}.*{3}", properly interpret that as ".*{5}" (Nikita Glukhov)
+
+
+
+
+
+
+
+ Change the way non-default values affect concurrency
+ (Thomas Munro)
+
+
+
+ Previously, this value was adjusted before effecting the number of
+ concurrent requests. This value is now used directly. Conversion of
+ old values to new ones can be done using:
+
+
+
+ SELECT round(sum(OLD / n::float)) FROM generate_series(1, OLD) s(n);
+
+
+
+
+
+
+
+ Prevent display of auxiliary processes in and
+ system views (Euler Taveira)
+
+
+
+ Queries that join these views to and wish to see auxiliary processes
+ will need to use left joins.
+
+
+
+
+
+
+
+ Fix 's bt_metap()
+ to return more appropriate data types that are less likely to overflow
+ (Peter Geoghegan)
+
+
+
+
+
+
+
+ Rename some recovery-related wait
+ events (Fujii Masao)
+
+
+
+ Rename RecoveryWalAll
+ to RecoveryWalStream
+ and RecoveryWalStream to
+ RecoveryRetrieveRetryInterval.
+
+
+
+
+
+
+
+ Fix ALTER FOREIGN
+ TABLE ... RENAME COLUMN to return a more appropriate
+ command tag (Fujii Masao)
+
+
+
+ Previously it returned ALTER TABLE, but now returns
+ ALTER FOREIGN TABLE.
+
+
+
+
+
+
+
+ Fix ALTER
+ MATERIALIZED VIEW ... RENAME COLUMN to return a more
+ appropriate command tag (Fujii Masao)
+
+
+
+ Previously it returned ALTER TABLE, but now returns
+ ALTER MATERIALIZED VIEW.
+
+
+
+
+
+
+
+ Remove support for defining operator
+ classes using pre-PostgreSQL
+ 8.0 syntax (Daniel Gustafsson)
+
+
+
+
+
+
+
+ Remove support for defining foreign key
+ constraints using pre-PostgreSQL
+ 7.3 syntax (Daniel Gustafsson)
+
+
+
+
+
+
+
+ Remove support for "opaque" pseudo-types used by
+ pre-PostgreSQL 7.3 servers (Daniel
+ Gustafsson)
+
+
+
+
+
+
+
+
+ Changes
+
+
+ Below you will find a detailed account of the changes between
+ PostgreSQL 13 and the previous major
+ release.
+
+
+
+ Server
+
+
+ Partitioning
+
+
+
+
+
+
+
+ Improve cases where pruning of partitions can happen
+ (Yuzuko Hosoya, Amit Langote, Álvaro Herrera)
+
+
+
+
+
+
+
+ Allow partitionwise
+ joins to happen in more cases (Ashutosh Bapat, Etsuro Fujita,
+ Amit Langote, Tom Lane)
+
+
+
+ For example, partitionwise joins can now happen between partitioned
+ tables even when their partition bounds do not match exactly.
+
+
+
+
+
+
+
+ Allow BEFORE row-level triggers on partitioned tables (Álvaro
+ Herrera)
+
+
+
+ These triggers cannot change which partition is the destination.
+
+
+
+
+
+
+
+ Allow partitioned tables to be logically replicated via publications (Amit Langote)
+
+
+
+ Previously, partitions had to be replicated individually. Now
+ partitioned tables can be published explicitly causing all partitions
+ to be automatically published. Addition/removal of partitions from
+ partitioned tables are automatically added/removed from publications.
+ The option
+ publish_via_partition_root controls whether
+ changes to partitions are published as their own or their
+ ancestor's.
+
+
+
+
+
+
+
+ Allow logical replication into partitioned tables on subscribers
+ (Amit Langote)
+
+
+
+ Previously, subscribers could only receive rows into non-partitioned
+ tables.
+
+
+
+
+
+
+
+ Allow ROW values
+ to be used as partitioning expressions (Amit Langote)
+
+
+
+
+
+
+
+
+ Indexes
+
+
+
+
+
+
+
+ More efficiently store duplicates in btree indexes
+ (Anastasia Lubennikova, Peter Geoghegan)
+
+
+
+ This allows efficient btree indexing of low cardinality columns
+ by storing duplicate keys only once. Users upgrading
+ with will need to use to make use of this feature.
+
+
+
+
+
+
+
+ Allow and indexes for box/point distance lookups (Nikita
+ Glukhov)
+
+
+
+
+
+
+
+ Allow indexes to more efficiently handle
+ NOT restrictions (Nikita Glukhov, Alexander
+ Korotkov, Tom Lane, Julien Rouhaud)
+
+
+
+
+
+
+
+ Allow index operator classes
+ to take parameters (Nikita Glukhov)
+
+
+
+
+
+
+
+ Allow CREATE INDEX to specify the GiST signature
+ length and maximum number of integer ranges (Nikita Glukhov)
+
+
+
+ Indexes created on four and eight-byte integer
+ array, tsvector,
+ , , and columns can now control these GiST index parameters,
+ rather than using the defaults.
+
+
+
+
+
+
+
+ Prevent indexes that use non-default collations from being added as a table's unique or primary
+ key constraint (Tom Lane)
+
+
+
+ The index and column collations must now match so the index's
+ uniqueness matches the column's uniqueness.
+
+
+
+
+
+
+
+
+
+ Optimizer
+
+
+
+
+
+
+
+ Improve the optimizer's selectivity estimation for
+ containment/match operators (Tom Lane)
+
+
+
+
+
+
+
+ Allow setting statistics target
+ for extended statistics
+ (Tomas Vondra)
+
+
+
+ This is controlled with the new command option ALTER
+ STATISTICS ... SET STATISTICS. Previously this was computed
+ based on more general statistics target settings.
+
+
+
+
+
+
+
+ Allow use of multiple extended statistics objects in a single query
+ (Tomas Vondra)
+
+
+
+
+
+
+
+ Allow use of extended statistics objects for OR clauses and IN/ANY constant
+ lists (Pierre Ducroquet, Tomas Vondra)
+
+
+
+
+
+
+
+ Allow functions in FROM clauses to be moved to their
+ reference sites if they evaluate to constants (Alexander Kuzmenkov,
+ Aleksandr Parfenov)
+
+
+
+
+
+
+
+
+ General Performance
+
+
+
+
+
+
+
+ Implement incremental
+ sorting (James Coleman, Alexander Korotkov, Tomas Vondra)
+
+
+
+ If a result is already sorted by several leading keys, this
+ allows for batch sorting of additional trailing keys because the
+ previous keys are already equal. This is controlled by .
+
+
+
+
+
+
+
+ Improve the performance of sorting inet values (Brandur Leach)
+
+
+
+
+
+
+
+ Allow hash aggregation
+ to use disk storage for large aggregation result sets (Jeff Davis)
+
+
+
+ Previously, hash aggregation was avoided if it was expected to use
+ more than memory. This is controlled
+ by .
+
+
+
+
+
+
+
+ Allow grouping sets to
+ use hash aggregation with disk storage for large grouping set results
+ (Jeff Davis)
+
+
+
+ Previously, hash aggregation was avoided if it was expected to use
+ more than memory. This is controlled
+ by .
+
+
+
+
+
+
+
+ Allow inserts to trigger activity
+ (Laurenz Albe, Darafei Praliaskouski)
+
+
+
+ This new behavior reduces the work necessary when the table needs to
+ be frozen and allows pages to be set as all-visible. All-visible pages
+ allow index-only scans to access fewer heap rows.
+
+
+
+
+
+
+
+ Add to control I/O
+ concurrency for maintenance operations (Thomas Munro)
+
+
+
+
+
+
+
+ Allow skipping of WAL for full table writes if is minimal (Kyotaro
+ Horiguchi)
+
+
+
+ Relations larger than
+ will have their files fsync'ed rather than generating
+ WAL. Previously this was done only for
+ COPY operations, but the implementation had a bug
+ that could cause data loss during crash recovery.
+
+
+
+
+
+
+
+ Enable Unix-domain sockets
+ support on Windows (Peter Eisentraut)
+
+
+
+
+
+
+
+ Improve the performance when replaying commands when many tablespaces are
+ in use (Fujii Masao)
+
+
+
+
+
+
+
+ Improve performance for truncation
+ of very large relations (Kirk Jamison)
+
+
+
+
+
+
+
+ Improve speed of decompression and
+ the retrieval of only the leading bytes of TOAST
+ values (Binguo Bao, Andrey Borodin)
+
+
+
+ Previously, TOAST values were fully fetched and
+ only the requested leading bytes were decompressed and returned.
+ Now, only the requested bytes are fetched.
+
+
+
+
+
+
+
+ Improve performance of /NOTIFY (Martijn van
+ Oosterhout)
+
+
+
+
+
+
+
+ Improve the efficiency of removing duplicate events (Tom Lane)
+
+
+
+
+
+
+
+ Use lookup tables to speed up integer to text conversion (David Fetter)
+
+
+
+
+
+
+
+ Reduce memory usage for query strings that contain multiple
+ SQL statements (Amit Langote)
+
+
+
+
+
+
+
+
+ Monitoring
+
+
+
+
+
+
+
+ Allow ,
+ , , and to track WAL usage
+ statistics (Kirill Bychik, Julien Rouhaud)
+
+
+
+
+
+
+
+ Allow a sample of statements to be logged (Adrien Nayrat)
+
+
+
+ A ratio of statements
+ taking over duration
+ will be logged.
+
+
+
+
+
+
+
+ Add the backend type to csvlog and optionally log output (Peter Eisentraut)
+
+
+
+
+
+
+
+ Improve control of prepared statement parameter logging (Alexey
+ Bashtanov, Álvaro Herrera)
+
+
+
+ The GUC setting controls the maximum length
+ of parameter values output during statement non-error logging, and
+ does the
+ same for error statement logging. Previously, prepared statement
+ parameters were not logged during errors.
+
+
+
+
+
+
+
+ Make buffer counters 64-bits
+ wide to avoid overflow (Álvaro Herrera)
+
+
+
+
+
+
+
+ Allow function call backtraces of errors to be logged (Peter
+ Eisentraut, Álvaro Herrera)
+
+
+
+ Server variable specifies
+ which C functions should generate backtraces on error.
+
+
+
+
+
+
+
+ Add min() and
+ max() aggregates for pg_lsn (Fabrízio
+ de Royes Mello)
+
+
+
+ This is useful for monitoring queries.
+
+
+
+
+
+
+
+
+ System Views
+
+
+
+
+
+
+
+ Add leader_pid to to report parallel worker ownership
+ (Julien Rouhaud)
+
+
+
+
+
+
+
+ Add system view pg_stat_progress_basebackup
+ to report the progress of streaming base backups (Fujii Masao)
+
+
+
+
+
+
+
+ Add system view pg_stat_progress_analyze
+ to report progress (Álvaro
+ Herrera, Tatsuro Yamada, Vinayak Pokale)
+
+
+
+
+
+
+
+ Add columns to the pg_stat_replication
+ system view to report how much logical decoding information has been
+ spilled to disk (Tomas Vondra)
+
+
+
+
+
+
+
+ Add system view pg_shmem_allocations
+ to display shared memory usage (Andres Freund, Robert Haas)
+
+
+
+
+
+
+
+ Create pg_stat_slru
+ system view to monitor internal SLRU caches
+ (Tomas Vondra)
+
+
+
+
+
+
+
+ Allow to be set up
+ to 1MB (Vyacheslav Makarov)
+
+
+
+ The previous maximum was 100kB.
+
+
+
+
+
+
+
+
+ Wait Events
+
+
+
+
+
+
+
+ Add wait event for posix_fallocate() (Thomas
+ Munro)
+
+
+
+
+
+
+
+ Add wait event VacuumDelay to report on cost-based vacuum delay
+ (Justin Pryzby)
+
+
+
+
+
+
+
+ Add wait events for WAL archive and recovery pause
+ (Fujii Masao)
+
+
+
+ The new events are BackupWaitWalArchive and RecoveryPause.
+
+
+
+
+
+
+
+ Add wait events RecoveryConflictSnapshot and
+ RecoveryConflictTablespace to monitor recovery conflicts (Masahiko
+ Sawada)
+
+
+
+
+
+
+
+ Improve performance of wait events on BSD-based
+ systems (Thomas Munro)
+
+
+
+
+
+
+
+
+ Authentication
+
+
+
+
+
+
+
+ Only allow superusers to view the setting (Insung Moon)
+
+
+
+ This was changed as a security precaution.
+
+
+
+
+
+
+
+ Change the default minimum TLS version from 1.0
+ to 1.2 (Peter Eisentraut)
+
+
+
+ This is controlled by .
+
+
+
+
+
+
+
+
+ Server Configuration
+
+
+
+
+
+
+
+ Tighten rules on which utility commands are possible in mode (Robert Haas)
+
+
+
+ This also increases the number of utility commands that can run in
+ parallel queries.
+
+
+
+
+
+
+
+ Allow to be changed
+ after server start (Peter Eisentraut)
+
+
+
+
+
+
+
+ Disallow non-superusers from modifying system tables when is set (Peter Eisentraut)
+
+
+
+ Previously, if
+ was set at server start, non-superusers could issue
+ INSERT/UPDATE/DELETE
+ commands on system tables.
+
+
+
+
+
+
+
+
+
+
+ Streaming Replication and Recovery
+
+
+
+
+
+
+
+ Allow streaming replication configuration settings to be changed by
+ reload (Sergei Kornilov)
+
+
+
+ Previously, a server restart was required to change
+ and .
+
+
+
+
+
+
+
+ Allow WAL receivers use a temporary replication slot
+ if a permanent one is not specified (Peter Eisentraut, Sergei Kornilov)
+
+
+
+ This behavior can be enabled using .
+
+
+
+
+
+
+
+ Allow replication slot storage to be limited by (Kyotaro Horiguchi)
+
+
+
+ Replication slots that exceed this value are invalidated.
+
+
+
+
+
+
+
+ Allow standby promotion
+ to cancel any requested pause (Fujii Masao)
+
+
+
+ Previously, promotion could not happen while the standby was in
+ paused state.
+
+
+
+
+
+
+
+ Generate an error if recovery does not reach the specified recovery target
+ (Leif Gunnar Erlandsen, Peter Eisentraut)
+
+
+
+ Previously, the end of the WAL would promote the
+ standby, even if the target was not reached.
+
+
+
+
+
+
+
+ Allow control over how much memory is used by logical decoding before
+ it is spilled to disk (Tomas Vondra, Dilip Kumar, Amit Kapila)
+
+
+
+ This is controlled by .
+
+
+
+
+
+
+
+ Allow WAL recovery to continue even if invalid
+ pages are referenced (Fujii Masao)
+
+
+
+ This is enabled using .
+
+
+
+
+
+
+
+
+ Utility Commands
+
+
+
+
+
+
+
+ Allow to process indexes in parallel
+ (Masahiko Sawada, Amit Kapila)
+
+
+
+ The new PARALLEL option controls this.
+
+
+
+
+
+
+
+ Allow FETCH FIRST
+ to use WITH TIES to return any additional rows
+ that match the last result row (Surafel Temesgen)
+
+
+
+
+
+
+
+ Report planning-time buffer usage in 's
+ BUFFER output (Julien Rouhaud)
+
+
+
+
+
+
+
+ Have CREATE TABLE
+ LIKE propagate CHECK's NO
+ INHERIT property to created tables (Ildar Musin, Chris
+ Travers)
+
+
+
+
+
+
+
+ When using LOCK
+ TABLE on a partitioned table, do not check permissions
+ on the child tables (Amit Langote)
+
+
+
+
+
+
+
+ Allow OVERRIDING USER
+ VALUE on inserts into identity columns (Dean Rasheed)
+
+
+
+
+
+
+
+ Add clause DROP
+ EXPRESSION to remove generated properties from columns
+ (Peter Eisentraut)
+
+
+
+
+
+
+
+ Fix bugs in ALTER TABLE when later clauses overlap
+ changes made by earlier clauses in the same command (Tom Lane)
+
+
+
+
+
+
+
+ Add syntax to rename view columns
+ (Fujii Masao)
+
+
+
+ This was previously possible only using ALTER TABLE RENAME
+ COLUMN.
+
+
+
+
+
+
+
+ Add options useful for extensions,
+ like TOAST and I/O functions control (Tomas
+ Vondra, Tom Lane)
+
+
+
+
+
+
+
+ Add LOCALE
+ option (Peter Eisentraut)
+
+
+
+ This combines existing options LC_COLLATE and
+ LC_CTYPE into a single option.
+
+
+
+
+
+
+
+ Allow to disconnect users so
+ drop succeeds (Pavel Stehule, Amit Kapila)
+
+
+
+ This is enabled by WITH FORCE.
+
+
+
+
+
+
+
+ Add C structure member tg_updatedcols
+ to record updated columns to C triggers (Peter Eisentraut)
+
+
+
+
+
+
+
+ Add FOREIGN to ALTER statements,
+ if appropriate (Luis Carril)
+
+
+
+ WHAT IS THIS ABOUT?
+
+
+
+
+
+
+
+
+ Data Types
+
+
+
+
+
+
+
+ Add polymorphic data types for use by functions requiring compatible
+ arguments (Pavel Stehule)
+
+
+
+ The new data types are anycompatible,
+ anycompatiblearray, anycompatiblenonarray, and anycompatiblerange.
+
+
+
+
+
+
+
+ Add SQL data type xid8 to expose FullTransactionId
+ (Thomas Munro)
+
+
+
+ The xid data type is only four bytes so does not show the transaction
+ epoch.
+
+
+
+
+
+
+
+ Add data type regcollation and
+ helper functions for system collations (Julien Rouhaud)
+
+
+
+
+
+
+
+ Use the glibc version in some cases as the collation version (Thomas Munro)
+
+
+
+ If the glibc version changes, a warning will be issued when a
+ mismatching collation is used.
+
+
+
+
+
+
+
+ Add support for collation versions on Windows (Thomas Munro)
+
+
+
+
+
+
+
+ Allow ROW values
+ values to have their members extracted with suffix notation (Tom Lane)
+
+
+
+ For example, (ROW(4, 5.0)).f1 returns 4.
+
+
+
+
+
+
+
+
+ Functions
+
+
+
+
+
+
+
+ Add alternate version of jsonb_setI()
+ with special NULL handling (Andrew Dunstan)
+
+
+
+ The new function, jsonb_set_lax(), allows null
+ new values to either set the specified key to JSON
+ null, delete the key, raise exception, or ignore the operation.
+ IS 'return_target' CLEAR?
+
+
+
+
+
+
+
+ Add jsonpath .datetime()
+ method (Nikita Glukhov, Teodor Sigaev, Oleg Bartunov, Alexander
+ Korotkov)
+
+
+
+ This allows json values to be converted to timestamps, which can
+ then be processed in jsonpath expressions. This also adds jsonpath
+ functions that support time zone-aware output.
+
+
+
+
+
+
+
+ Add SQL functions NORMALIZE()
+ to normalize Unicode strings, and IS
+ NORMALIZED to check for normalization (Peter
+ Eisentraut)
+
+
+
+
+
+
+
+ Allow Unicode
+ escapes, e.g., E'\u####', U&'\####', to specify any
+ character available in the database encoding, even when the database
+ encoding is not UTF-8 (Tom Lane)
+
+
+
+ The Unicode characters must be available in the database encoding.
+
+
+
+
+
+
+
+ Allow to_date()
+ and to_timestamp() to recognize non-English
+ month/day names (Juan José Santamaría Flecha, Tom Lane)
+
+
+
+ The names recognized are the same as those output by to_char()
+ with the same format codes.
+
+
+
+
+
+
+
+ Add format specifications FF1-FF6 to control display of 1-6 subsecond
+ digits (Alexander Korotkov, Nikita Glukhov, Teodor Sigaev, Oleg
+ Bartunov)
+
+
+
+ These patterns can be used by to_char(),
+ to_timestamp(), and jsonpath's
+ .datetime().
+
+
+
+
+
+
+
+ Add SSSSS time format specification as an
+ SQL standard alias for SSSS
+ (Nikita Glukhov, Alexander Korotkov)
+
+
+
+
+
+
+
+ Add function gen_random_uuid()
+ to generate version 4 UUIDs (Peter Eisentraut)
+
+
+
+ Previously UUID generation functions were only
+ available via external modules and .
+
+
+
+
+
+
+
+ Add greatest-common-denominator (gcd) and
+ least-common-multiple (lcm) functions (Vik Fearing)
+
+
+
+
+
+
+
+ Improve the performance and accuracy of square root and natural log
+ (ln) output (Dean Rasheed)
+
+
+
+
+
+
+
+ Add function min_scale()
+ that returns the number of digits to the right the decimal point
+ that is required to represent the numeric value with full precision
+ (Pavel Stehule)
+
+
+
+
+
+
+
+ Add function trim_scale()
+ to reduce the scale of a number by removing trailing zeros (Pavel
+ Stehule)
+
+
+
+
+
+
+
+ Add commutators of distance
+ operators (Nikita Glukhov)
+
+
+
+ For example, previously only point <-> line was supported,
+ now line <-> point works too.
+
+
+
+
+
+
+
+ Create xid8 versions of all transaction id functions
+ (Thomas Munro)
+
+
+
+ The old function names were kept for backward compatibility. DO WE
+ HAVE NEW NAMES?
+
+
+
+
+
+
+
+ Allow get_bit()
+ and set_bit() to set bits beyond 256MB of bytea
+ data (Movead Li)
+
+
+
+
+
+
+
+ Allow advisory-lock
+ functions to be used in some parallel operations (Tom Lane)
+
+
+
+
+
+
+
+ Add the ability to remove an object's dependency on an extension
+ (Álvaro Herrera)
+
+
+
+ The object can be a function, materialized view, index, or trigger.
+ The syntax is ALTER .. NO DEPENDS ON.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Improve performance of simple PL/pgSQL expressions (Tom Lane,
+ Amit Langote)
+
+
+
+
+
+
+
+ Improve the performance of PL/pgSQL functions that use immutable
+ expressions (Konstantin Knizhnik)
+
+
+
+
+
+
+
+
+ Client Interfaces
+
+
+
+
+
+
+
+ Allow libpq clients to require channel binding (Jeff Davis)
+
+
+
+ Using the libpq connection parameter channel_binding
+ forces the other end of the TLS connection to prove
+ it knows the user's password. This prevents man-in-the-middle attacks.
+
+
+
+
+
+
+
+ Add libpq connection parameters to control the min/max
+ TLS version (Daniel Gustafsson)
+
+
+
+ The settings are and .
+
+
+
+
+
+
+
+ Tighten line length and comment detection in .pgpass files (Fujii Masao)
+
+
+
+
+
+
+
+ Allow specification of passwords to unlock client certificates (Craig
+ Ringer, Andrew Dunstan)
+
+
+
+ This is specified by the
+ connection option.
+
+
+
+
+
+
+
+ Allow DER-encoded client certificates (Craig Ringer,
+ Andrew Dunstan)
+
+
+
+
+
+
+
+
+ Client Applications
+
+
+
+
+
+
+
+
+
+
+ Add the transaction status (%x) to the default psql
+ prompts (Vik Fearing)
+
+
+
+
+
+
+
+ Allow the secondary psql prompt to be same
+ number of spaces as the primary prompt (Thomas Munro)
+
+
+
+ This is accomplished by setting PROMPT2 to %w.
+
+
+
+
+
+
+
+ Allow \g and \gx to
+ change any \pset output
+ options for a single command (Tom Lane)
+
+
+
+ This allows syntax like \g (expand=on), which is equivalent to \gx.
+
+
+
+
+
+
+
+ Add psql commands to report operator
+ classes and operator families (Sergey Cherkashin, Nikita Glukhov,
+ Alexander Korotkov)
+
+
+
+ The new commands are \dAc, \dAf, \dAo, and \dAp.
+
+
+
+
+
+
+
+ Show table persistence in psql's \dt+ and related commands
+ (David Fetter)
+
+
+
+ In verbose mode, the table/index/view shows if the object is permanent,
+ temporary, or unlogged.
+
+
+
+
+
+
+
+ Improve output of psql \d for TOAST
+ tables (Justin Pryzby)
+
+
+
+
+
+
+
+ Adjust display of psql's \e query (Tom Lane)
+
+
+
+ When exiting the editor, if the query doesn't end with a semicolon
+ or \g, the query buffer contents will now be displayed.
+
+
+
+
+
+
+
+ Add \warn command to
+ psql (David Fetter)
+
+
+
+ This is like \echo except that the text is sent to stderr instead
+ of stdout.
+
+
+
+
+
+
+
+ Add the PostgreSQL home page to command-line
+ output (Peter Eisentraut)
+
+
+
+
+
+
+
+
+ pgbench
+
+
+
+
+
+
+
+ Allow pgbench to partition its 'accounts' table (Fabien Coelho)
+
+
+
+ This allows performance testing of partitioning.
+
+
+
+
+
+
+
+ Add pgbench command \aset, which behaves like \gset, but for multiple
+ queries (Fabien Coelho)
+
+
+
+
+
+
+
+ Allow pgbench to generate its data server-side, rather than client side
+ (Fabien Coelho)
+
+
+
+
+
+
+
+ Allow pgbench to dump script contents using
+ (Fabien Coelho)
+
+
+
+
+
+
+
+
+
+
+ Server Applications
+
+
+
+
+
+
+
+ Generate backup manifests for base backups, and verify them (Robert
+ Haas)
+
+
+
+ A new tool can verify backups.
+
+
+
+
+
+
+
+ Have estimate the
+ total backup size by default (Fujii Masao)
+
+
+
+ This computation allows pg_stat_progress_analyze
+ to show progress, and can be disabled by using the
+ option. Previously, this
+ computation happened only if was used.
+
+
+
+
+
+
+
+ Add
+ option to configure standbys (Paul Guo, Jimmy Yih, Ashwin Agrawal)
+
+
+
+ This matches 's
+ option.
+
+
+
+
+
+
+
+ Allow pg_rewind to use the target
+ cluster's to retrieve needed
+ WAL (Alexey Kondratov)
+
+
+
+ This is enabled using the
+ / option.
+
+
+
+
+
+
+
+ Have pg_rewind automatically run crash
+ recovery before rewinding (Paul Guo, Jimmy Yih, Ashwin Agrawal)
+
+
+
+ This can be disabled by using .
+
+
+
+
+
+
+
+ Increase information
+ reported by pg_waldump (Fujii Masao)
+
+
+
+
+
+
+
+ Add
+ option to suppress non-error output
+ (Andres Freund, Robert Haas)
+
+
+
+
+
+
+
+ Allow
+ to dump data from foreign
+ servers (Luis Carril)
+
+
+
+
+
+
+
+ Allow vacuum commands run by to operate in parallel mode
+ (Masahiko Sawada)
+
+
+
+ This is enabled with the new option.
+
+
+
+
+
+
+
+ Allow
+ to operate in parallel (Julien Rouhaud)
+
+
+
+ Parallel mode is enabled with the new option.
+
+
+
+
+
+
+
+ Allow
+ to force disconnections so the drop succeeds (Pavel Stehule)
+
+
+
+ This is enabled with the option.
+
+
+
+
+
+
+
+ Remove and
+ from (Alexander
+ Lakhin)
+
+
+
+ The long-supported options for this are called
+ and .
+
+
+
+
+
+
+
+ Use the directory of the binary
+ as the default new 'bindir' location when running
+ pg_upgrade (Daniel Gustafsson)
+
+
+
+
+
+
+
+
+ Documentation
+
+
+
+
+
+
+
+ Add a glossary to the documentation
+ (Corey Huinker, Jürgen Purtz, Roger Harkavy, Álvaro
+ Herrera)
+
+
+
+
+
+
+
+ Reformat tables containing function
+ information for better clarity (Tom Lane)
+
+
+
+
+
+
+
+ Upgrade to use DocBook 4.5
+ (Peter Eisentraut)
+
+
+
+
+
+
+
+
+ Source Code
+
+
+
+
+
+
+
+ Add support for building on Visual Studio 2019 (Haribabu Kommi)
+
+
+
+
+
+
+
+ Add build support for MSYS2 (Peter Eisentraut)
+
+
+
+
+
+
+
+ Add compare_exchange and fetch_add assembly language code for Power
+ PC compilers (Noah Misch)
+
+
+
+
+
+
+
+ Update Snowball
+ stemmer dictionaries used by full text search (Panagiotis
+ Mavrogiorgos)
+
+
+
+ This adds Greek stemming and improves Danish and French stemming.
+
+
+
+
+
+
+
+ Remove support for Windows 2000 (Michael Paquier)
+
+
+
+
+
+
+
+ Remove support for non-ELF BSD
+ systems (Peter Eisentraut)
+
+
+
+
+
+
+
+ Remove support for Python versions
+ 2.5.X and earlier (Peter Eisentraut)
+
+
+
+
+
+
+
+ Remove support for OpenSSL 0.9.8
+ and 1.0.0 (Michael Paquier)
+
+
+
+
+
+
+
+ Remove support option
+ 8-byval (Peter Eisentraut)
+
+
+
+ This was needed for previously supported version-zero functions.
+
+
+
+
+
+
+
+ Remove configure option
+ (Peter Eisentraut)
+
+
+
+ This was needed for previously supported version-zero functions.
+
+
+
+
+
+
+
+ Add the query string to planner hook functions (Pascal Legrand,
+ Julien Rouhaud)
+
+
+
+
+
+
+
+ Add command hook (Yuli Khodorkovskiy)
+
+
+
+
+
+
+
+ Add TLS init hook (Andrew Dunstan)
+
+
+
+
+
+
+
+ Allow building with no predefined Unix-domain socket directory
+ (Peter Eisentraut)
+
+
+
+
+
+
+
+ Reduce the probability of SysV resource key collision on Unix platforms
+ (Tom Lane)
+
+
+
+
+
+
+
+ Use operating system functions to cleanly erase memory that contains
+ sensitive information (Peter Eisentraut)
+
+
+
+ For example, this is used for clearing passwords stored in memory.
+
+
+
+
+
+
+
+ Add "headerscheck" script to test C header-file compatibility
+ (Tom Lane)
+
+
+
+
+
+
+
+ Implement internal lists as arrays, rather than a chain of structures
+ (Tom Lane)
+
+
+
+ This improves performance for queries that access many object.
+ The internal List API has also been improved.
+
+
+
+
+
+
+
+ Update Windows build scripts
+ to use the modern flag for
+ UUID libraries (Kyotaro Horiguchi)
+
+
+
+
+
+
+
+
+ Additional Modules
+
+
+
+
+
+
+
+ Allow extensions to be
+ specified as trusted (Tom Lane)
+
+
+
+ Such extensions can be installed in a database by users with creation
+ rights, even if they are not superusers. This change also removes
+ the pg_pltemplate system catalog.
+
+
+
+
+
+
+
+ Remove support for upgrading "unpackaged" extensions (Tom Lane)
+
+
+
+
+
+
+
+ Allow non-superusers to connect to
+ foreign servers without using a password (Craig Ringer)
+
+
+
+ Specifically, allow to set
+ password_required to false. Care must still be
+ taken to avoid non-superusers from using superuser credentials to
+ connect to the foreign server.
+
+
+
+
+
+
+
+ Allow postgres_fdw to use certificate
+ authentication (Craig Ringer)
+
+
+
+ Different users can use different certificates.
+
+
+
+
+
+
+
+ Allow to control access to the
+ TRUNCATE command (Yuli Khodorkovskiy)
+
+
+
+
+
+
+
+ Add extension bool_plperl which transforms
+ SQL booleans to/from PL/Perl booleans (Ivan
+ Panchenko) WHERE IS THIS DOCUMENTED?
+
+
+
+
+
+
+
+ Have treat SELECT
+ ... FOR UPDATE as distinct from those without FOR
+ UPDATE (Andrew Gierth, Vik Fearing)
+
+
+
+
+
+
+
+ Allow pg_stat_statements to optionally
+ track the planning time of statements (Julien Rouhaud, Pascal Legrand,
+ Thomas Munro, Fujii Masao)
+
+
+
+ Previously only execution time was tracked.
+
+
+
+
+
+
+
+ Overhaul 's lquery syntax to treat
+ NOT (!) more logically (Filip Rembialkowski,
+ Tom Lane, Nikita Glukhov)
+
+
+
+ Also allow non-* queries to use a numeric range ({}) of matches.
+
+
+
+
+
+
+
+ Add support for binary I/O of , lquery, and
+ ltxtquery types (Nino Floris)
+
+
+
+
+
+
+
+ Add option to extension to ignore the sign
+ of integers (Jeff Janes)
+
+
+
+
+
+
+
+ Add function
+ pg_file_sync() to allow fsync'ing a file
+ (Fujii Masao)
+
+
+
+
+
+
+
+ Add functions to output
+ t_infomask/t_infomask2
+ values in human-readable format (Craig Ringer, Sawada Masahiko,
+ Michael Paquier)
+
+
+
+
+
+
+
+ Add btree index deduplication processing columns to pageinspect output
+ (Peter Geoghegan)
+
+
+
+
+
+
+
+
+
+
+ Acknowledgments
+
+
+ The following individuals (in alphabetical order) have contributed to this
+ release as patch authors, committers, reviewers, testers, or reporters of
+ issues.
+
+
+
+
+
+
+
+
diff --git a/postgresql/release.xml b/postgresql/release.xml
index a8a6eeae9..e9b9e0f62 100644
--- a/postgresql/release.xml
+++ b/postgresql/release.xml
@@ -11,15 +11,14 @@ Typical markup:
&<> use & escapes
PostgreSQL
postgresql.conf, pg_hba.conf
-[A-Z][A-Z_ ]+[A-Z_] , , ,
-[A-Za-z_][A-Za-z0-9_]+()
+\<[A-Z][A-Z_ ]+[A-Z_]\> , , ,
+\<[A-Za-z_][A-Za-z0-9_]+()
\-\-?[A-Za-z_]+[-A-Za-z_]*