Skip to content

Commit

Permalink
Mise à jour en version 13.8
Browse files Browse the repository at this point in the history
  • Loading branch information
gleu committed Aug 22, 2022
1 parent 8d52b19 commit db7802f
Show file tree
Hide file tree
Showing 30 changed files with 1,666 additions and 354 deletions.
86 changes: 59 additions & 27 deletions postgresql/brin.xml
Original file line number Diff line number Diff line change
Expand Up @@ -14,8 +14,14 @@
<acronym>BRIN</acronym> signifie Block Range Index, soit index par
intervalles de bloc. <acronym>BRIN</acronym> est conçu pour gérer de grosses
tables dont certaines ont des colonnes ayant une corrélation naturelle avec
leur stockage physique. Un <firstterm>intervalle de bloc</firstterm> est un
groupe de pages physiquement adjacentes dans la table&nbsp;; Pour chaque
leur stockage physique.
</para>

<para>
<acronym>BRIN</acronym> fonctionne en terme d'<firstterm>intervalle de blocs</firstterm>
(ou <quote>intervalle de pages</quote>).
Un <firstterm>intervalle de bloc</firstterm> est un
groupe de blocs physiquement adjacents dans la table&nbsp;; Pour chaque
gamme de bloc, un résumé des informations est stocké par l'index. Un exemple
courant est une table avec une colonne date, contenant les références des
ventes d'un magasin. Chaque commande y serait enregistrée chronologiquement.
Expand Down Expand Up @@ -70,37 +76,63 @@
intervalle, incluant certainement aussi un intervalle incomplet à la fin.
Lors de l'ajout de nouvelles données dans des pages déja incluses dans des
résumés, cela va entrainer la mise à jour du résumé, avec les informations
sur les nouvelles lignes insérées. Lorsqu'une nouvelle page est créée et
qu'elle ne correspond à aucun des derniers intervalles résumés,
l'intervalle ne crée pas automatiquement un résumé. Ces lignes restent non
catégorisées jusqu'à ce qu'un processus soit lancé pour le faire, créant
alors les résumés initiaux. Ce processus peut être appelé manuellement en
exécutant la fonction <function>brin_summarize_range(regclass,
bigint)</function> ou la fonction
<function>brin_summarize_new_values(regclass)</function>&nbsp;;
automatiquement lorsque <command>VACUUM</command> va inspecter la
table&nbsp;; ou par un résumé automatique effectué par autovacuum, au fur
et à mesure que des insertions sont effectuées. (Ce dernier déclencheur
est désactivé par défaut, et peut être activé avec le paramètre
<literal>autosummarize</literal>.) Inversement, le résumé d'un intervalle
peut être supprimé en utilisant la fonction
<function>brin_desummarize_range(regclass, bigint)</function>, ce qui peut
être utile quand la ligne de l'index n'est plue une bonne représentation du
fait des changements des valeurs existantes.
sur les nouvelles lignes insérées.
Lorsqu'une nouvelle page est créée et qu'elle ne correspond à aucun des
derniers intervalles résumés, l'intervalle auquel appartient la nouvelle
page n'acquiert pas automatiquement un résumé&nbsp;; ces lignes restent sans
résumé jusqu'à ce qu'une exécution de résumé soit demandée plus tard, créant
ainsi le résumé initial pour cet intervalle.
</para>

<para>
Il existe plusieurs façons de déclencher le résumé initial d'un intervalle
de blocs. Si la table est traitée par VACUUM, soit manuellement soit par
l'<link linkend="autovacuum">autovacuum</link>, tous les intervalles de
blocs existants non résumés sont résumés. De plus, si le paramètre <xref
linkend="index-reloption-autosummarize"/> de l'index est activé, ce qui
n'est pas le cas par défaut, à chaque fois que l'autovacuum est exécuté dans
cette base, le résumé surviendra pour tous les intervalles de blocs non
résumés qui ont été remplis, que la table elle-même soit traitée par
l'autovacuum ou pas&nbsp;; voir ci-dessous.
</para>

