Skip to content

Commit

Permalink
Mise à jour en version 9.5.6
Browse files Browse the repository at this point in the history
  • Loading branch information
gleu committed Feb 15, 2017
1 parent 1cad0ec commit 16f35b1
Show file tree
Hide file tree
Showing 28 changed files with 2,620 additions and 178 deletions.
12 changes: 8 additions & 4 deletions postgresql/config.xml
Original file line number Diff line number Diff line change
Expand Up @@ -1025,7 +1025,8 @@ include 'nom_fichier'
paramètre et une liste des valeurs supportées. La valeur par défaut est
<literal>HIGH:MEDIUM:+3DES:!aNULL</literal>. Cette valeur est
généralement raisonnable, sauf si vous avez des besoins spécifiques en
terme de sécurité.
terme de sécurité. Ce paramètre peut seulement être configuré au
démarrage.
</para>

<para>
Expand Down Expand Up @@ -1095,8 +1096,10 @@ include 'nom_fichier'
</term>
<listitem>
<para>
Précise s'il faut utiliser les préférences du serveur en terme d'algorithmes,
ou celles du client. Vaut true par défaut.
Précise s'il faut utiliser les préférences du serveur en terme
d'algorithmes, ou celles du client. Vaut true par défaut. Ce paramètre
peut seulement être configuré au
démarrage.
</para>

<para>
Expand All @@ -1122,7 +1125,8 @@ include 'nom_fichier'
<acronym>ECDH</acronym>. Elle doit être acceptée par tous les clients
qui se connectent. Il n'est pas nécessaire que la même courbe soit
utilisée par la clé Elliptic Curve. La valeur par défaut est
<literal>prime256v1</literal>.
<literal>prime256v1</literal>. Ce paramètre peut seulement être configuré
au démarrage.
</para>

<para>
Expand Down
34 changes: 24 additions & 10 deletions postgresql/ddl.xml
Original file line number Diff line number Diff line change
Expand Up @@ -2546,7 +2546,9 @@ VALUES ('Albany', NULL, NULL, 'NY');</programlisting>

<para>
Toutes les contraintes de vérification et toutes les contraintes NOT NULL
sur une table parent sont automatiquement héritées par les tables enfants.
sur une table parent sont automatiquement héritées par les tables enfants,
sauf si elles sont spécifiées explicitement avec des clauses <literal>NO
INHERIT</literal>.
Les autres types de contraintes (unicité, clé primaire, clé étrangère)
ne sont pas hérités.
</para>
Expand All @@ -2559,9 +2561,12 @@ VALUES ('Albany', NULL, NULL, 'NY');</programlisting>
table mère et dans la définition de la table enfant, alors ces colonnes sont
<quote>assemblées</quote> pour qu'il n'en existe qu'une dans la table
enfant. Pour être assemblées, les colonnes doivent avoir le même type de
données, sinon une erreur est levée. La colonne assemblée hérite de toutes les
contraintes de vérification en provenance de chaque définition de colonnes
dont elle provient, et est marquée NOT NULL si une d'entre elles l'est.
données, sinon une erreur est levée. Les contraintes de vérification et les
contraintes non NULL héritables sont assemblées de façon similaire. De ce
fait, par exemple, une colonne assemblée sera marquée non NULL si une des
définitions de colonne d'où elle provient est marquée non NULL. Les
contraintes de vérification sont assemblées si elles ont le même nom, et
l'assemblage échouera si leurs conditions sont différentes.
</para>

<para>
Expand Down Expand Up @@ -2618,12 +2623,21 @@ VALUES ('Albany', NULL, NULL, 'NY');</programlisting>
</para>

