Skip to content

Commit

Permalink
Mise à jour en version 9.4.12
Browse files Browse the repository at this point in the history
  • Loading branch information
gleu committed May 28, 2017
1 parent 21ffd36 commit 49cde0a
Show file tree
Hide file tree
Showing 22 changed files with 1,710 additions and 93 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 @@ -7485,7 +7485,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
41 changes: 31 additions & 10 deletions postgresql/func.xml
Original file line number Diff line number Diff line change
Expand Up @@ -5972,15 +5972,18 @@ SELECT regexp_matches('abc01234xyz', '(?:(.*?)(\d+)(.*)){1,1}');
</row>
<row>
<entry><literal>TZ</literal></entry>
<entry>nom en majuscule du fuseau horaire (en majuscules)</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>abréviation du fuseau horaire en minuscule (seulement supporté
avec <function>to_char</function>)</entry>
</row>
<row>
<entry><literal>OF</literal></entry>
<entry>time-zone offset</entry>
<entry>décalage du fuseau horaire à partir d'UTC (seulement supporté
avec <function>to_char</function>)</entry>
</row>
</tbody>
</tgroup>
Expand Down Expand Up @@ -14778,6 +14781,12 @@ SELECT * FROM pg_ls_dir('.') WITH ORDINALITY AS t(ls,n);
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 @@ -14891,12 +14900,14 @@ SELECT * FROM pg_ls_dir('.') WITH ORDINALITY AS t(ls,n);

<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 @@ -14912,6 +14923,10 @@ SELECT * FROM pg_ls_dir('.') WITH ORDINALITY AS t(ls,n);
<primary>current_query</primary>
</indexterm>

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

<indexterm>
<primary>current_schema</primary>
</indexterm>
Expand Down Expand Up @@ -14964,7 +14979,13 @@ SELECT * FROM pg_ls_dir('.') WITH ORDINALITY AS t(ls,n);
DEFINER</literal>. En langage Unix, l'utilisateur de la session
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) .
(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 @@ -1630,6 +1630,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 @@ -1652,6 +1675,16 @@ su - postgres
de passer une option à <application>make</application>:
<command>make 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
5 changes: 4 additions & 1 deletion postgresql/libpq.xml
Original file line number Diff line number Diff line change
Expand Up @@ -6232,7 +6232,10 @@ myEventProc(PGEventId evtId, void *evtInfo, void *passThrough)
<primary><envar>PGREQUIRESSL</envar></primary>
</indexterm>
<envar>PGREQUIRESSL</envar> se comporte de la même façon que le paramètre
de configuration <xref linkend="libpq-connect-requiressl"/>.
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
39 changes: 15 additions & 24 deletions postgresql/logicaldecoding.xml
Original file line number Diff line number Diff line change
Expand Up @@ -360,7 +360,7 @@ typedef struct OutputPluginCallbacks
LogicalDecodeShutdownCB shutdown_cb;
} OutputPluginCallbacks;

