Skip to content

Commit

Permalink
Mise à jour en version 9.4.6
Browse files Browse the repository at this point in the history
  • Loading branch information
gleu committed Mar 7, 2016
1 parent feb1e05 commit c3b7b98
Show file tree
Hide file tree
Showing 27 changed files with 3,080 additions and 117 deletions.
26 changes: 20 additions & 6 deletions postgresql/datatype.xml
Original file line number Diff line number Diff line change
Expand Up @@ -1122,8 +1122,10 @@ SELECT '52093.89'::money::numeric::float8;
significatifs et sont donc ignorés lors de la comparaison de deux valeurs
de type <type>character</type>. Dans les collationements où les espaces
de remplissage sont significatifs, ce comportement peut produire des
résultats inattendus, par exemple <command>SELECT 'a '::CHAR(2) collate "C" &lt;
'a\n'::CHAR(2)</command> retourne vrai. Les espaces de remplissage sont
résultats inattendus&nbsp;; par exemple, <command>SELECT 'a '::CHAR(2)
collate "C" &lt; E'a\n'::CHAR(2)</command> renvoie true, même si la locale
<literal>C</literal> considèrerait qu'un espace est plus grand qu'un
retour à la ligne. Les espaces de remplissage sont
supprimés lors de la conversion d'une valeur <type>character</type> vers
l'un des autres types chaîne. Ces
espaces <emphasis>ont</emphasis> une signification sémantique pour
Expand Down Expand Up @@ -4675,6 +4677,10 @@ WHERE attrelid = (SELECT oid FROM pg_class WHERE relname = 'ma_table');</program
<primary>trigger</primary>
</indexterm>

<indexterm zone="datatype-pseudo">
<primary>event_trigger</primary>
</indexterm>

<indexterm zone="datatype-pseudo">
<primary>language_handler</primary>
</indexterm>
Expand Down Expand Up @@ -4788,13 +4794,20 @@ WHERE attrelid = (SELECT oid FROM pg_class WHERE relname = 'ma_table');</program

<row>
<entry><type>record</type></entry>
<entry>Identifie une fonction qui retourne un type de ligne non spécifié.</entry>
<entry>Identifie une fonction qui prend ou retourne un type de ligne
non spécifié.</entry>
</row>

<row>
<entry><type>trigger</type></entry>
<entry>Une fonction déclencheur est déclarée comme retournant un type
<type>trigger</type>.</entry>
<type>trigger</type>.</entry>
</row>

<row>
<entry><type>event_trigger</></entry>
<entry>Une fonction trigger d'événement est déclarée renvoyée
<type>event_trigger</type>.</entry>
</row>