<para>
Notez comment sont gérés les droits d'accès aux tables. Exécuter une requête
sur une table parent permet automatiquement d'accéder aux données des
tables enfants sans vérification supplémentaire sur les droits. Ceci préserve
l'apparence que les données proviennent de la table parent. L'accès aux
tables enfants directement est, néanmoins, pas automatiquement permis et
nécessitera la vérification des droits sur ces tables.
Les requêtes sur tables héritées réalisent des vérifications de droit sur
la table parent seulement. De ce fait, par exemple, donner le droit
<literal>UPDATE</literal> sur la table <structname>villes</structname>
implique que les droits de mise à jour des lignes dans la table
<structname>capitales</structname> soient elles-aussi vérifiées quand elles
sont accédées via la table <structname>villes</structname>. Ceci préserve
l'apparence que les données proviennent (aussi) de la table parent. Mais la
table <structname>capitales</structname> ne pouvait pas être mise à jour
directement sans droit supplémentaire. De façon similaire, les politiques
de sécurité au niveau ligne de la table parent (voir <xref
linkend="ddl-rowsecurity"/>) sont appliquées aux lignes provenant des
tables filles avec une requête héritée. Les politiques de tables enfant
sont appliquées seulement quand la table enfant est explicitement nommée
dans la requête. Dans ce cas, toute politique attachée à ses parents est
ignorée.
</para>

<para>
Expand Down
106 changes: 105 additions & 1 deletion postgresql/dml.xml
Original file line number Diff line number Diff line change
Expand Up @@ -105,6 +105,18 @@ INSERT INTO produits (no_produit, nom, prix) VALUES
</programlisting>
</para>

<para>
Il est aussi possible d'insérer le résultat d'une requête (qui pourrait
renvoyer aucune ligne, une ligne ou plusieurs lignes)&nbsp;:
<programlisting>
INSERT INTO produits (no_produit, nom, prix)
SELECT no_produit, nom, prix FROM nouveaux_produits
WHERE date_sortie = 'today';
</programlisting>
Ceci montre la grande puissance du mécanisme des requêtes SQL (<xref
linkend="queries"/>) sur le traitement des lignes à insérer.
</para>

<tip>
<para>
Lors de l'insertion d'une grande quantité de données en même temps,
Expand Down Expand Up @@ -276,5 +288,97 @@ INSERT INTO produits (no_produit, nom, prix) VALUES
manipulations&nbsp;!
</para>
</sect1>
</chapter>

<sect1 id="dml-returning">
<title>Renvoyer des données provenant de lignes modifiées</title>

<indexterm zone="dml-returning">
<primary>RETURNING</primary>
</indexterm>

<indexterm zone="dml-returning">
<primary>INSERT</primary>
<secondary>RETURNING</secondary>
</indexterm>

<indexterm zone="dml-returning">
<primary>UPDATE</primary>
<secondary>RETURNING</secondary>
</indexterm>

<indexterm zone="dml-returning">
<primary>DELETE</primary>
<secondary>RETURNING</secondary>
</indexterm>

<para>
Parfois, il est intéressant d'obtenir des données de lignes modifiées
pendant qu'elles sont manipulées. Les commandes <command>INSERT</command>,
<command>UPDATE</command> et <command>DELETE</command> ont toutes une
clause <literal>RETURNING</literal> optionnelle qui le permet.
L'utilisation de la clause <literal>RETURNING</literal> évite l'exécution
d'une requête supplémentaire pour coller les données, et est
particulièrement intéressante quand il serait difficile d'identifier
autrement les lignes modifiées.
</para>

<para>
Le contenu autorisé d'une clause <literal>RETURNING</literal> est identique
à celui de la liste de sortie d'une commande <command>SELECT</command>
(voir <xref linkend="queries-select-lists"/>). Elle peut contenir les noms
des colonnes de la table cible ou des expressions utilisant ces colonnes.
Un raccourci habituel est <literal>RETURNING *</literal>, qui sélectionne
toutes les colonnes de la table cible, dans l'ordre de définition.
</para>

<para>
Avec un <command>INSERT</command>, les données disponibles à
<literal>RETURNING</literal> est la ligne qui a été insérée. Ceci n'est pas
utile pour les insertions simples car cela ne fera que répéter les données
fournies par le client mais cela peut devenir très utile si la commande se
base sur les valeurs calculées par défaut. Par exemple, lors de
l'utilisation d'une colonne <link
linkend="datatype-serial"><type>serial</type></link> fournissant des
identifiants uniques, <literal>RETURNING</literal> peut renvoyer
l'identifiant affecté à une nouvelle ligne&nbsp;:
<programlisting>
CREATE TABLE utilisateurs (prenom text, nom text, id serial primary key);

INSERT INTO utilisateurs (prenom, nom) VALUES ('Joe', 'Cool') RETURNING id;
</programlisting>
La clause <literal>RETURNING</literal> est aussi très utile avec un
<literal>INSERT ... SELECT</literal>
</para>