typedef void (*LogicalOutputPluginInit)(struct OutputPluginCallbacks *cb);
typedef void (*LogicalOutputPluginInit) (struct OutputPluginCallbacks *cb);
</programlisting>
Les callbacks <function>begin_cb</function>, <function>change_cb</function>
et <function>commit_cb</function> sont obligatoires,
Expand Down Expand Up @@ -399,7 +399,7 @@ CREATE TABLE autre_table_catalogue(data text) WITH (user_catalog_table = true);
rbitraires (par exemple du <type>bytea</type>) est complexe. Si le plugin en sortie
renvoit seulement les données au format texte dans l'encodage du serveur,
il peut déclarer cela en configurant
<literal>OutputPluginOptions.output_mode</literal> à
<literal>OutputPluginOptions.output_type</literal> à
<literal>OUTPUT_PLUGIN_TEXTUAL_OUTPUT</literal> au lieu de
<literal>OUTPUT_PLUGIN_BINARY_OUTPUT</literal> dans la
<link linkend="logicaldecoding-output-plugin-startup">fonction callback de
Expand Down Expand Up @@ -443,11 +443,9 @@ CREATE TABLE autre_table_catalogue(data text) WITH (user_catalog_table = true);
les flux de changement, indépendamment du nombre de changements qui sont
prêt à être fournis.
<programlisting>
typedef void (*LogicalDecodeStartupCB) (
struct LogicalDecodingContext *ctx,
OutputPluginOptions *options,
bool is_init
);
typedef void (*LogicalDecodeStartupCB) (struct LogicalDecodingContext *ctx,
OutputPluginOptions *options,
bool is_init);
</programlisting>
Le paramètre <literal>is_init</literal> sera positioné à true quand le
slot de réplication est créé, et à false sinon.
Expand Down Expand Up @@ -480,9 +478,7 @@ typedef struct OutputPluginOptions
du plugin de sortie. Le slot n'est pas nécessairement supprimé, le
flux est juste arrêté.
<programlisting>
typedef void (*LogicalDecodeShutdownCB) (
struct LogicalDecodingContext *ctx
);
typedef void (*LogicalDecodeShutdownCB) (struct LogicalDecodingContext *ctx);
</programlisting>
</para>
</sect3>
Expand All @@ -493,10 +489,8 @@ typedef void (*LogicalDecodeShutdownCB) (
fois que le début d'une transaction validée a été décodé. Les
transactions annulées et leur contenu ne sont pas décodés.
<programlisting>
typedef void (*LogicalDecodeBeginCB) (
struct LogicalDecodingContext *,
ReorderBufferTXN *txn
);
typedef void (*LogicalDecodeBeginCB) (struct LogicalDecodingContext *ctx,
ReorderBufferTXN *txn);
</programlisting>
Le paramètre <parameter>txn</parameter> contient des métadonnées sur la
transaction, comme l'heure à laquelle elle a été validée et son XID.
Expand All @@ -510,10 +504,9 @@ typedef void (*LogicalDecodeBeginCB) (
<function>change_cb</function> aura été appelé avant cela pour chacune
des lignes modifiées, s'il y en a eu.
<programlisting>
typedef void (*LogicalDecodeCommitCB) (
struct LogicalDecodingContext *,
ReorderBufferTXN *txn
);
typedef void (*LogicalDecodeCommitCB) (struct LogicalDecodingContext *ctx,
ReorderBufferTXN *txn,
XLogRecPtr commit_lsn);
</programlisting>
</para>
</sect3>
Expand All @@ -527,12 +520,10 @@ typedef void (*LogicalDecodeCommitCB) (
plusieurs ligne en une seule instruction, le callback sera appelé
pour chaque ligne individuellement.
<programlisting>
typedef void (*LogicalDecodeChangeCB) (
struct LogicalDecodingContext *ctx,
ReorderBufferTXN *txn,
Relation relation,
ReorderBufferChange *change
);
typedef void (*LogicalDecodeChangeCB) (struct LogicalDecodingContext *ctx,
ReorderBufferTXN *txn,
Relation relation,
ReorderBufferChange *change);
</programlisting>
Les paramètres <parameter>ctx</parameter> et <parameter>txn</parameter>
ont le même contenu que pour les callbacks <function>begin_cb</function>
Expand Down
2 changes: 1 addition & 1 deletion postgresql/pgupgrade.xml
Original file line number Diff line number Diff line change
Expand Up @@ -296,7 +296,7 @@ make prefix=/usr/local/pgsql.new install
par l'ancien cluster dans le nouveau cluster, par exemple
<filename>pgcrypto.so</filename>, qu'ils proviennent des modules
<filename>contrib</filename> ou de toute autre source. N'installez pas
les définitions du schéma, par exemple <filename>pgcrypto.sql</filename>,
les définitions du schéma, par exemple <command>CREATE EXTENSION pgcrypto</command>,
car elles seront aussi mises à jour à partir de l'ancien cluster.
De plus, tous les fichiers personnalisés de la recherche plein texte
(dictionnaire, synonyme, thésaurus, mots d'arrêt) doivent aussi être copiés
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>
10 changes: 9 additions & 1 deletion postgresql/ref/pg_basebackup.xml
Original file line number Diff line number Diff line change
Expand Up @@ -380,7 +380,7 @@
<term><option>--checkpoint=<replaceable class="parameter">fast|spread</replaceable></option></term>
<listitem>
<para>
Configure le mode du checkpoint à rapide (fast) ou en attente
Configure le mode du checkpoint à immédiat (fast) ou en attente
(spread, la valeur par défaut). Voir <xref linkend="backup-lowlevel-base-backup"/>.
</para>
</listitem>
Expand Down Expand Up @@ -602,6 +602,14 @@
<refsect1>
<title>Notes</title>

<para>
Au début d'une sauvegarde, un checkpoint doit être écrit sur le serveur où
est réalisé la sauvegarde. Tout spécialement si l'option
<literal>--checkpoint=fast</literal> n'est pas utilisée, ceci peut prendre
du temps pendant lequel <application>pg_basebackup</application> semblera
inoccupé.
</para>

<para>
La sauvegarde incluera tous les fichiers du répertoire de données et des
tablespaces, ceci incluant les fichiers de configuration et tout fichier
Expand Down

0 comments on commit 49cde0a

Please sign in to comment.