Skip to content

Commit

Permalink
Traduction du jour
Browse files Browse the repository at this point in the history
  • Loading branch information
gleu committed Jul 7, 2020
1 parent 63351a7 commit 7fee6e3
Show file tree
Hide file tree
Showing 19 changed files with 412 additions and 384 deletions.
23 changes: 12 additions & 11 deletions postgresql/gin.xml
Original file line number Diff line number Diff line change
Expand Up @@ -420,23 +420,24 @@
<term><function>void options(local_relopts *relopts)</function></term>
<listitem>
<para>
Defines set of user-visible parameters that control operator class
behavior.
Définit un ensemble de paramètres visibles aux utilisateurs qui
contrôlent le comportement d'une classe d'opérateur.
</para>

<para>
The <function>options</function> function is passed a pointer to a
<replaceable>local_relopts</replaceable> struct, which needs to be
filled with a set of operator class specific options. The options
can be accessed from other support functions using the
<literal>PG_HAS_OPCLASS_OPTIONS()</literal> and
<literal>PG_GET_OPCLASS_OPTIONS()</literal> macros.
La fonction <function>options</function> se voit donné un pointeur
vers une structure <replaceable>local_relopts</replaceable> qui doit
être remplie avec un ensemble d'options spécifiques à la classe
d'opérateur. Les options peuvent être accédées à partir des autres
fonctions de support en utilisant les macros
<literal>PG_HAS_OPCLASS_OPTIONS()</literal> et
<literal>PG_GET_OPCLASS_OPTIONS()</literal>.
</para>

<para>
Since both key extraction of indexed values and representation of the
key in <acronym>GIN</acronym> are flexible, they may depend on
user-specified parameters.
Étant donné que l'extraction des clés des valeurs indexées et la
représentation de la clé dans <acronym>GIN</acronym> sont flexibles,
elles peuvent dépendre de paramètres spécifiés par l'utilisateur.
</para>
</listitem>
</varlistentry>
Expand Down
52 changes: 27 additions & 25 deletions postgresql/maintenance.xml
Original file line number Diff line number Diff line change
Expand Up @@ -843,33 +843,35 @@ HINT: Stop the postmaster and vacuum that database in single-user mode.
</para>

<para>
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:
La table est aussi traitée si le nombre de lignes insérées depuis le
dernier VACUUM a dépassé la limite d'insertion définie, d'après cette
formule&nbsp;:
<programlisting>
vacuum insert threshold = vacuum base insert threshold + vacuum insert scale factor * number of tuples
limite insertion vacuum = limte insertion base vacuum + facteur échelle insertion vacuum * nombre de lignes
</programlisting>
where the vacuum insert base threshold is
<xref linkend="guc-autovacuum-vacuum-insert-threshold"/>,
and vacuum insert scale factor is
<xref linkend="guc-autovacuum-vacuum-insert-scale-factor"/>.
Such vacuums may allow portions of the table to be marked as
<firstterm>all visible</firstterm> and also allow tuples to be frozen, which
can reduce the work required in subsequent vacuums.
For tables which receive <command>INSERT</command> operations but no or
almost no <command>UPDATE</command>/<command>DELETE</command> operations,
it may be beneficial to lower the table's
<xref linkend="reloption-autovacuum-freeze-min-age"/> 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 <command>UPDATE</command>,
<command>DELETE</command> and <command>INSERT</command> operation. (It is
only semi-accurate because some information might be lost under heavy
load.) If the <structfield>relfrozenxid</structfield> value of the table
is more than <varname>vacuum_freeze_table_age</varname> transactions old,
an aggressive vacuum is performed to freeze old tuples and advance
<structfield>relfrozenxid</structfield>, sinon seules les pages qui ont été
modifiées depuis le dernier VACUUM sont parcourues par l'opération de
VACUUM.
où la limite d'insertion de base du VACUUM correspond au paramètre <xref
linkend="guc-autovacuum-vacuum-insert-threshold"/>, et le facteur
d'échelle d'insertion du VACUUM correspond au paramètre <xref
linkend="guc-autovacuum-vacuum-insert-scale-factor"/>. De tels VACUUM
permettent de marquer des portions de la table comme <firstterm>tout
visible</firstterm> et permettent aussi de geler les lignes, ce qui peut
réduire le travail requis par les VACUUM suivant. Pour les tables recevant
des opérations <command>INSERT</command> mais aucune ou très peu
d'opérations <command>UPDATE</command>/<command>DELETE</command>, il peut
être bénéfique de diminuer la valeur du paramètre <xref
linkend="reloption-autovacuum-freeze-min-age"/> pour la table car cela
permet le gel des lignes par des VACUUM rapides. Le nombre de lignes
obsolètes et le nombre de lignes insérées sont obtenus via le collecteur
de statistiques&nbsp;; ce décompte moyennement précis est mis à jour par
chaque opération <command>UPDATE</command>, <command>DELETE</command> et
<command>INSERT</command>. (C'est seulement moyennement précis car
certaines informations pourraient être perdues en cas de fortes charges.)
Si la valeur du champ <structfield>relfrozenxid</structfield> pour la
table est supérieure à <varname>vacuum_freeze_table_age</varname>, un
VACUUM agressif est réalisé pour geler les anciennes lignes et avancer la
valeur de <structfield>relfrozenxid</structfield>, sinon seules les pages
qui ont été modifiées depuis le dernier VACUUM sont parcourues par
l'opération de VACUUM.
</para>