<para>
Dans un <command>UPDATE</command>, les données disponibles pour la clause
<literal>RETURNING</literal> correspondent au nouveau contenu de la ligne
modifiée. Par exemple&nbsp;:
<programlisting>
UPDATE produits SET prix = prix * 1.10
WHERE prix &lt;= 99.99
RETURNING nom, prix AS nouveau_prix;
</programlisting>
</para>

<para>
Dans un <command>DELETE</command>, les données disponibles pour la clause
<literal>RETURNING</literal> correspondent au contenu de la ligne
supprimée. Par exemple&nbsp;:
<programlisting>
DELETE FROM produits
WHERE date_perime = 'today'
RETURNING *;
</programlisting>
</para>

<para>
Si des triggers (<xref linkend="triggers"/>) sont définis sur la table
cible, les données disponibles pour la clause <literal>RETURNING</literal>
correspondent à la ligne modifiée par les triggers. De ce fait, une
utilisation courante de la clause <literal>RETURNING</literal> est
d'inspecter les colonnes calculées par les triggers.
</para>

</sect1>
</chapter>
44 changes: 21 additions & 23 deletions postgresql/func.xml
Original file line number Diff line number Diff line change
Expand Up @@ -1349,12 +1349,13 @@ champs, adressable en tant qu'entité.) -->
</entry>
<entry><type>text</type></entry>
<entry>
Supprime la plus grande chaîne qui ne contient que les
<parameter>caractères</parameter> (une espace par défaut) à partir du
début, de la fin ou des deux extrémités (respectivement leading,
trailing, both) de la <parameter>chaîne</parameter>.
Supprime la plus grande chaîne qui ne contient que les caractères
provenant de <parameter>caractères</parameter> (une espace par défaut) à
partir du début, de la fin ou des deux extrémités
(<literal>both</literal> par défaut) de la
<parameter>chaîne</parameter>.
</entry>
<entry><literal>trim(both 'x' from 'xTomxx')</literal></entry>
<entry><literal>trim(both 'xyz' from 'yxTomxx')</literal></entry>
<entry><literal>Tom</literal></entry>
</row>

Expand All @@ -1363,14 +1364,14 @@ champs, adressable en tant qu'entité.) -->
<literal><function>trim(<optional>leading | trailing
| both</optional> <optional>from</optional>
<parameter>string</parameter>
<optional><parameter>, characters</parameter></optional>
<optional>, <parameter>characters</parameter></optional>
)</function></literal>
</entry>
<entry><type>text</type></entry>
<entry>
Non-standard version of <function>trim()</function>
Syntaxe non standard de <function>trim()</function>
</entry>
<entry><literal>trim(both from 'xTomxx', 'x')</literal></entry>
<entry><literal>trim(both from 'yxTomxx', 'xyz')</literal></entry>
<entry><literal>Tom</literal></entry>
</row>

Expand Down Expand Up @@ -1447,7 +1448,7 @@ champs, adressable en tant qu'entité.) -->
issus de <parameter>caractères</parameter> (une espace par défaut)
à partir du début et de la fin de <parameter>chaîne</parameter>.
</entry>
<entry><literal>btrim('xyxtrimyyx', 'xy')</literal></entry>
<entry><literal>btrim('xyxtrimyyx', 'xyz')</literal></entry>
<entry><literal>trim</literal></entry>
</row>

Expand Down Expand Up @@ -1727,8 +1728,8 @@ champs, adressable en tant qu'entité.) -->
Supprime la chaîne la plus longue constituée uniquement de caractères
issus de <parameter>caractères</parameter> (une espace par défaut) à partir du début de la chaîne.
</entry>
<entry><literal>ltrim('zzzytrim', 'xyz')</literal></entry>
<entry><literal>trim</literal></entry>
<entry><literal>ltrim('zzzytest', 'xyz')</literal></entry>
<entry><literal>test</literal></entry>
</row>

<row>
Expand Down Expand Up @@ -2015,8 +2016,8 @@ champs, adressable en tant qu'entité.) -->
caractères provenant de <parameter>caractères</parameter> (une espace par
défaut) depuis la fin de <parameter>chaîne</parameter>.
</entry>
<entry><literal>rtrim('trimxxxx', 'x')</literal></entry>
<entry><literal>trim</literal></entry>
<entry><literal>rtrim('testxxzx', 'xyz')</literal></entry>
<entry><literal>test</literal></entry>
</row>

