Skip to content

Commit

Permalink
Mise à jour en version 9.3.17
Browse files Browse the repository at this point in the history
  • Loading branch information
gleu committed May 28, 2017
1 parent 0aae881 commit 20868e6
Show file tree
Hide file tree
Showing 17 changed files with 1,095 additions and 61 deletions.
2 changes: 1 addition & 1 deletion postgresql/biblio.xml
Original file line number Diff line number Diff line change
Expand Up @@ -297,7 +297,7 @@ ssimkovi@ag.or.at
<pubdate>Avril 1990</pubdate>
<publisher>
<publishername>Université de Californie</publishername>
<address>Berkely, Californie</address>
<address>Berkeley, Californie</address>
</publisher>
</biblioset>
</biblioentry>
Expand Down
8 changes: 7 additions & 1 deletion postgresql/catalogs.xml
Original file line number Diff line number Diff line change
Expand Up @@ -7272,7 +7272,13 @@ lourd ! -->
<entry></entry>
<entry>
Options spécifiques à la correspondance d'utilisateurs, sous forme de
chaînes <quote>motclé=valeur</quote>.
chaînes <quote>motclé=valeur</quote>. Cette colonne s'affichera comme
NULL sauf si l'utilisateur courant est celui en cours de correspondance
ou si la correspondance concerne <literal>PUBLIC</literal> et que
l'utilisateur courant est le propriétaire du serveur ou que
l'utilisateur courant est un superutilisateur. Le but est de protéger
les informations sur les mots de passe, enregistrées dans une option de
la correspondance d'utilisateur.
</entry>
</row>
</tbody>
Expand Down
2 changes: 1 addition & 1 deletion postgresql/external-projects.xml
Original file line number Diff line number Diff line change
Expand Up @@ -193,7 +193,7 @@
<row>
<entry>PL/R</entry>
<entry>R</entry>
<entry><ulink url="http://www.joeconway.com/plr/">http://www.joeconway.com/plr/</ulink></entry>
<entry><ulink url="http://www.joeconway.com/plr.html">http://www.joeconway.com/plr.html</ulink></entry>
</row>