<para>
Quand le résumé automatique est activé, chaque fois qu'un intervalle de
page est rempli, une requête est envoyée à autovacuum pour qu'il exécute un
résumé ciblé pour cet intervalle, opération à exécuter à la fin du travail
du prochain worker sur la même base de données. Si la queue des demandes
est remplie, la demande n'est pas enregistré et un message est enregistré
dans les traces du serveur&nbsp;:
Dernièrement, les fonctions suivantes peuvent être utilisées&nbsp;:
<simplelist>
<member>
<function>brin_summarize_new_values(regclass)</function>
qui résume tous les blocs sans résumé&nbsp;;
</member>
<member>
<function>brin_summarize_range(regclass, bigint)</function>
qui résume seulement l'intervalle contenant le bloc donné
s'il n'est pas résumé.
</member>
</simplelist>
</para>

<para>
Quand le résumé automatique est activé, une requête est envoyée à
l'<literal>autovacuum</literal> pour exécuter un résumé cible pour un
intervalle de bloc quand une insertion est détecté pour le premier élément
du premier bloc du prochain intervalle de bloc, opération à réaliser la
prochaine fois qu'un autovacuum worker finit son exécution dans la même
base. Si la queue des demandes est remplie, la demande n'est pas
enregistrée et un message est enregistré dans les traces du serveur&nbsp;:
<screen>
LOG: request for BRIN range summarization for index "brin_wi_idx" page 128 was not recorded
</screen>
Quand cela arrive, l'intervalle sera résumé avec la méthode habituelle lors
du prochain VACUUM standard de la table.
Quand cela arrive, l'intervalle restera non résumé jusqu'à la prochaine
exécution d'un vacuum standard sur la table ou jusqu'à ce qu'une des
fonctions mentionnées ci-dessus soit appelée.
</para>

<para>
Inversement, un intervalle peut se voir supprimer son résumé avec la
fonction <function>brin_desummarize_range(regclass, bigint)</function>, qui
est utile quand l'enregistrement de l'index n'est plus une très bonne
représentation car les valeurs existantes ont changées. Voir <xref
linkend="functions-admin-index"/> pour les détails.
</para>
</sect2>
</sect1>
Expand Down
5 changes: 4 additions & 1 deletion postgresql/client-auth.xml
Original file line number Diff line number Diff line change
Expand Up @@ -417,7 +417,10 @@ hostnogssenc <replaceable>database</replaceable> <replaceable>user</replaceabl
<para>
Indique la méthode d'authentification à utiliser lors d'une
connexion via cet enregistrement. Les choix possibles sont résumés ici&nbsp;; les
détails se trouvent dans la <xref linkend="auth-methods"/>.
détails se trouvent dans la <xref linkend="auth-methods"/>. Toutes les options
sont en minuscules et traitées avec une sensibilité à la casse, donc
même les acronymes comme <literal>ldap</literal> doivent être écrits
en minuscule.

<variablelist>
<varlistentry>
Expand Down
27 changes: 25 additions & 2 deletions postgresql/config.xml
Original file line number Diff line number Diff line change
Expand Up @@ -7557,8 +7557,10 @@ COPY postgres_log FROM '/chemin/complet/vers/le/logfile.csv' WITH csv;
dans chaque session, avec l'heure de démarrage de la commande. Ce paramètre
est activé par défaut. Même si le paramètre est activé, cette information
n'est pas visible par tous les utilisateurs, mais uniquement par les
superutilisateurs et l'utilisateur possédant la session
traitée&nbsp;; de ce fait, cela ne représente pas une faille de
superutilisateurs, les rôles dotés des droits du rôle
<literal>pg_read_all_stats</literal> et l'utilisateur possédant la session
traitée (ceci incluant les sessions appartenant à un rôle sur lequel ils
ont des droits)&nbsp;; de ce fait, cela ne représente pas une faille de
sécurité. Seuls les superutilisateurs peuvent modifier ce paramètre.
</para>
</listitem>
Expand Down Expand Up @@ -10270,6 +10272,27 @@ SET XML OPTION { DOCUMENT | CONTENT };
</para>