<para>
Expand Down
57 changes: 29 additions & 28 deletions postgresql/mvcc.xml
Original file line number Diff line number Diff line change
@@ -1,8 +1,4 @@
<?xml version="1.0" encoding="UTF-8"?>
<!-- Dernière modification
le $Date$
par $Author$
révision $Revision$ -->

<chapter id="mvcc">
<title>Contrôle d'accès simultané</title>
Expand Down Expand Up @@ -564,17 +560,20 @@ COMMIT;
</para>

<para>
The Repeatable Read isolation level is implemented using a technique
known in academic database literature and in some other database products
as <firstterm>Snapshot Isolation</firstterm>. Differences in behavior
and performance may be observed when compared with systems that use a
traditional locking technique that reduces concurrency. Some other
systems may even offer Repeatable Read and Snapshot Isolation as distinct
isolation levels with different behavior. The permitted phenomena that
distinguish the two techniques were not formalized by database researchers
until after the SQL standard was developed, and are outside the scope of
this manual. For a full treatment, please see
<xref linkend="berenson95"/>.
Le niveau d'isolation Repeatable Read est implémenté en utilisant une
technique connue dans la littérature académique des bases de données et
dans certains autres produits de bases de données comme
l'<firstterm>isolation de snapshots</firstterm> (<foreignphrase>Snapshot
Isolation</foreignphrase>). Les différences en comportement et performance
peuvent être observées en comparant avec les systèmes utilisant une
technique traditionnelle de verrouillage qui réduit la concurrence.
Certains autres systèmes offrent même les niveaux Repeatable Read et
Snapshot Isolation comme des niveaux d'isolation distinct avec des
comportements différents. Le phénomène qui permet cette distinction des
deux techniques n'a pas été formalisé par les chercheurs en base de
données jusqu'au développement du standard SQL et sont en dehors du
périmètre de ce manuel. Pour un traitement complet, merci de lire <xref
linkend="berenson95"/>.
</para>

<para>
Expand Down Expand Up @@ -835,12 +834,14 @@ ERREUR: n'a pas pu sérialiser un accès à cause d'une mise à jour en parall
</para>

<para>
The Serializable isolation level is implemented using a technique known
in academic database literature as Serializable Snapshot Isolation, which
builds on Snapshot Isolation by adding checks for serialization anomalies.
Some differences in behavior and performance may be observed when compared
with other systems that use a traditional locking technique. Please see
<xref linkend="ports12"/> for detailed information.
Le niveau d'isolation Serializable est implémenté en utilisant une
technique connue dans la littérature académique des bases de données comme
un <foreignphrase>Serializable Snapshot Isolation</foreignphrase>, qui
constuit une isolation par snapshot en ajoutant des vérifications pour les
anomalies de sérialisation. Quelques différences de comportement et de
performance peuvent être observées lors de la comparaison avec d'autres
systèmes qui utilisent une technique de verrouillage traditionnelle. Merci
de lire <xref linkend="ports12"/> pour des informations détaillées.
</para>
</sect2>
</sect1>
Expand Down Expand Up @@ -1800,13 +1801,13 @@ SELECT pg_advisory_lock(q.id) FROM
</para>

<para>
Internal access to the system catalogs is not done using the isolation
level of the current transaction. This means that newly created database
objects such as tables are visible to concurrent Repeatable Read and
Serializable transactions, even though the rows they contain are not. In
contrast, queries that explicitly examine the system catalogs don't see
rows representing concurrently created database objects, in the higher
isolation levels.
L'accès interne aux catalogues système n'est pas faite en utilisant le
niveau d'isolation de la transaction actuelle. Ceci signifie que les objets
de base nouvellement créés, comme des tables, sont visibles aux
transactions concurrentes en Repeatable Read et en Serializable, même si
les lignes qu'elles contiennent ne le sont pas. À l'inverse les requêtes
qui examinent les catalogues systèmes ne voient pas les lignes représentant
les objets créés en concurrence dans les plus haut niveaux d'isolation.
</para>
</sect1>