<row>
Expand Down
40 changes: 30 additions & 10 deletions postgresql/func.xml
Original file line number Diff line number Diff line change
Expand Up @@ -5927,12 +5927,14 @@ SELECT regexp_matches('abc01234xyz', '(?:(.*?)(\d+)(.*)){1,1}');
minuscules)</entry>
</row>
<row>
<entry><literal>TZ</literal></entry>
<entry>nom en majuscule du fuseau horaire (en majuscules)</entry>
<entry><literal>TZ</literal></entry>
<entry>abréviation du fuseau horaire en majuscule (seulement supporté
avec <function>to_char</function>)</entry>
</row>
<row>
<entry><literal>tz</literal></entry>
<entry>nom en minuscule du fuseau horaire (en minuscules)</entry>
<entry><literal>tz</literal></entry>
<entry>abréviation du fuseau horaire en minuscule (seulement supporté
avec <function>to_char</function>)</entry>
</row>
</tbody>
</tgroup>
Expand Down Expand Up @@ -13765,6 +13767,12 @@ postgres=# SELECT * FROM unnest2(ARRAY[[1,2],[3,4]]);
soumise par le client (pourrait contenir plus d'une instruction)</entry>
</row>

<row>
<entry><literal><function>current_role</function></literal></entry>
<entry><type>name</type></entry>
<entry>équivalent à <function>current_user</function></entry>
</row>

<row>
<entry><literal><function>current_schema</function>[()]</literal></entry>
<entry><type>nom</type></entry>
Expand Down Expand Up @@ -13878,12 +13886,14 @@ postgres=# SELECT * FROM unnest2(ARRAY[[1,2],[3,4]]);

<note>
<para>
<function>current_catalog</function>, <function>current_schema</function>,
<function>current_user</function>, <function>session_user</function>,
et <function>user</function> ont un statut syntaxique spécial en
<acronym>SQL</acronym>&nbsp;: ils doivent être appelés sans
parenthèses à droite (optionnel avec PostgreSQL dans le cas de
<function>current_schema</function>).
<function>current_catalog</function>,
<function>current_role</function>,
<function>current_schema</function>,
<function>current_user</function>,
<function>session_user</function>,
ont un statut syntaxique spécial en <acronym>SQL</acronym>&nbsp;: ils
doivent être appelés sans parenthèses à droite (optionnel avec
PostgreSQL dans le cas de <function>current_schema</function>).
</para>
</note>

Expand All @@ -13899,6 +13909,10 @@ postgres=# SELECT * FROM unnest2(ARRAY[[1,2],[3,4]]);
<primary>current_query</primary>
</indexterm>

<indexterm>
<primary>current_role</primary>
</indexterm>

<indexterm>
<primary>current_schema</primary>
</indexterm>
Expand Down Expand Up @@ -13952,6 +13966,12 @@ postgres=# SELECT * FROM unnest2(ARRAY[[1,2],[3,4]]);
est le <quote>real user</quote> (NdT&nbsp;: l'utilisateur réel) et
l'utilisateur courant est l'<quote>effective user</quote>
(NdT&nbsp;: l'utilisateur effectif) .
<function>current_role</function> et <function>user</function> sont
des synonymes pour <function>current_user</function>. (Le standard SQL
fait une distinction entre <function>current_role</function> et
<function>current_user</function>, mais
<productname>PostgreSQL</productname> ne la fait pas car il unifit les
utilisateurs et les rôles en un seul type d'entité.)
</para>

<para>
Expand Down
6 changes: 2 additions & 4 deletions postgresql/high-availability.xml
Original file line number Diff line number Diff line change
Expand Up @@ -87,9 +87,7 @@
<para>
Le reste de cette section souligne différentes solutions de
<foreignphrase>failover</foreignphrase>, de réplication et de répartition de
charge. Un <ulink
url="http://www.postgres-r.org/documentation/terms">glossaire</ulink> est
aussi disponible.
charge.
</para>

<sect1 id="different-replication-solutions">
Expand Down Expand Up @@ -233,7 +231,7 @@ protocol to make nodes agree on a serializable transactional order.
réplication. Il est impératif que
toute transaction soit validée ou annulée sur tous les serveurs,
éventuellement par validation en deux phases (<xref
linkend="sql-prepare-transaction"/> et <xref linkend="sql-commit-prepared"/>.
linkend="sql-prepare-transaction"/> et <xref linkend="sql-commit-prepared"/>).
<productname>Pgpool-II</productname> et <productname>Continuent
Tungsten</productname> sont des exemples de ce type de réplication.
</para>
Expand Down
33 changes: 33 additions & 0 deletions postgresql/installation.xml
Original file line number Diff line number Diff line change
Expand Up @@ -1424,6 +1424,29 @@ su - postgres
</variablelist>
</para>

<para>
Parfois, il est utile d'ajouter des options de compilation à l'ensemble
choisi par <filename>configure</filename> après coup. Un exemple parlant
concerne l'option <option>-Werror</option> de
<application>gcc</application> qui ne peut pas être incluse dans la
variable <envar>CFLAGS</envar> passée à <filename>configure</filename>,
car il cassera un ggrand nombre de tests internes de
<filename>configure</filename>. Pour ajouter de telles options, incluez-
les dans la variable d'environnement <envar>COPT</envar> lors de
l'exécution de <filename>gmake</filename>. Le contenu de
<envar>COPT</envar> est ajouté aux variables <envar>CFLAGS</envar> et
<envar>LDFLAGS</envar> configurées par <filename>configure</filename>.
Par exemple, vous pouvez faire&nbsp;:
<screen>
<userinput>gmake COPT='-Werror'</userinput>
</screen>
ou
<screen>
<userinput>export COPT='-Werror'</userinput>
<userinput>gmake</userinput>
</screen>
</para>

<note>
<para>
Lors de l'écriture de code à l'intérieur du serveur, il est recommandé
Expand All @@ -1446,6 +1469,16 @@ su - postgres
de passer une option à <application>make</application>:
<command>gmake PROFILE=-O0 file.o</command>.
</para>

<para>
Les variables d'environnement <envar>COPT</envar> et
<envar>PROFILE</envar> sont gérées de façon identique par les fichiers
makefile de <productname>PostgreSQL</productname>. Laquelle utiliser est
une affaire de préférence, mais un usage commun parmi les développeurs
est d'utiliser <envar>PROFILE</envar> pour les ajustements inhabituels
alors que <envar>COPT</envar> servirait aux variables à configurer à
chaque fois.
</para>
</note>
</step>

Expand Down
3 changes: 3 additions & 0 deletions postgresql/libpq.xml
Original file line number Diff line number Diff line change
Expand Up @@ -6237,6 +6237,9 @@ configuration <xref linkend="libpq-connect-sslmode"/>.
</indexterm>
<envar>PGREQUIRESSL</envar> se comporte de la même façon que le paramètre
de configuration <xref linkend="libpq-connect-requiressl"/>.
Cette variable d'environnement est abandonnée au profit de la variable
<envar>PGSSLMODE</envar>, mais la configuration des deux variables
supprime l'effet de <envar>PGSSLMODE</envar>.
</para>
</listitem>
<listitem>
Expand Down
67 changes: 67 additions & 0 deletions postgresql/planstats.xml
Original file line number Diff line number Diff line change
Expand Up @@ -450,5 +450,72 @@ rows = (outer_cardinality * inner_cardinality) * selectivity

</sect1>

<sect1 id="planner-stats-security">
<title>Statistiques de l'optimiseur et sécurité</title>

<para>
L'accès à la table <structname>pg_statistic</structname> est restreint aux
superutilisateurs pour que les autres utilisateurs ne puissent apprendre le
contenu des tables des autres utilisateurs. Certaines fonctions
d'estimation de la sélectivité utiliseront un opérateur fourni par
l'utilisateur (soit l'opérateur apparaissant dans la requête, soit un
opérateur lié) pour analyser les statistiques enregistrées. Par exemple,
pour déterminer si la valeur la plus commune est applicable, l'estimateur
de sélectivité devra exécuter l'opérateur <literal>=</literal> approprié
pour comparer la constante de la requête avec la valeur enregistrée. De ce
fait, la donnée dans <structname>pg_statistic</structname> est
potentielement fournie aux opérateurs définis par l'utilisateur. Un
opérateur créé de façon approprié peut intentionnellement donner les
opérandes fournis (par exemple en les enregistrant ou en les écrivant dans
une table différente) ou en les exposant par erreur en affichant leur
valeurs dans des messages d'erreur, auxquels cas il pourrait exposer les
données provenant de <structname>pg_statistic</structname> à un utilisateur
qui ne devrait pas être capable de les voir.
</para>

<para>
Pour empêcher cela, ce qui suit s'applique à toute fonction interne
d'estimation de la sélectivité. Lors de la planification d'une requête,
pour pouvoir utiliser les statistiques enregistrées, soit l'utilisateur
actuel doit avoir le droit <literal>SELECT</literal> sur la table ou les
colonnes impliquées, columns, soit l'opérateur utilisé doit être
<literal>LEAKPROOF</literal> (plus exactement, la fonction utilisée par cet
opérateur). Dans le cas contraire, l'estimateur de la sélectivité se
comportera comme si aucune statistique n'était disponible, et le
planificateur procédera avec les informations par défaut.
</para>

<para>
Si un utilisateur n'a pas le droit requis pour la table ou les colonnes,
alors dans de nombreux cas, la requête renverra une erreur pour refus de
droit, auquel cas ce mécanisme est invisible en pratique. Mais si
l'utilisateur est en train de lire une vue avec une barrière de sécurité,
alors le planificateur pourrait souhaiter de vérifier les statistiques de
la table sous-jacente qui n'est normalement pas accessible par
l'utilisateur. Dans ce cas, l'opérateur devra être sans fuite. Dans le cas
contraire, les statistiques ne seront pas utilisées. Il n'y a pas de retour
direct sur cela, en dehors du fait que le plan pourrait être non optimal.
Si un utilisateur suspecte que cela lui arrive, il pourrait exécuter la
requête avec un utilisateur disposant de plus de droits pour voir si cela
cause la génération d'un autre plan.
</para>

<para>
Cette restriction s'applique seulement aux cas où le planificateur aurait
besoin d'exécuter un opérateur défini par un utilisateur sur une ou
plusieurs valeurs de <structname>pg_statistic</structname>. De ce fait, le
planificateur a l'autorisation d'utiliser des informations statistiques
génériques, telles que la fraction de valeurs nulles ou le nombre de
valeurs distinctes dans une colonne, quelque soit les droits d'accès.
</para>

<para>
Les fonctions d'estimation de la sélectivité contenues dans des extensions
de tierces parties qui opèrent potentiellement sur des statistiques avec
des opérateurs définis par les utilisateurs devraient suivre les mêmes
règles de sécurité. Consultez le code source de PostgreSQL pour des
exemples.
</para>
</sect1>

</chapter>
36 changes: 4 additions & 32 deletions postgresql/ref/vacuum.xml
Original file line number Diff line number Diff line change
Expand Up @@ -238,38 +238,10 @@ VACUUM [ FULL ] [ FREEZE ] [ VERBOSE ] ANALYZE [ <replaceable class="parameter">
<title>Exemples</title>

<para>
Ce qui suit est un exemple de lancement de <command>VACUUM</command>
sur une table de la base de données regression.

<programlisting>regression=# VACUUM (VERBOSE, ANALYZE) onek;
INFO: vacuuming "public.onek"
INFO: index "onek_unique1" now contains 1000 tuples in 14 pages
DETAIL: 3000 index tuples were removed.
0 index pages have been deleted, 0 are currently reusable.
CPU 0.01s/0.08u sec elapsed 0.18 sec.
INFO: index "onek_unique2" now contains 1000 tuples in 16 pages
DETAIL: 3000 index tuples were removed.
0 index pages have been deleted, 0 are currently reusable.
CPU 0.00s/0.07u sec elapsed 0.23 sec.
INFO: index "onek_hundred" now contains 1000 tuples in 13 pages
DETAIL: 3000 index tuples were removed.
0 index pages have been deleted, 0 are currently reusable.
CPU 0.01s/0.08u sec elapsed 0.17 sec.
INFO: index "onek_stringu1" now contains 1000 tuples in 48 pages
DETAIL: 3000 index tuples were removed.
0 index pages have been deleted, 0 are currently reusable.
CPU 0.01s/0.09u sec elapsed 0.59 sec.
INFO: "onek": removed 3000 tuples in 108 pages
DETAIL: CPU 0.01s/0.06u sec elapsed 0.07 sec.
INFO: "onek": found 3000 removable, 1000 nonremovable tuples in 143 pages
DETAIL: 0 dead tuples cannot be removed yet.
There were 0 unused item pointers.
0 pages are entirely empty.
CPU 0.07s/0.39u sec elapsed 1.56 sec.
INFO: analyzing "public.onek"
INFO: "onek": 36 pages, 1000 rows sampled, 1000 estimated total rows
VACUUM
</programlisting>
Pour nettoyer une seule table <literal>onek</literal>, l'analyser pour
l'optimiseur et afficher un rapport détaillé de l'activité du VACUUM&nbsp;:

<programlisting>VACUUM (VERBOSE, ANALYZE) onek;</programlisting>
</para>
</refsect1>

Expand Down
2 changes: 1 addition & 1 deletion postgresql/release-8.4.xml
Original file line number Diff line number Diff line change
Expand Up @@ -382,7 +382,7 @@

<para>
This prevents scenarios wherein a pathological regular expression
could lock up a server process uninterruptably for a long time.
could lock up a server process uninterruptibly for a long time.
</para>
</listitem>

Expand Down
2 changes: 1 addition & 1 deletion postgresql/release-9.0.xml
Original file line number Diff line number Diff line change
Expand Up @@ -2251,7 +2251,7 @@

<para>
This prevents scenarios wherein a pathological regular expression
could lock up a server process uninterruptably for a long time.
could lock up a server process uninterruptibly for a long time.
</para>
</listitem>

Expand Down
2 changes: 1 addition & 1 deletion postgresql/release-9.1.xml
Original file line number Diff line number Diff line change
Expand Up @@ -3942,7 +3942,7 @@ Branch: REL9_0_STABLE [9d6af7367] 2015-08-15 11:02:34 -0400

<para>
This prevents scenarios wherein a pathological regular expression
could lock up a server process uninterruptably for a long time.
could lock up a server process uninterruptibly for a long time.
</para>
</listitem>

Expand Down

0 comments on commit 20868e6

Please sign in to comment.