<variablelist>
<varlistentry id="guc-allow-in-place-tablespaces" xreflabel="allow_in_place_tablespaces">
<term><varname>allow_in_place_tablespaces</varname> (<type>boolean</type>)
<indexterm>
<primary>paramètre de configuration <varname>allow_in_place_tablespaces</varname></primary>
</indexterm>
</term>
<listitem>
<para>
Autorise la création des tablespaces dans des répertoires situés à
l'intérieur de <filename>pg_tblspc</filename>, quand une chaîne
d'emplacement vide est fournie à la commande <command>CREATE
TABLESPACE</command>. Ceci a pour but de permettre de tester des
scénarios de réplication où le primaire et le secondaire sont exécutés
sur la même machine. Ces répertoires pourraient poser problème aux outils
de sauvegarde qui s'attendent à trouver uniquement des liens symboliques
à cet emplacement. Seuls les superutilisateurs peuvent modifier ce
paramètre.
</para>
</listitem>
</varlistentry>

<varlistentry id="guc-allow-system-table-mods" xreflabel="allow_system_table_mods">
<term><varname>allow_system_table_mods</varname> (<type>boolean</type>)</term>
<listitem>
Expand Down
7 changes: 4 additions & 3 deletions postgresql/datatype.xml
Original file line number Diff line number Diff line change
Expand Up @@ -3873,11 +3873,12 @@ opposition de deux choses -->
<para>
Le standard IEEE 802-2001 spécifie la seconde forme affichée
(avec les tirets) comme forme canonique pour les adresses MAC, et
la première forme (avec les :) comme la notation à bits retournés,
ce qui donne l'équivalence 08-00-2b-01-02-03 = 01:00:4D:08:04:0C.
la première forme (avec les :) comme utilisé avec la notation à bits
retournés, MSB en premier,
ce qui donne l'équivalence 08-00-2b-01-02-03 = 01:00:D4:80:40:C0.
Cette convention est largement ignorée aujourd'hui et n'a de
sens que pour des protocoles réseau obsolètes (comme Token Ring).
PostgreSQL ne tient pas compte des bits retournés, et tous les formats
PostgreSQL ne tient pas compte des bits retournés&nbsp;; tous les formats
acceptés utilisent l'ordre canonique LSB.
</para>

Expand Down
40 changes: 40 additions & 0 deletions postgresql/ecpg.xml
Original file line number Diff line number Diff line change
Expand Up @@ -1817,6 +1817,8 @@ EXEC SQL SELECT b INTO :val :val_ind FROM test1;
</programlisting>
La variable indicateur <varname>val_ind</varname> sera zéro si
la valeur n'était pas nulle, et sera négative si la valeur était nulle.
(Voir <xref linkend="ecpg-oracle-compat"/> pour activer un comportement
spécifique à Oracle.)
</para>

<para>
Expand Down Expand Up @@ -9701,6 +9703,44 @@ risnull(CINTTYPE, (char *) &i);
</sect2>
</sect1>

<sect1 id="ecpg-oracle-compat">
<title>Mode de compatibilité <productname>Oracle</productname></title>

<para>
<command>ecpg</command> peut être exécuté dans un <firstterm>mode de
compatibilité Oracle</firstterm>. Si ce mode est actif, il essaie de se
comporter comme si c'était du <productname>Pro*C</productname> Oracle.
</para>

<para>
En fait, ce mode change le comportement d'<command>ecpg</command> de trois
façons&nbsp;:

<itemizedlist>
<listitem>
<para>
Remplit les tableaux de caractères recevant des types chaîne de caractères
avec des espaces à la fin pour obtenir la longueur indiquée
</para>
</listitem>

<listitem>
<para>
Un octet zéro termine ces tableaux de caractères, et configure la variable
indicateur si la troncature survient
</para>
</listitem>

<listitem>
<para>
Configure l'indicateur null à <literal>-1</literal> quand les tableaux de
caractères reçoivent des types de chaînes de caractères vides
</para>
</listitem>
</itemizedlist>
</para>
</sect1>

<sect1 id="ecpg-develop">
<title>Fonctionnement Interne</title>