Expand Down
49 changes: 26 additions & 23 deletions postgresql/plperl.xml
Original file line number Diff line number Diff line change
Expand Up @@ -198,20 +198,22 @@ $$ LANGUAGE plperl;
</para>

<para>
One case that is particularly important is boolean values. As just
stated, the default behavior for <type>bool</type> values is that they
are passed to Perl as text, thus either <literal>'t'</literal>
or <literal>'f'</literal>. This is problematic, since Perl will not
treat <literal>'f'</literal> as false! It is possible to improve matters
by using a <quote>transform</quote> (see
<xref linkend="sql-createtransform"/>). Suitable transforms are provided
by the <filename>bool_plperl</filename> extension. To use it, install
the extension:
Un cas particulièrement important concerne les valeurs booléennes. Comme
indiqué à l'instant, le comportement par défaut des valeurs de type
<type>bool</type> est qu'elles sont passées en tant que text à
l'interpréteur Perl, donc soit <literal>'t'</literal> soit
<literal>'f'</literal>. Ceci est problématique parce que Perl ne traite pas
<literal>'f'</literal> comme un false&nbsp;! Il est possible d'améliorer
les choses en utilisant une <quote>transformation</quote> (voir <xref
linkend="sql-createtransform"/>). Des transformations intéressantes sont
fournies par l'extension <filename>bool_plperl</filename>. Pour l'utiliser,
installez l'extension&nbsp;:
<programlisting>
CREATE EXTENSION bool_plperl; -- or bool_plperlu for PL/PerlU
</programlisting>
Then use the <literal>TRANSFORM</literal> function attribute for a
PL/Perl function that takes or returns <type>bool</type>, for example:
Puis utilisez l'attribut de fonction <literal>TRANSFORM</literal> pour une
fonction PL/Perl qui prend ou renvoie une donnée de type <type>bool</type>,
par exemple&nbsp;:
<programlisting>
CREATE FUNCTION perl_and(bool, bool) RETURNS bool
TRANSFORM FOR TYPE bool
Expand All @@ -220,14 +222,14 @@ AS $$
return $a &amp;&amp; $b;
$$ LANGUAGE plperl;
</programlisting>
When this transform is applied, <type>bool</type> arguments will be seen
by Perl as being <literal>1</literal> or empty, thus properly true or
false. If the function result is type <type>bool</type>, 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
(<xref linkend="plperl-database"/>).
Quand cette transformation est appliquée, les arguments <type>bool</type>
seront vues par Perl comme valant <literal>1</literal> ou vide, soit des
valeurs true ou false propres. Si le résultat de la fonction renvoie le
type <type>bool</type>, il sera true ou false suivant comment Perl évaluera
la valeur retournée. Des transformations similaires sont aussi réalisées
pour les arguments de requêtes de type booléen et les résultats des
requêtes SPI réalisées à l'intérieur de la fonction (<xref
linkend="plperl-database"/>).
</para>

<para>
Expand Down Expand Up @@ -420,10 +422,11 @@ SELECT * FROM perl_set();</programlisting>
</para>

<para>
If this behavior is inconvenient for a particular case, it can be
improved by using a transform, as already illustrated
for <type>bool</type> values. Several examples of transform modules
are included in the <productname>PostgreSQL</productname> distribution.
Si ce comportement n'est pas convenable pour une utilisation particulière,
il peut être amélioré en ajoutant une transformation comme cela a déjà été
illustré pour les valeurs de type <type>bool</type>. Plusieurs exemples de
modules de transformation sont inclus dans la distribution
<productname>PostgreSQL</productname>.
</para>
</sect1>

Expand Down
29 changes: 15 additions & 14 deletions postgresql/plpgsql.xml
Original file line number Diff line number Diff line change
Expand Up @@ -148,10 +148,10 @@

<para>
Les fonctions <application>PL/pgSQL</application> acceptent en entrée et
en sortie les types polymorphes described in
<xref linkend="extend-types-polymorphic"/>, thus allowing the actual data
types handled by the function to vary from call to call.
Examples appear in <xref linkend="plpgsql-declaration-parameters"/>.
en sortie les types polymorphes décrit dans <xref
linkend="extend-types-polymorphic"/>, permettant ainsi que les types de
données réels gérés par la fonction varient d'appel en appel. Des exemples
sont disponibles sur <xref linkend="plpgsql-declaration-parameters"/>.
</para>

<para>
Expand Down Expand Up @@ -567,29 +567,30 @@ $$ LANGUAGE plpgsql;
</para>

<para>
In practice it might be more useful to declare a polymorphic function
using the <type>anycompatible</type> family of types, so that automatic
promotion of the input arguments to a common type will occur.
For example:
En pratique, il pourrait être plus utile de déclarer une fonction
polymorphique en utilisant la famille de types
<type>anycompatible</type>, pour que survienne la promotion automatique
des arguments en entrée vers un type commune. Par exemple&nbsp;:

<programlisting>
CREATE FUNCTION add_three_values(v1 anycompatible, v2 anycompatible, v3 anycompatible)
CREATE FUNCTION ajoute_trois_valeurs(v1 anycompatible, v2 anycompatible, v3 anycompatible)
RETURNS anycompatible AS $$
BEGIN
RETURN v1 + v2 + v3;
END;
$$ LANGUAGE plpgsql;
</programlisting>

With this example, a call such as
Avec cet exemple, un appel tel que

<programlisting>
SELECT add_three_values(1, 2, 4.7);
SELECT ajoute_trois_valeurs(1, 2, 4.7);
</programlisting>

will work, automatically promoting the integer inputs to numeric.
The function using <type>anyelement</type> would require you to
cast the three inputs to the same type manually.
fonctionnera, promouvant automatiquement les arguments entiers en
numériques. La fonction utilisant <type>anyelement</type> nécessiterait
que vous convertissiez manuellement les trois arguments sur le même type
de données.
</para>
</sect2>

Expand Down
57 changes: 32 additions & 25 deletions postgresql/postgres-fdw.xml
Original file line number Diff line number Diff line change
Expand Up @@ -120,7 +120,8 @@
<para>
<literal>user</literal>, <literal>password</literal> et
<literal>sslpassword</literal> (spécifiez-les au
niveau de la correspondance d'utilisateur instead, or use a service file)
niveau de la correspondance d'utilisateur instead, ou utilisez un
fichier service)
</para>
</listitem>
<listitem>
Expand All @@ -137,18 +138,20 @@
</listitem>
<listitem>
<para>
<literal>sslkey</literal> and <literal>sslcert</literal> - these may
appear in <emphasis>either or both</emphasis> a connection and a user
mapping. If both are present, the user mapping setting overrides the
connection setting.
<literal>sslkey</literal> et <literal>sslcert</literal> - ils peuvent
apparaître soit dans une connexion, soit dans la correspondance
d'utilisateur soit dans les deux. Si ce dernier cas est vrai, la
configuration de la correspondance d'utilisateur surcharge la
configuration de la connexion.
</para>
</listitem>
</itemizedlist>
</para>

<para>
Only superusers may create or modify user mappings with the
<literal>sslcert</literal> or <literal>sslkey</literal> settings.
Seuls les superutilisateurs peuvent créer ou modifier des correspondances
d'utilisateur avec les paramètres <literal>sslcert</literal> et
<literal>sslkey</literal>.
</para>

<para>
Expand All @@ -159,28 +162,32 @@
</para>

<para>
A superuser may override this check on a per-user-mapping basis by setting
the user mapping option <literal>password_required 'false'</literal>, e.g.
Un superutilisateur peut dépasser cette vérification sur une base
par-correspondance-utilisateur en configurant l'option
<literal>password_required 'false'</literal>, par exemple&nbsp;:
<programlisting>
ALTER USER MAPPING FOR some_non_superuser SERVER loopback_nopw
OPTIONS (ADD password_required 'false');
</programlisting>
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.
</para>
<para>
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
<literal>password_required=false</literal>
on the <literal>public</literal> role. Keep in mind that the mapped
user can potentially use any client certificates,
<filename>.pgpass</filename>,
<filename>.pg_service.conf</filename> 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 <literal>peer</literal>
or <literal>ident</literal> authentication.
Pour empêcher des utilisateurs sans droit d'exploiter les droits
d'authentification de l'utilisateur unix utilisé par le serveur PostgreSQL
pour escalader vers des droits superutilisateur, seul le superutilisateur
peut configurer cette option sur une correspondance d'utilisateur.
</para>

<para>
Une grande attention est nécessaire pour s'assurer que cela n'autorise pas
l'utilisateur à se connecter comme un superutilisateur sur la base de
données distante d'après les CVE-2007-3278 et CVE-2007-6601. Ne configurez
pas <literal>password_required=false</literal> sur le rôle
<literal>public</literal>. Gardez en tête que l'utilisateur peut
potentiellement utiliser tout certificat client, le fichier
<filename>.pgpass</filename>, le fichier
<filename>.pg_service.conf</filename>, et les autres fichiers se trouvant
dans le répertoire personnel unix de l'utilisateur système qui exécute le
serveur PostgreSQL. Ils peuvent aussi utiliser toute relation de confiance
autorisée par les modes d'authentification comme <literal>peer</literal>
et <literal>ident</literal>.
</para>
</sect3>

Expand Down

0 comments on commit 7fee6e3

Please sign in to comment.