<row>
Expand Down Expand Up @@ -3304,11 +3305,11 @@ SELECT format('Testing %3$s, %2$s, %s', 'one', 'two', 'three');
</entry>
<entry><type>bytea</type></entry>
<entry>
Supprime la plus longue chaîne composée uniquement d'octets de
<parameter>octets</parameter> à partir du début et de la fin de
Supprime la plus longue chaîne composée uniquement des octets apparaissant
dans <parameter>octets</parameter> à partir du début et de la fin de
<parameter>chaîne</parameter>
</entry>
<entry><literal>trim(E'\\000'::bytea from E'\\000Tom\\000'::bytea)</literal></entry>
<entry><literal>trim(E'\\000\\001'::bytea from E'\\000Tom\\001'::bytea)</literal></entry>
<entry><literal>Tom</literal></entry>
</row>
</tbody>
Expand Down Expand Up @@ -3352,11 +3353,11 @@ SELECT format('Testing %3$s, %2$s, %s', 'one', 'two', 'three');
</entry>
<entry><type>bytea</type></entry>
<entry>
Supprime la plus longue chaîne constituée uniquement d'octets de
<parameter>octets</parameter> à partir du début et de la fin de
Supprime la plus longue chaîne constituée uniquement des octets apparaissant
dans <parameter>octets</parameter> à partir du début et de la fin de
<parameter>chaîne</parameter>.
</entry>
<entry><literal>btrim( E'\\000trim\\000'::bytea, E'\\000'::bytea)</literal></entry>
<entry><literal>btrim(E'\\000trim\\001'::bytea, E'\\000\\001'::bytea)</literal></entry>
<entry><literal>trim</literal></entry>
</row>

Expand Down Expand Up @@ -6219,7 +6220,7 @@ SELECT regexp_matches('abc01234xyz', '(?:(.*?)(\d+)(.*)){1,1}');

<para>
Exemple plus complexe&nbsp;:
<literal>to_timestamp('15:12:02.020.001230', 'HH:MI:SS.MS.US')</literal>
<literal>to_timestamp('15:12:02.020.001230', 'HH24:MI:SS.MS.US')</literal>
représente 15 heures, 12 minutes et (2 secondes + 20 millisecondes +
1230 microsecondes =) 2,021230 secondes&nbsp;;
</para>
Expand Down Expand Up @@ -13574,9 +13575,6 @@ relecture efficace de cette partie -->
<primary>centile</primary>
<secondary>continue</secondary>
</indexterm>
<indexterm>
<primary>médian</primary>
</indexterm>
<function>percentile_cont(<replaceable class="parameter">fraction</replaceable>) WITHIN GROUP (ORDER BY <replaceable class="parameter">sort_expression</replaceable>)</function>
</entry>
<entry>
Expand Down
2 changes: 1 addition & 1 deletion postgresql/install-windows.xml
Original file line number Diff line number Diff line change
Expand Up @@ -176,7 +176,7 @@
supportée du <productname>Microsoft Windows SDK</productname>, il est
recommandé de mettre à jour avec la dernière version supportée
(actuellement la version 7.1), téléchargeable sur le <ulink
url="http://www.microsoft.com/downloads/">site de Microsoft</ulink>.
url="https://www.microsoft.com/download/">site de Microsoft</ulink>.
</para>

<para>
Expand Down
6 changes: 3 additions & 3 deletions postgresql/legal.xml
Original file line number Diff line number Diff line change
Expand Up @@ -4,18 +4,18 @@
par $Author$
révision $Revision$ -->

<date>2016</date>
<date>2017</date>

<copyright>
<year>1996-2016</year>
<year>1996-2017</year>
<holder>The PostgreSQL Global Development Group</holder>
</copyright>

<legalnotice id="legalnotice">
<title>Legal Notice</title>

<para>
<productname>PostgreSQL</productname> is Copyright &copy; 1996-2016
<productname>PostgreSQL</productname> is Copyright &copy; 1996-2017
by the PostgreSQL Global Development Group.
</para>

Expand Down

0 comments on commit 16f35b1

Please sign in to comment.