Expand Down
11 changes: 0 additions & 11 deletions postgresql/extend.xml
Original file line number Diff line number Diff line change
Expand Up @@ -1306,17 +1306,6 @@ SELECT * FROM pg_extension_update_paths('<replaceable>extension_name</replaceabl
<varname>search_path</varname> d'installation. Néanmoins, aucun mécanisme
n'existe actuellement pour forcer cela.
</para>

<para>
N'utilisez <emphasis>pas</emphasis> <command>CREATE OR REPLACE
FUNCTION</command>, sauf dans un script de mise à jour qui doit modifier
la définition d'une fonction connue en tant que membre de l'extension.
(Et de la même façon pour l'option <literal>OR REPLACE</literal> d'autres
types d'objet.) Utiliser <literal>OR REPLACE</literal> sans raison ajoute
un risque d'écraser accidentellement la fonction de quelqu'un d'autre,
mais crée un risque de sécurité puisque la fonction surchargée conservera
son propriétaire original, qui pourrait la modifier de nouveau.
</para>
</sect3>
</sect2>

Expand Down
16 changes: 16 additions & 0 deletions postgresql/func.xml
Original file line number Diff line number Diff line change
Expand Up @@ -1906,6 +1906,9 @@ repeat('Pg', 4) <returnvalue>PgPgPgPg</returnvalue>
appelé, la série de résultats d'appels en bouicle à
<function>random()</function> dans la même session peut être répétée en
ré-exécutant <function>setseed()</function> avec le même argument.
Sans un appel précédent à <function>setseed()</function> dans la même session,
le premier appel à <function>random()</function> obtient une graine d'une
source dépendante de la plateforme de bits aléatoires.
</para>

<para>
Expand Down Expand Up @@ -15489,6 +15492,10 @@ table2-mapping
<para>
<literal>json_array_length('[1,2,3,{"f1":1,"f2":[5,6]},4]')</literal>
<returnvalue>5</returnvalue>
</para>
<para>
<literal>jsonb_array_length('[]')</literal>
<returnvalue>0</returnvalue>
</para></entry>
</row>

Expand Down Expand Up @@ -18026,10 +18033,19 @@ SELECT NULLIF(value, '(none)') ...
</para>
<para>
Renvoie la longueur de la dimension réclamée du tableau.
(Renvoie NULL à la place de 0 pour des dimensions vides ou manquantes.)
</para>
<para>
<literal>array_length(array[1,2,3], 1)</literal>
<returnvalue>3</returnvalue>
</para>
<para>
<literal>array_length(array[]::int[], 1)</literal>
<returnvalue>NULL</returnvalue>
</para>
<para>
<literal>array_length(array['text'], 2)</literal>
<returnvalue>NULL</returnvalue>
</para></entry>
</row>

Expand Down
9 changes: 0 additions & 9 deletions postgresql/install-windows.xml
Original file line number Diff line number Diff line change
Expand Up @@ -551,15 +551,6 @@ $ENV{MSBFLAGS}="/m";
</para></listitem>
</varlistentry>

<varlistentry>
<term><varname>LZ4</varname></term>
<listitem><para>
Chemin vers une commande <application>lz4</application>. La valeur par
défaut est <literal>lz4</literal>, qui serait la commande trouvée dans le
<varname>PATH</varname>.
</para></listitem>
</varlistentry>

<varlistentry>
<term><varname>TAR</varname></term>
<listitem><para>
Expand Down
6 changes: 6 additions & 0 deletions postgresql/intarray.xml
Original file line number Diff line number Diff line change
Expand Up @@ -132,6 +132,12 @@
</para>
<para>
Supprime les doublons adjacents.
Souvent utilisée avec <function>sort</function> pour supprimer tous
les doublons.
</para>
<para>
<literal>uniq('{1,2,2,3,1,1}'::integer[])</literal>
<returnvalue>{1,2,3,1}</returnvalue>
</para>
<para>
<literal>uniq(sort('{1,2,3,2,1}'::integer[]))</literal>
Expand Down

0 comments on commit db7802f

Please sign in to comment.