<row>
Expand Down Expand Up @@ -4823,8 +4836,9 @@ WHERE attrelid = (SELECT oid FROM pg_class WHERE relname = 'ma_table');</program
pseudo-types que dans les limites imposées par l'implantation du langage.
À ce jour, tous les langages procéduraux
interdisent l'usage d'un pseudo-type comme argument et n'autorisent que
<type>void</type> et <type>record</type> comme type de retours (plus <type>trigger</type>
lorsque la fonction est utilisée comme déclencheur).
<type>void</type> et <type>record</type> comme type de retours (plus
<type>trigger</type> ou <type>event_trigger</type> lorsque la fonction est
utilisée comme déclencheur, simple ou d'événement).
Certains supportent également les fonctions polymorphes qui utilisent les
types <type>anyelement</type>,
<type>anyarray</type>, <type>anynonarray</type>, <type>anyenum</type> et
Expand Down
67 changes: 37 additions & 30 deletions postgresql/ddl.xml
Original file line number Diff line number Diff line change
Expand Up @@ -511,8 +511,9 @@ DROP TABLE produits;</programlisting>
</para>

<para>
Lorsqu'une contrainte d'unicité fait référence à un groupe de colonnes,
celles-ci sont listées séparées par des virgules&nbsp;:
Pour définir une contrainte unique pour un groupe de colonnes, saisissez-
la en tant que contrainte de table avec les noms des colonnes séparés par
des virgules&nbsp;:
<programlisting>CREATE TABLE exemple (
a integer,
b integer,
Expand All @@ -535,10 +536,12 @@ DROP TABLE produits;</programlisting>
</para>

<para>
L'ajout d'une contrainte unique créera automatiquement un index B-tree
unique sur la colonne ou le groupe de colonnes utilisé dans la contrainte.
Une contrainte d'unicité sur seulement certaines lignes peut être renforcé
en créant un <link linkend="indexes-partial">index partiel</link>.
Ajouter une contrainte unique va automatiquement créer un index unique
B-tree sur la colonne ou le groupe de colonnes listées dans la contrainte.
Une restriction d'unicité couvrant seulement certaines lignes ne peut pas
être écritre comme une contrainte unique mais il est possible de forcer ce
type de restriction en créant un <link linkend="indexes-partial">index
partiel</link> unique.
</para>

<indexterm>
Expand All @@ -547,16 +550,15 @@ DROP TABLE produits;</programlisting>
</indexterm>

<para>
En général, une contrainte d'unicité est violée lorsque plus d'une
ligne de la table possèdent des valeurs identiques sur toutes les
colonnes de la contrainte. En revanche, deux valeurs NULL ne sont pas
considérées égales. Cela signifie qu'il est possible
de stocker des lignes dupliquées contenant une valeur NULL
dans au moins une des colonnes contraintes. Ce comportement est conforme
au standard SQL, mais d'autres bases SQL n'appliquent pas cette règle.
Il est donc préférable d'être prudent lors du développement d'applications
portables.
</para>
En général, une contrainte d'unicité est violée si plus d'une ligne de la
table possèdent des valeurs identiques sur toutes les colonnes de la
contrainte. En revanche, deux valeurs NULL ne sont jamais considérées
égales. Cela signifie qu'il est possible de stocker des lignes dupliquées
contenant une valeur NULL dans au moins une des colonnes contraintes. Ce
comportement est conforme au standard SQL, mais d'autres bases SQL
n'appliquent pas cette règle. Il est donc préférable d'être prudent lors
du développement d'applications portables.
</para>
</sect2>

<sect2 id="ddl-constraints-primary-keys">
Expand All @@ -572,10 +574,11 @@ DROP TABLE produits;</programlisting>
</indexterm>

<para>
Techniquement, une contrainte de clé primaire n'est
que la combinaison d'une contrainte d'unicité et
d'une contrainte NOT NULL. Les définitions de
table suivantes acceptent de ce fait les mêmes données&nbsp;:
Une contrainte de type clé primaire indique qu'une colonne, ou un
groupe de colonnes, peut être utilisée comme un identifiant unique de
ligne pour cette table. Ceci nécessite que les valeurs soient à la
fois uniques et non NULL. Les définitions de table suivantes acceptent
de ce fait les mêmes données&nbsp;:
<programlisting>CREATE TABLE produits (
no_produit integer UNIQUE NOT NULL,
nom text,
Expand All @@ -601,15 +604,9 @@ DROP TABLE produits;</programlisting>
</para>

<para>
Une clé primaire indique qu'une colonne ou un groupe de colonnes peut
être utilisé(e) comme identifiant unique des lignes de la table. (C'est
une conséquence directe de la définition d'une clé primaire. Une
contrainte d'unicité ne suffit pas à fournir un identifiant unique
car elle n'exclut pas les valeurs NULL). Ceci est utile à la fois
pour des raisons documentaires et pour les applications clientes. Par
exemple, une application graphique qui permet de modifier les valeurs de
lignes a probablement besoin de connaître la clé primaire d'une table pour
pouvoir identifier les lignes de manière unique.
Ajouter une clé primaire créera automatiquement un index unique B-tree
sur la colonne ou le groupe de colonnes listé dans la clé primaire, et
forcera les colonnes à être marquées <literal>NOT NULL</literal>.
</para>

<para>
Expand All @@ -619,13 +616,23 @@ DROP TABLE produits;</programlisting>

<para>
Une table a, au plus, une clé primaire. (Le nombre de contraintes UNIQUE NOT NULL,
qui assurent la même fonction, n'est pas limité, mais une seule
qui assurent pratiquement la même fonction, n'est pas limité, mais une seule
peut être identifiée comme clé primaire.) La théorie des
bases de données relationnelles impose que chaque table ait
une clé primaire. Cette règle n'est pas forcée par
<productname>PostgreSQL</productname>, mais il est préférable de la
respecter.
</para>

<para>
Les clés primaires sont utiles pour la documentation et pour les
applications clientes. Par exemple, une application graphique qui permet
la modifier des valeurs des lignes a probablement besoin de connaître la
clé primaire d'une table pour être capable d'identifier les lignes de
façon unique. Le système de bases de données utilise une clé primaire de
différentes façons. Par exemple, la clé primaire définit les colonnes
cibles par défaut pour les clés étrangères référençant cette table.
</para>
</sect2>

<sect2 id="ddl-constraints-fk">
Expand Down
2 changes: 1 addition & 1 deletion postgresql/earthdistance.xml
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@
<para>
Dans ce module, la Terre est supposée parfaitement sphérique (si cette
hypothèse n'est pas acceptable, le projet <application><ulink
url="http://www.postgis.org/">PostGIS</ulink></application>
url="http://postgis.net/">PostGIS</ulink></application>
doit être considéré.)
</para>

Expand Down
2 changes: 1 addition & 1 deletion postgresql/external-projects.xml
Original file line number Diff line number Diff line change
Expand Up @@ -233,7 +233,7 @@
<filename>contrib/</filename> livré avec le code source contient un grand
nombre d'extensions, qui sont décrites dans <xref linkend="contrib"/>.
D'autres extensions sont développées indépendamment, comme
<application><ulink url="http://www.postgis.org/">PostGIS</ulink></application>.
<application><ulink url="http://postgis.net/">PostGIS</ulink></application>.
Même les solutions de réplication de <productname>PostgreSQL</productname>
peuvent être développées en externe. Ainsi,
<application><ulink url="http://www.slony.info">Slony-I</ulink></application>,
Expand Down
2 changes: 1 addition & 1 deletion postgresql/func.xml
Original file line number Diff line number Diff line change
Expand Up @@ -488,7 +488,7 @@ seulement le sont ? -->

<row>
<entry><literal>^</literal> </entry>
<entry>exposant</entry>
<entry>exposant (associe de gauche à droite)</entry>
<entry><literal>2.0 ^ 3.0</literal></entry>
<entry><literal>8</literal></entry>
</row>
Expand Down
26 changes: 24 additions & 2 deletions postgresql/hstore.xml
Original file line number Diff line number Diff line change
Expand Up @@ -342,11 +342,21 @@ b
<row>
<entry><function>hstore_to_json(hstore)</function><indexterm><primary>hstore_to_json</primary></indexterm></entry>
<entry><type>json</type></entry>
<entry>obtenir une valeur <type>json</type> à partir d'un <type>hstore</type></entry>
<entry>obtenir une valeur <type>json</type> à partir d'un <type>hstore</type>,
convertissant toutes les valeurs non NULL en chaînes JSON</entry>
<entry><literal>hstore_to_json('"a key"=&gt;1, b=&gt;t, c=&gt;null, d=&gt;12345, e=&gt;012345, f=&gt;1.234, g=&gt;2.345e+4')</literal></entry>
<entry><literal>{"a key": "1", "b": "t", "c": null, "d": "12345", "e": "012345", "f": "1.234", "g": "2.345e+4"}</literal></entry>
</row>

<row>
<entry><function>hstore_to_jsonb(hstore)</function><indexterm><primary>hstore_to_jsonb</primary></indexterm></entry>
<entry><type>jsonb</type></entry>
<entry>obtenir une valeur <type>jsonb</type> à partir d'un <type>hstore</type>,
convertissant toutes les valeurs non NULL en chaînes JSON</entry>
<entry><literal>hstore_to_jsonb('"a key"=&gt;1, b=&gt;t, c=&gt;null, d=&gt;12345, e=&gt;012345, f=&gt;1.234, g=&gt;2.345e+4')</literal></entry>
<entry><literal>{"a key": "1", "b": "t", "c": null, "d": "12345", "e": "012345", "f": "1.234", "g": "2.345e+4"}</literal></entry>
</row>

<row>
<entry><function>hstore_to_json_loose(hstore)</function><indexterm><primary>hstore_to_json_loose</primary></indexterm></entry>
<entry><type>json</type></entry>
Expand All @@ -357,6 +367,16 @@ b
<entry><literal>{"a key": 1, "b": true, "c": null, "d": 12345, "e": "012345", "f": 1.234, "g": 2.345e+4}</literal></entry>
</row>

<row>
<entry><function>hstore_to_jsonb_loose(hstore)</function><indexterm><primary>hstore_to_jsonb_loose</primary></indexterm></entry>
<entry><type>jsonb</type></entry>
<entry>obtenir une valeur <type>jsonb</type> à partir d'un <type>hstore</type>,
mais essaie de distinguer les valeurs numériques et booléenne pour qu'elles
soient sans guillemets dans le JSON</entry>
<entry><literal>hstore_to_jsonb_loose('"a key"=&gt;1, b=&gt;t, c=&gt;null, d=&gt;12345, e=&gt;012345, f=&gt;1.234, g=&gt;2.345e+4')</literal></entry>
<entry><literal>{"a key": 1, "b": true, "c": null, "d": 12345, "e": "012345", "f": 1.234, "g": 2.345e+4}</literal></entry>
</row>

<row>
<entry><function>slice(hstore, text[])</function><indexterm><primary>slice</primary></indexterm></entry>
<entry><type>hstore</type></entry>
Expand Down Expand Up @@ -436,7 +456,9 @@ b
<note>
<para>
La fonction <function>hstore_to_json</function> est utilisée quand une
valeur <type>hstore</type> est convertie en valeur <type>json</type>.
valeur <type>hstore</type> est convertie en valeur <type>json</type>. De
la même façon, <function>hstore_to_jsonb</function> est utilisée quand une
valeur <type>hstore</type> est convertie en valeur <type>jsonb</type>.
</para>
</note>

Expand Down
27 changes: 27 additions & 0 deletions postgresql/install-windows.xml
Original file line number Diff line number Diff line change
Expand Up @@ -484,6 +484,7 @@
</userinput>
<userinput>vcregress ecpgcheck</userinput>
<userinput>vcregress isolationcheck</userinput>
<userinput>vcregress bincheck</userinput>
<userinput>vcregress upgradecheck</userinput>
</screen>

Expand All @@ -498,6 +499,32 @@
Pour plus d'informations sur les tests de régression, voir
<xref linkend="regress"/>.
</para>

<para>
Exécuter les tests de régression sur les programmes clients, avec «
vcregress bincheck », nécessite d'installer un module Perl
additionnel&nbsp;:
<variablelist>
<varlistentry>
<term><productname>IPC::Run</productname></term>
<listitem><para>
Au moment de l'écriture de cette partie, <literal>IPC::Run</literal>
n'est pas inclus dans l'installation d'ActiveState Perl, pas plus que
dans la bibliothèque ActiveState Perl Package Manager (PPM). Pour
installer, téléchargez l'archive source <filename>IPC-
Run-&lt;version&gt;.tar.gz</filename> à partir de CPAN, sur <ulink
url="http://search.cpan.org/dist/IPC-Run/"></ulink>, et décompressez-la.
Modifiez le fichier <filename>buildenv.pl</filename>, et ajoutez une
variable PERL5LIB pour pointer vers le sous-répertoire
<filename>lib</filename> à partir de l'archive extraite. Par
exemple&nbsp;:
<programlisting>
$ENV{PERL5LIB}=$ENV{PERL5LIB} . ';c:\IPC-Run-0.94\lib';
</programlisting>
</para></listitem>
</varlistentry>
</variablelist>
</para>
</sect2>

<sect2>
Expand Down
2 changes: 1 addition & 1 deletion postgresql/installation.xml
Original file line number Diff line number Diff line change
Expand Up @@ -2741,7 +2741,7 @@ make MAX_CONNECTIONS=5 check
partir de <ulink url="http://mingw-w64.sourceforge.net/"></ulink>, ajoutez le répertoire des binaires de MinGW dans
la variable d'environnement <envar>PATH</envar>, et lancez la commande
<command>configure</command> avec l'option
<command>--host=x86_64-w64-mingw</command>.
<command>--host=x86_64-w64-mingw32</command>.
</para>

<para>
Expand Down
30 changes: 30 additions & 0 deletions postgresql/json.xml
Original file line number Diff line number Diff line change
Expand Up @@ -357,6 +357,36 @@ SELECT '"foo"'::jsonb ? 'foo';
recherche et n'ont pas besoin d'être parcourus linéairement.
</para>

<tip>
<para>
Comme les documents JSON sont imbriquées, une requête appropriée peut
ignorer une selection explicite de sous-objets. Par exemple, supposons que
nous avons une colonne <structfield>doc</structfield> contenant des objets
au plus haut niveau, avec la plupart des objets contenant les champs
<literal>tags</literal> qui contiennent des tableaux de sous-objets. Cette
requête trouve des entrées dans lesquelles les sous-objets contiennent à
la fois <literal>"term":"paris"</literal> et
<literal>"term":"food"</literal>, tout en ignorant ces clés en dehors du
tableau <literal>tags</literal>&nbsp;:
<programlisting>
SELECT doc-&gt;'site_name' FROM websites
WHERE doc @&gt; '{"tags":[{"term":"paris"}, {"term":"food"}]}';
</programlisting>
Cela pourrait s'accomplir aussi ainsi&nbsp;:
<programlisting>
SELECT doc-&gt;'site_name' FROM websites
WHERE doc-&gt;'tags' @&gt; '[{"term":"paris"}, {"term":"food"}]';
</programlisting>
mais cette approche est moins flexible, et souvent bien moins efficace.
</para>

<para>
Mais l'opérateur JSON d'existence n'est pas imbriqué&nbsp;: il
cherchera seulement pour la clé ou l'élément de tableau spécifié à la
racine de la valeur JSON.
</para>
</tip>

<para>
Les différents opérateurs d'inclusion de d'existence, avec tous les autres
opérateurs et fonctions JSON sont documéntés dans
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>2015</date>
<date>2016</date>

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

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

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

Expand Down
4 changes: 2 additions & 2 deletions postgresql/logicaldecoding.xml
Original file line number Diff line number Diff line change
Expand Up @@ -275,15 +275,15 @@ $ pg_recvlogical -d postgres --slot test --drop-slot
Les commandes
<itemizedlist>
<listitem>
<para><literal>CREATE_REPLICATION_SLOT <replaceable>nom_slot</replaceable> LOGICAL <replaceable>options</replaceable></literal></para>
<para><literal>CREATE_REPLICATION_SLOT <replaceable>nom_slot</replaceable> LOGICAL <replaceable>plugin_sortie</replaceable></literal></para>
</listitem>

<listitem>
<para><literal>DROP_REPLICATION_SLOT <replaceable>nom_slot</replaceable></literal></para>
</listitem>

<listitem>
<para><literal>START_REPLICATION SLOT <replaceable>nom_slot</replaceable> LOGICAL <replaceable>options</replaceable></literal></para>
<para><literal>START_REPLICATION SLOT <replaceable>nom_slot</replaceable> LOGICAL ...</literal></para>
</listitem>
</itemizedlist>
sont utilisées pour, respectivement, créer, supprimer et envoyer les
Expand Down

0 comments on commit c3b7b98

Please sign in to comment.