[Trad] [svn:pgfr] r1317 - traduc/trunk/postgresql

admin at listes.postgresql.fr admin at listes.postgresql.fr
Dim 3 Mai 13:57:02 CEST 2009


Author: gleu
Date: 2009-05-03 13:57:02 +0200 (Sun, 03 May 2009)
New Revision: 1317

Modified:
   traduc/trunk/postgresql/func.xml
   traduc/trunk/postgresql/release.xml
Log:
Suite de la traduction 8.4.


Modified: traduc/trunk/postgresql/func.xml
===================================================================
--- traduc/trunk/postgresql/func.xml	2009-05-02 15:22:39 UTC (rev 1316)
+++ traduc/trunk/postgresql/func.xml	2009-05-03 11:57:02 UTC (rev 1317)
@@ -343,12 +343,12 @@
     Si l'<replaceable>expression</replaceable> est une valeur de ligne, alors
     <literal>IS NULL</literal> est vrai quand l'expression même de la ligne est
     NULL ou quand tous les champs de la ligne sont NULL alors que
-    <literal>IS NOT NULL</literal> est vrai quand l'expression même de la ligne est
-    non NULL et que tous les champs de la ligne sont non NULL.Because of this behavior,
-    <literal>IS NULL</literal> and <literal>IS NOT NULL</literal> do not always return
-    inverse results for row-valued expressions, i.e. a row-valued
-    expression that contains both NULL and non-null values will return false
-    for both tests.
+    <literal>IS NOT NULL</literal> est vrai quand l'expression même de la ligne
+    est non NULL et que tous les champs de la ligne sont non NULL. À cause de
+    ce comportement, <literal>IS NULL</literal> et <literal>IS NOT NULL</literal>
+    ne renvoient pas toujours des résultats inversés pour les expressions de
+    lignes, c'est-à-dire une expression de ligne qui contient à la fois des
+    valeurs NULL et des valeurs non NULL retournera faux pour les deux tests.
     Cette définition, conforme au standard SQL, est une modification du
     comportement incohérent des versions de <productname>PostgreSQL</productname>
     antérieures à la 8.2.
@@ -1663,10 +1663,10 @@
         utilisée comme libellé dans un chaîne d'instruction
         <acronym>SQL</acronym>. Les guillemets simples compris dans la chaîne
         et les antislash sont correctement doublés.
-        Note that <function>quote_literal</function> returns null on null
-        input; if the argument might be null,
-        <function>quote_nullable</function> is often more suitable.
-        See also <xref linkend="plpgsql-quote-literal-example"/>.
+        Notez que <function>quote_literal</function> renvoit NULL si son
+	argument est NULL&nbsp;; si l'argument peut être NULL, la fonction
+        <function>quote_nullable</function> convient mieux.
+        Voir aussi <xref linkend="plpgsql-quote-literal-example"/>.
        </entry>
        <entry><literal>quote_literal( 'O\'Reilly')</literal></entry>
        <entry><literal>'O''Reilly'</literal></entry>
@@ -1698,26 +1698,28 @@
       </row>
 
       <row>
-       <entry><literal><function>quote_nullable</function>(<parameter>string</parameter> <type>text</type>)</literal></entry>
+       <entry><literal><function>quote_nullable</function>(<parameter>chaine</parameter> <type>text</type>)</literal></entry>
        <entry><type>text</type></entry>
        <entry>
-        Return the given string suitably quoted to be used as a string literal
-        in an <acronym>SQL</acronym> statement string; or, if the argument
-        is null, return <literal>NULL</literal>.
-        Embedded single-quotes and backslashes are properly doubled.
-        See also <xref linkend="plpgsql-quote-literal-example"/>.
+        Renvoit la chaîne donnée convenablement mise entre guillemets pour
+	être utilisée comme une chaîne litérale dans une instruction SQL&nbsp;;
+	or si l'argument est NULL, elle renvoit <literal>NULL</literal>.
+	Les guillemets simples et antislashs dans la chaîne sont doublés
+	correctement. Voir aussi <xref
+	linkend="plpgsql-quote-literal-example"/>.
        </entry>
        <entry><literal>quote_nullable(NULL)</literal></entry>
        <entry><literal>NULL</literal></entry>
       </row>
 
       <row>
-       <entry><literal><function>quote_nullable</function>(<parameter>value</parameter> <type>anyelement</type>)</literal></entry>
+       <entry><literal><function>quote_nullable</function>(<parameter>valeur</parameter> <type>anyelement</type>)</literal></entry>
        <entry><type>text</type></entry>
        <entry>
-        Coerce the given value to text and then quote it as a literal;
-        or, if the argument is null, return <literal>NULL</literal>.
-        Embedded single-quotes and backslashes are properly doubled.
+        Renvoit la valeur donnée en texte, puis la met entre guillemets comme un
+	litéral&nbsp;; or, si l'argument est NULL, elle renvoit
+	<literal>NULL</literal>.Les guillemets simples et antislashs dans la
+	chaîne sont doublés correctement.
        </entry>
        <entry><literal>quote_nullable(42.5)</literal></entry>
        <entry><literal>'42.5'</literal></entry>
@@ -5475,12 +5477,13 @@
        </itemizedlist>
       </para>
       <para>
-       Attempting to construct a date using a mixture of ISO week and
-       Gregorian date fields is nonsensical, and will cause an error.  In the
-       context of an ISO year, the concept of a <quote>month</quote> or <quote>day
-       of month</quote> has no meaning.  In the context of a Gregorian year, the
-       ISO week has no meaning.  Users should take care to keep Gregorian and
-       ISO date specifications separate.
+       Essayer de construire une date en utilisant un mix de champs de semaine
+       ISO et de date grégorienne n'a pas de sens et renverra du coup une erreur.
+       Dans le contexte d'une année ISO, le concept d'un <quote>mois</quote> ou
+       du <quote>jour d'un mois</quote> n'a pas de signification. Dans le
+       contexte d'une année grégorienne, la semaine ISO n'a pas de signification.
+       Les utilisateurs doivent faire attention à séparer les spécifications
+       grégoriennes et de date ISO.
       </para>
      </listitem>
 
@@ -5672,38 +5675,38 @@
    </para>   
 
    <para>
-    Certain modifiers can be applied to any template pattern to alter its
-    behavior.  For example, <literal>FM9999</literal>
-    is the <literal>9999</literal> pattern with the
-    <literal>FM</literal> modifier.
-    <xref linkend="functions-formatting-numericmod-table"/> shows the
-    modifier patterns for numeric formatting.
+    Certains modificateurs peuvent être appliqués à un motif pour modifier
+    son comportement. Par exemple, <literal>FM9999</literal> est le motif
+    <literal>9999</literal> avec le modificateur <literal>FM</literal>.
+    <xref linkend="functions-formatting-numericmod-table"/> affiche les
+    motifs pour le formatage numérique.
    </para>
 
     <table id="functions-formatting-numericmod-table">
-     <title>Template Pattern Modifiers for Numeric Formatting</title>
+     <title>Modifications de motifs pour le formatage numérique</title>
      <tgroup cols="3">
       <thead>
        <row>
-        <entry>Modifier</entry>
+        <entry>Modificateur</entry>
         <entry>Description</entry>
-        <entry>Example</entry>
+        <entry>Exemple</entry>
        </row>
       </thead>
       <tbody>
        <row>
-        <entry><literal>FM</literal> prefix</entry>
-        <entry>fill mode (suppress padding blanks and zeroes)</entry>
+        <entry>préfixe <literal>FM</literal></entry>
+        <entry>mode de remplissuage (supprime les blancs et zéris avant et
+	 après la chaîne)</entry>
         <entry><literal>FM9999</literal></entry>
        </row>
        <row>
-        <entry><literal>TH</literal> suffix</entry>
-        <entry>uppercase ordinal number suffix</entry>
+        <entry>suffixe <literal>TH</literal></entry>
+        <entry>suffixe d'un nombre ordinal en majuscule</entry>
         <entry><literal>999TH</literal></entry>
        </row>   
        <row>
-        <entry><literal>th</literal> suffix</entry>
-        <entry>lowercase ordinal number suffix</entry>
+        <entry>suffixe <literal>th</literal></entry>
+        <entry>suffixe d'un nombre ordinal en minuscule</entry>
         <entry><literal>999th</literal></entry>
        </row>
       </tbody>
@@ -8744,8 +8747,8 @@
     </para>
 
     <para>
-     To determine the order of the concatenation, something like the
-     following approach can be used:
+     Pour déterminer l'ordre de la concaténation, l'approche suivante peut
+     être utilisée&nbsp;:
 <screen><![CDATA[
 SELECT xmlagg(x) FROM (SELECT * FROM test ORDER BY y DESC) AS tab;
         xmlagg
@@ -8753,8 +8756,8 @@
  <bar/><foo>abc</foo>
 ]]></screen>
 
-     Again, see <xref linkend="functions-aggregate"/> for additional
-     information.
+     De nouveau, voir <xref linkend="functions-aggregate"/> pour plus
+     d'informations.
     </para>
    </sect3>
 
@@ -8803,8 +8806,8 @@
    </para>
 
   <para>
-    The second argument must be a well formed XML document. In particular,
-    it must have a single root node element.
+    Le second argument doit être un document XML bien formé. En particulier, il
+    doit avoir un seul élément de n&oelig;ud racine.
   </para>
 
    <para>
@@ -9778,7 +9781,7 @@
          </literal>
         </entry>
         <entry><type>int</type></entry>
-        <entry>returns the number of dimensions of the array</entry>
+        <entry>renvoit le nombre de dimensions du tableau</entry>
         <entry><literal>array_ndims(ARRAY[[1,2,3], [4,5,6]])</literal></entry>
         <entry><literal>2</literal></entry>
        </row>
@@ -9802,8 +9805,8 @@
          </literal>
         </entry>
         <entry><type>anyarray</type></entry>
-        <entry>returns an array initialized with supplied value and
-         dimensions, optionally with lower bounds other than 1</entry>
+        <entry>renvoit un tableau initialisé avec une valeur et des dimensions
+	 fournies, en option avec des limites basses autre que 1</entry>
         <entry><literal>array_fill(7, ARRAY[3], ARRAY[2])</literal></entry>
         <entry><literal>[2:4]={7,7,7}</literal></entry>
        </row>
@@ -9814,7 +9817,7 @@
          </literal>
         </entry>
         <entry><type>int</type></entry>
-        <entry>returns the length of the requested array dimension</entry>
+        <entry>renvoit la longueur de la dimension du tableau</entry>
         <entry><literal>array_length(array[1,2,3], 1)</literal></entry>
         <entry><literal>3</literal></entry>
        </row>
@@ -9885,7 +9888,7 @@
          </literal>
         </entry>
         <entry><type>setof anyelement</type></entry>
-        <entry>expand an array to a set of rows</entry>
+        <entry>étend un tableau à un ensemble de lignes</entry>
         <entry><literal>unnest(ARRAY[1,2])</literal></entry>
         <entry><literal>1</literal><para><literal>2</literal></para> (2 rows)</entry>
        </row>
@@ -9894,8 +9897,8 @@
     </table>
 
    <para>
-    See also <xref linkend="functions-aggregate"/> about the aggregate
-    function <function>array_agg</function> for use with arrays.
+    Voir aussi <xref linkend="functions-aggregate"/> à propose la fonction
+    d'agrégat <function>array_agg</function> à utiliser avec les tableaux.
    </para>
   </sect1>
 
@@ -9945,9 +9948,9 @@
        any
       </entry>
       <entry>
-       array of the argument type
+       tableau du type de l'argument
       </entry>
-      <entry>input values concatenated into an array</entry>
+      <entry>les valeurs entrées concaténées dans un tableau</entry>
      </row>
 
      <row>
@@ -10118,7 +10121,8 @@
       <entry>
        <type>xml</type>
       </entry>
-      <entry>concatenation of XML values (see also <xref linkend="functions-xml-xmlagg"/>)</entry>
+      <entry>concaténation de valeurs XML (voir aussi <xref
+       linkend="functions-xml-xmlagg"/>)</entry>
      </row>
 
     </tbody>
@@ -10129,11 +10133,10 @@
    En dehors de <function>count</function>, ces
    fonctions renvoient une valeur NULL si aucune ligne n'est sélectionnée. En
    particulier, une somme (<function>sum</function>) sur aucune ligne renvoie
-   NULL et non zéro, and <function>array_agg</function>
-   returns null rather than an empty array when there are no input
-   rows. La fonction <function>coalesce</function> peut
-   être utilisée pour substituer des zéros or an empty array aux valeurs NULL quand cela est
-   nécessaire.
+   NULL et non zéro, et <function>array_agg</function> renvoit NULL plutôt
+   qu'un tableau vide quand il n'y a pas de lignes en entrée. La fonction
+   <function>coalesce</function> peut être utilisée pour substituer des zéros
+   ou un tableau vide aux valeurs NULL quand cela est nécessaire.
   </para>
 
   <note>
@@ -10171,23 +10174,23 @@
   </note>
   
   <para>
-   The aggregate functions <function>array_agg</function>
-   and <function>xmlagg</function>, as well as similar user-defined
-   aggregate functions, produce meaningfully different result values
-   depending on the order of the input values.  In the current
-   implementation, the order of the input is in principle unspecified.
-   Supplying the input values from a sorted subquery
-   will usually work, however.  For example:
+   Les fonctions d'agrégat <function>array_agg</function> et
+   <function>xmlagg</function>, ainsi que d'autres fonctions similaires d'agrégats
+   définies par l'utilisateur, produisent des valeurs de résultats qui ont un sens
+   différents, dépendant de l'ordre des valeurs en entrée. Dans l'implantation
+   actuelle, l'ordre des entrées est en principe non spécifiée. Fournir les
+   valeurs à partir d'une sous-requête triée fonctionnera généralement. Par
+   exemple&nbsp;:
 
 <screen><![CDATA[
 SELECT xmlagg(x) FROM (SELECT x FROM test ORDER BY y DESC) AS tab;
 ]]></screen>
 
-   But this syntax is not allowed in the SQL standard, and is
-   not portable to other database systems.  A future version of
-   <productname>PostgreSQL</productname> might provide an additional feature to control
-   the order in a better-defined way (<literal>xmlagg(expr ORDER BY expr, expr,
-   ...)</literal>).
+   Mais cette syntaxe n'est pas autorisée dans le standard SQL et n'est pas
+   portable vers d'autres systèmes de bases de données. Une version future
+   de <productname>PostgreSQL</productname> pourrait fournir une fonctionnalité
+   supplémentaire pour contrôler l'ordre d'une meilleure façon
+   (<literal>xmlagg(expr ORDER BY expr, expr, ...)</literal>).
   </para>
 
   <para>
@@ -10549,44 +10552,45 @@
 
 
  <sect1 id="functions-window">
-  <title>Window Functions</title>
+  <title>Fonctions Window</title>
 
   <indexterm zone="functions-window">
-   <primary>window function</primary>
-   <secondary>built-in</secondary>
+   <primary>fonction window</primary>
+   <secondary>interne</secondary>
   </indexterm>
 
   <para>
-   <firstterm>Window functions</firstterm> provide the ability to perform
-   calculations across sets of rows that are related to the current query
-   row.  See <xref linkend="tutorial-window"/> for an introduction to this
-   feature.
+   Les <firstterm>fonction Window</firstterm> fournissent la possibilité de
+   réaliser des calculs au travers d'ensembles de lignes relatifs à la ligne
+   de la requête en cours. Voir <xref linkend="tutorial-window"/> pour une
+   introduction à cette fonctionnalité.
   </para>
 
   <para>
-   The built-in window functions are listed in
-   <xref linkend="functions-window-table"/>.  Note that these functions
-   <emphasis>must</emphasis> be invoked using window function syntax; that is an
-   <literal>OVER</literal> clause is required.
+   Les fonctions window internes sont listées dans <xref
+   linkend="functions-window-table"/>. Notez que ces fonctions
+   <emphasis>doivent</emphasis> être appelées en utilisant la syntaxe des
+   fonctions window&nbsp;; autrement dit, une clause
+   <literal>OVER</literal> est requise.
   </para>
 
   <para>
-   In addition to these functions, any built-in or user-defined aggregate
-   function can be used as a window function (see
-   <xref linkend="functions-aggregate"/> for a list of the built-in aggregates).
-   Aggregate functions act as window functions only when an
-<literal>OVER</literal>
-   clause follows the call; otherwise they act as regular aggregates.
+   En plus de ces fonctions, toute fonction d'agrégat interne ou définie par
+   l'utilisateur peut être utilisée comme une fonction window (voir <xref
+   linkend="functions-aggregate"/> pour une liste des agrégats internes).
+   Les fonctions d'agrégat agissent comme des fonctions window seulement
+   quand une clause <literal>OVER</literal> suit l'appel&nbsp;; sinon
+   elles agissent comme des agrégats standards.
   </para>
 
   <table id="functions-window-table">
-   <title>General-Purpose Window Functions</title>
+   <title>Fonctions Window généralistes</title>
 
    <tgroup cols="3">
     <thead>
      <row>
-      <entry>Function</entry>
-      <entry>Return Type</entry>
+      <entry>Fonction</entry>
+      <entry>Type renvoyé</entry>
       <entry>Description</entry>
      </row>
     </thead>
@@ -10602,7 +10606,8 @@
       <entry>
        <type>bigint</type>
       </entry>
-      <entry>number of the current row within its partition, counting from 1</entry>
+      <entry>numéro de la ligne en cours de traitement dans sa partition, en
+       comptant à partir de 1</entry>
      </row>
 
      <row>
@@ -10615,8 +10620,8 @@
       <entry>
        <type>bigint</type>
       </entry>
-      <entry>rank of the current row with gaps; same as
-<function>row_number</function> of its first peer</entry>
+      <entry>rang de la ligne en cours de traitement, avec des trous&nbsp;;
+       identique <function>row_number</function> pour le premier pair</entry>
      </row>
 
      <row>
@@ -10629,7 +10634,8 @@
       <entry>
        <type>bigint</type>
       </entry>
-      <entry>rank of the current row without gaps; this function counts peer groups</entry>
+      <entry>rang de la ligne en cours de traitement, sans trous&nbsp;; cette
+       fonction compte les groupes de pairs</entry>
      </row>
 
      <row>
@@ -10642,7 +10648,8 @@
       <entry>
        <type>double precision</type>
       </entry>
-      <entry>relative rank of the current row: (<function>rank</function> - 1) / (total rows - 1)</entry>
+      <entry>rang relatif de la ligne en cours de traitement&nbsp;;:
+       (<function>rank</function> - 1) / (nombre total de lignes - 1)</entry>
      </row>
 
      <row>
@@ -10655,7 +10662,8 @@
       <entry>
        <type>double precision</type>
       </entry>
-      <entry>relative rank of the current row: (number of rows preceding or peer with current row) / (total rows)</entry>
+      <entry>rang relatif de la ligne en cours de traitement&nbsp;:
+       (nombre de lignes précédentes, ou pair de la ligne en cours) / (nombre de lignes total)</entry>
      </row>
 
      <row>
@@ -10668,8 +10676,8 @@
       <entry>
        <type>integer</type>
       </entry>
-      <entry>integer ranging from 1 to the argument value, dividing the
-       partition as equally as possible</entry>
+      <entry>entier allant de 1 à la valeur de l'argument, divisant la partition
+       aussi équitablement que possible</entry>
      </row>
 
      <row>
@@ -10684,18 +10692,19 @@
        </function>
       </entry>
       <entry>
-       <type>same type as <replaceable class="parameter">value</replaceable></type>
+       <type>même type que <replaceable class="parameter">value</replaceable></type>
       </entry>
       <entry>
-       returns <replaceable class="parameter">value</replaceable> evaluated at
-       the row that is <replaceable class="parameter">offset</replaceable>
-       rows before the current row within the partition; if there is no such
-       row, instead return <replaceable class="parameter">default</replaceable>.
-       Both <replaceable class="parameter">offset</replaceable> and
-       <replaceable class="parameter">default</replaceable> are evaluated
-       with respect to the current row.  If omitted,
-       <replaceable class="parameter">offset</replaceable> defaults to 1 and
-       <replaceable class="parameter">default</replaceable> to null
+       renvoit <replaceable class="parameter">value</replaceable> évalué à la
+       ligne qui est <replaceable class="parameter">offset</replaceable> lignes
+       avant la ligne actuelle à l'intérieur de la partition&nbsp;; s'il n'y a
+       pas de ligne, renvoit à la place <replaceable
+       class="parameter">default</replaceable>. <replaceable
+       class="parameter">offset</replaceable> et <replaceable
+       class="parameter">default</replaceable> sont évalués par rapport à la
+       ligne en cours. Si omis, <replaceable
+       class="parameter">offset</replaceable> a comme valeur par défaut 1 et
+       <replaceable class="parameter">default</replaceable> est NULL
       </entry>
      </row>
 
@@ -10714,15 +10723,16 @@
        <type>same type as <replaceable class="parameter">value</replaceable></type>
       </entry>
       <entry>
-       returns <replaceable class="parameter">value</replaceable> evaluated at
-       the row that is <replaceable class="parameter">offset</replaceable>
-       rows after the current row within the partition; if there is no such
-       row, instead return <replaceable class="parameter">default</replaceable>.
-       Both <replaceable class="parameter">offset</replaceable> and
-       <replaceable class="parameter">default</replaceable> are evaluated
-       with respect to the current row.  If omitted,
-       <replaceable class="parameter">offset</replaceable> defaults to 1 and
-       <replaceable class="parameter">default</replaceable> to null
+       renvoit <replaceable class="parameter">value</replaceable> évalué à la
+       ligne qui est <replaceable class="parameter">offset</replaceable> lignes
+       après la ligne actuelle à l'intérieur de la partition&nbsp;; s'il n'y a
+       pas de ligne, renvoit à la place <replaceable
+       class="parameter">default</replaceable>. <replaceable
+       class="parameter">offset</replaceable> et <replaceable
+       class="parameter">default</replaceable> sont évalués par rapport à la
+       ligne en cours. Si omis, <replaceable
+       class="parameter">offset</replaceable> a comme valeur par défaut 1 et
+       <replaceable class="parameter">default</replaceable> est NULL
       </entry>
      </row>
 
@@ -10735,11 +10745,11 @@
 class="parameter">value</replaceable> <type>any</type>)</function>
       </entry>
       <entry>
-       <type>same type as <replaceable class="parameter">value</replaceable></type>
+       <type>même type que <replaceable class="parameter">value</replaceable></type>
       </entry>
       <entry>
-       returns <replaceable class="parameter">value</replaceable> evaluated
-       at the row that is the first row of the window frame
+       renvoit <replaceable class="parameter">value</replaceable> évaluée à la
+       ligne qui est la première ligne du frame window
       </entry>
      </row>
 
@@ -10751,11 +10761,11 @@
        <function>last_value(<replaceable class="parameter">value</replaceable> <type>any</type>)</function>
       </entry>
       <entry>
-       <type>same type as <replaceable class="parameter">value</replaceable></type>
+       <type>même type que <replaceable class="parameter">value</replaceable></type>
       </entry>
       <entry>
-       returns <replaceable class="parameter">value</replaceable> evaluated
-       at the row that is the last row of the window frame
+       renvoit <replaceable class="parameter">value</replaceable> évaluée à la
+       ligne qui est la dernière ligne du frame window
       </entry>
      </row>
 
@@ -10769,12 +10779,13 @@
        </function>
       </entry>
       <entry>
-       <type>same type as <replaceable class="parameter">value</replaceable></type>
+       <type>même type que <replaceable class="parameter">value</replaceable></type>
       </entry>
       <entry>
-       returns <replaceable class="parameter">value</replaceable> evaluated
-       at the row that is the <replaceable class="parameter">nth</replaceable>
-       row of the window frame (counting from 1); null if no such row
+       renvoit <replaceable class="parameter">value</replaceable> évaluée à la
+       ligne qui est la<replaceable class="parameter">nth</replaceable>-ième
+       ligne de la frame window (en comptant à partir de 1)&nbsp;; NULL si
+       aucune ligne
       </entry>
      </row>
     </tbody>
@@ -10782,52 +10793,53 @@
   </table>
 
   <para>
-   All of the functions listed in
-   <xref linkend="functions-window-table"/> depend on the sort ordering
-   specified by the <literal>ORDER BY</literal> clause of the associated window
-   definition.  Rows that are not distinct in the <literal>ORDER BY</literal>
-   ordering are said to be <firstterm>peers</firstterm>; the four ranking functions
-   are defined so that they give the same answer for any two peer rows.
+   Toutes les fonctions listées dans <xref
+   linkend="functions-window-table"/> dépendent du tri indiqué par la clause
+   <literal>ORDER BY</literal> de la définition window associée. Les lignes qui
+   ne sont pas distinctes dans le tri <literal>ORDER BY</literal> sont des
+   <firstterm>pairs</firstterm>&nbsp;; les quatre fonctions de rang sont
+   définies de ce façon à ce qu'elles donnent la même réponse pour toutes les
+   lignes pairs.
   </para>
 
   <para>
-   Note that <function>first_value</function>, <function>last_value</function>, and
-   <function>nth_value</function> consider only the rows within the <quote>window
-   frame</quote>, which by default contains the rows from the start of the
-   partition through the last peer of the current row.  This is
-   likely to give unhelpful results for <function>nth_value</function> and
-   particularly <function>last_value</function>.  You can redefine the frame as
-   being the whole partition by adding <literal>ROWS BETWEEN UNBOUNDED
-   PRECEDING AND UNBOUNDED FOLLOWING</literal> to the <literal>OVER</literal> clause.
-   See <xref linkend="syntax-window-functions"/> for more information.
+   Notez que <function>première_valeur</function>,
+   <function>dernière_valeur</function> et <function>nieme_valeur</function>
+   considèrent seulement les lignes à l'intérieur du <quote>frame window</quote>
+   qui contient par défaut les lignes du début de la partition jusqu'au dernier
+   pair de la ligne en cours. Cela risque de données des résultats inintéressants
+   pour <function>nieme_valeur</function> et tout particulièrement
+   <function>derniere_valeur</function>. Vous pouvez redéfinir le frame comme
+   étant la partition complète en ajoutant <literal>ROWS BETWEEN UNBOUNDED
+   PRECEDING AND UNBOUNDED FOLLOWING</literal> à la clause <literal>OVER</literal>.
+   Voir <xref linkend="syntax-window-functions"/> pour plus d'informations.
   </para>
 
   <para>
-   When an aggregate function is used as a window function, it aggregates
-   over the rows within the current row's window frame.  To obtain
-   aggregation over the whole partition, omit <literal>ORDER BY</literal> or use
-   <literal>ROWS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING</literal>.
-   An aggregate used with <literal>ORDER BY</literal> and the default window frame
-   definition produces a <quote>running sum</quote> type of behavior, which may or
-   may not be what's wanted.
+   Quand une fonction d'agrégat est utilisée comme fonction window, il aggrège
+   les lignes sur le frame window de la ligne en cours de traitement. Pour
+   obtenir un agrégat sur la partition complète, omettez <literal>ORDER
+   BY</literal> ou utilisez <literal>ROWS BETWEEN UNBOUNDED PRECEDING AND
+   UNBOUNDED FOLLOWING</literal>. Un agrégat utilisé avec <literal>ORDER
+   BY</literal> et la définition de la frame window par défaut produit un
+   comportement de type <quote>somme en cours d'exécution</quote>, qui pourrait
+   ou ne pas être souhaité.
   </para>
 
   <note>
    <para>
-    The SQL standard defines a <literal>RESPECT NULLS</literal> or
-    <literal>IGNORE NULLS</literal> option for <function>lead</function>,
-    <function>lag</function>,
-    <function>first_value</function>, <function>last_value</function>, and
-    <function>nth_value</function>.  This is not implemented in
-    <productname>PostgreSQL</productname>: the behavior is always the
-    same as the standard's default, namely <literal>RESPECT NULLS</literal>.
-    Likewise, the standard's <literal>FROM FIRST</literal> or <literal>FROM
-    LAST</literal>
-    option for <function>nth_value</function> is not implemented: only the
-    default <literal>FROM FIRST</literal> behavior is supported.  (You can achieve
-    the result of <literal>FROM LAST</literal> by reversing the <literal>ORDER
-BY</literal>
-    ordering.)
+    Le standard SQL définit une option <literal>RESPECT NULLS</literal> ou
+    <literal>IGNORE NULLS</literal> pour <function>lead</function>,
+    <function>lag</function>, <function>first_value</function>,
+    <function>last_value</function> et <function>nth_value</function>.
+    Ceci n'est pas implanté dans <productname>PostgreSQL</productname>&nbsp;:
+    le comportement est toujours le même que dans le comportement par défaut
+    du standard, nommément <literal>RESPECT NULLS</literal>. De la même façon,
+    les options <literal>FROM FIRST</literal> ou <literal>FROM LAST</literal>
+    pour <function>nth_value</function> ne sont pas implantées&nbsp;: seul le
+    comportement <literal>FROM FIRST</literal> est supporté par défaut. (Vous
+    pouvez obtenir le résultat d'un <literal>FROM LAST</literal> en inversant
+    l'ordre du <literal>ORDER BY</literal>.)
    </para>
   </note>
 
@@ -11426,15 +11438,16 @@
 
   <note>
    <para>
-    The SQL specification requires row-wise comparison to return NULL if the
-    result depends on comparing two NULL values or a NULL and a non-NULL.
-    <productname>PostgreSQL</productname> does this only when comparing the
-    results of two row constructors or comparing a row constructor to the
-    output of a subquery (as in <xref linkend="functions-subquery"/>).
-    In other contexts where two composite-type values are compared, two
-    NULL field values are considered equal, and a NULL is considered larger
-    than a non-NULL.  This is necessary in order to have consistent sorting
-    and indexing behavior for composite types.
+    Le standard SQL requiert qu'une comparaison d'une ligne complète renvoit
+    NULL si le résultat dépend de la comparaison de deux valeurs NULL ou d'une
+    valeur NULL et d'une valeur non NULL. <productname>PostgreSQL</productname>
+    le fait en comparant le résultat de deux constructeurs de lignes ou en
+    comparant un constructeur de ligne avec le résultat d'une sous-requête
+    (comme dans <xref linkend="functions-subquery"/>). Dans d'autres contextes
+    où deux valeurs de type composite sont comparées, deux champs NULL sont
+    considérés égaux, et un champ NULL est considéré plus grand qu'un champ
+    non NULL. Ceci est nécessaire pour voir un comportement de tri et
+    d'indexage cohérent pour les types composites.
    </para>
   </note>
 
@@ -11497,12 +11510,13 @@
           </row>
 
      <row>
-      <entry><literal><function>generate_series</function>(<parameter>start</parameter>, <parameter>stop</parameter>, <parameter>step</parameter> <type>interval</type>)</literal></entry>
+      <entry><literal><function>generate_series</function>(<parameter>début</parameter>, <parameter>fin</parameter>, <parameter>pas</parameter> <type>interval</type>)</literal></entry>
       <entry><type>timestamp</type> or <type>timestamp with time zone</type></entry>
-      <entry><type>setof timestamp</type> or <type>setof timestamp with time zone</type> (same as argument type)</entry>
+      <entry><type>setof timestamp</type> ou <type>setof timestamp with time zone</type> (identique au type de l'argument)</entry>
       <entry>
-       Generate a series of values, from <parameter>start</parameter> to <parameter>stop</parameter>
-       with a step size of <parameter>step</parameter>
+       Génère une série de valeurs, allant de <parameter>start</parameter> à
+       <parameter>stop</parameter> avec une taille pour chaque étape de
+       <parameter>pas</parameter>
       </entry>
      </row>
           
@@ -11544,7 +11558,7 @@
 -----------------
 (0 rows)
 
--- this example relies on the date-plus-integer operator
+-- cet exemple se base sur l'opérateur date-plus-entier
 select current_date + s.a as dates from generate_series(0,14,7) as s(a);
     dates
 ------------
@@ -11570,12 +11584,12 @@
     </para>
 
   <table id="functions-srf-subscripts">
-   <title>Subscript Generating Functions</title>
+   <title>Fonctions de génération d'indices</title>
    <tgroup cols="3">
     <thead>
      <row>
-      <entry>Function</entry>
-      <entry>Return Type</entry>
+      <entry>Nom</entry>
+      <entry>Type de retour</entry>
       <entry>Description</entry>
      </row>
     </thead>
@@ -11585,7 +11599,7 @@
       <entry><literal><function>generate_subscripts</function>(<parameter>array anyarray</parameter>, <parameter>dim int</parameter>)</literal></entry>
       <entry><type>setof int</type></entry>
       <entry>
-       Generate a series comprising the given array's subscripts.
+       Génère une série comprenant les indices du tableau donné.
       </entry>
      </row>
 
@@ -11593,9 +11607,9 @@
       <entry><literal><function>generate_subscripts</function>(<parameter>array anyarray</parameter>, <parameter>dim int</parameter>, <parameter>reverse boolean</parameter>)</literal></entry>
       <entry><type>setof int</type></entry>
       <entry>
-       Generate a series comprising the given array's subscripts. When
-       <parameter>reverse</parameter> is true, the series is returned in
-       reverse order.
+       Génère une série comprenant les indices du tableau donné. Quand
+       <parameter>reverse</parameter> vaut true, la série est renvoyé en ordre
+       inverse.
       </entry>
      </row>
 
@@ -11608,14 +11622,14 @@
   </indexterm>
 
   <para>
-   <function>generate_subscripts</function> is a convenience function that generates
-   the set of valid subscripts for the specified dimension of the given
-   array.
-   Zero rows are returned for arrays that do not have the requested dimension,
-   or for NULL arrays (but valid subscripts are returned for NULL array
-   elements).  Some examples follow:
+   <function>generate_subscripts</function> est une fonction qui génère un
+   ensemble d'indices valides pour la dimension indiquée du tableau
+   fourni.
+   Aucune ligne n'est renvoyée pour les tableaux qui n'ont pas la dimension
+   requise ou pour les tableaux NULL (mais les indices valides sont renvoyées
+   pour les éléments d'un tableau NULL). Quelques exemples suivent&nbsp;:
 <programlisting>
--- basic usage
+-- usage basique
 select generate_subscripts('{NULL,1,NULL,2}'::int[], 1) as s;
  s 
 ---
@@ -11644,7 +11658,7 @@
  {100,200} |         2 |   200
 (4 rows)
 
--- unnest a 2D array
+-- tableau 2D
 create or replace function unnest2(anyarray)
 returns setof anyelement as $$
 select $1[i][j] 
@@ -11695,11 +11709,12 @@
           </thead>
 
           <tbody>
-      <row>
-       <entry><literal><function>current_catalog</function></literal></entry>
-       <entry><type>name</type></entry>
-       <entry>name of current database (called <quote>catalog</quote> in the SQL standard)</entry>
-      </row>
+            <row>
+             <entry><literal><function>current_catalog</function></literal></entry>
+             <entry><type>name</type></entry>
+             <entry>nom de la base de données en cours (appelée
+	      <quote>catalog</quote> dans le standard SQL)</entry>
+            </row>
 
             <row>
               <entry><literal><function>current_database</function>()</literal></entry>
@@ -11726,20 +11741,21 @@
               <entry>nom d'utilisateur du contexte d'exécution courant</entry>
             </row>
 
-      <row>
-       <entry><literal><function>current_query</function></literal></entry>
-       <entry><type>text</type></entry>
-       <entry>text of the currently executing query, as submitted
-       by the client (might contain more than one statement)</entry>
-      </row>  
+            <row>
+             <entry><literal><function>current_query</function></literal></entry>
+             <entry><type>text</type></entry>
+             <entry>texte la requête en cours d'exécution, tel qu'elle a été
+	      soumise par le client (pourrait contenir plus d'une instruction)
+	      </entry>
+            </row>  
 
-      <row>
-       <!-- See also the entry for this in monitoring.sgml -->
-       <entry><literal><function>pg_backend_pid</function>()</literal></entry>
-       <entry><type>int</type></entry>
-       <entry>
-        Process ID of the server process attached to the current session
-       </entry>
+            <row>
+             <!-- See also the entry for this in monitoring.sgml -->
+             <entry><literal><function>pg_backend_pid</function>()</literal></entry>
+             <entry><type>int</type></entry>
+             <entry>Identifiant du processus serveur attaché à la session en
+	      cours
+             </entry>
       </row>
 
             <row>
@@ -11784,11 +11800,11 @@
               <entry>heure de démarrage du serveur</entry>
             </row>
 
-      <row>
-       <entry><literal><function>pg_conf_load_time</function>()</literal></entry>
-       <entry><type>timestamp with time zone</type></entry>
-       <entry>configuration load time</entry>
-      </row>
+            <row>
+             <entry><literal><function>pg_conf_load_time</function>()</literal></entry>
+             <entry><type>timestamp with time zone</type></entry>
+             <entry>heure de chargement de la configuration</entry>
+            </row>
 
             <row>
               <entry><literal><function>session_user</function></literal></entry>
@@ -11862,12 +11878,11 @@
       <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
+          <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 (optional in PostgreSQL in the case
-     of <function>current_schema</function>).
+          parenthèses à droite (optionnel avec PostgreSQL dans le cas de
+          <function>current_schema</function>).
         </para>
       </note>
         
@@ -11949,13 +11964,13 @@
    </indexterm>
 
    <para>
-    <function>pg_conf_load_time</function> returns the
-    <type>timestamp with time zone</type> when the
-    server configuration files were last loaded.
-    (If the current session was alive at the time, this will be the time
-    when the session itself re-read the configuration files, so the
-    reading will vary a little in different sessions.  Otherwise it is
-    the time when the postmaster process re-read the configuration files.)
+    <function>pg_conf_load_time</function> renvoit <type>timestamp with time
+    zone</type> indiquant à quel moment les fichiers de configuration du
+    serveur ont été chargés. (Si la session en cours était déjà là à ce
+    moment, ce sera le moment où la sessions elle-même a relu les fichiers
+    de configurations. Cela veut dire que ce que renvoit cette fonction
+    peut varier un peu suivant les sessions. Sinon, c'est le temps où le
+    processus maître a relu les fichiers de configuration.)
    </para>
 
   <indexterm>
@@ -11999,14 +12014,16 @@
                                   <parameter>privilege</parameter>)</literal>
        </entry>
        <entry><type>boolean</type></entry>
-       <entry>does user have privilege for any column of table</entry>
+       <entry>l'utilisateur a-t-il un droit sur une des colonnes de cette table
+       </entry>
       </row>
       <row>
        <entry><literal><function>has_any_column_privilege</function>(<parameter>table</parameter>,
                                   <parameter>privilege</parameter>)</literal>
        </entry>
        <entry><type>boolean</type></entry>
-       <entry>does current user have privilege for any column of table</entry>
+       <entry>l'utilisateur actuel a-t-il un droit sur une des colonnes de
+        cette table</entry>
       </row>
       <row>
        <entry><literal><function>has_column_privilege</function>(<parameter>user</parameter>,
@@ -12015,7 +12032,7 @@
                                   <parameter>privilege</parameter>)</literal>
        </entry>
        <entry><type>boolean</type></entry>
-       <entry>does user have privilege for column</entry>
+       <entry>l'utilisateur a-t-il un droit sur la colonne</entry>
       </row>
       <row>
        <entry><literal><function>has_column_privilege</function>(<parameter>table</parameter>,
@@ -12023,7 +12040,7 @@
                                   <parameter>privilege</parameter>)</literal>
        </entry>
        <entry><type>boolean</type></entry>
-       <entry>does current user have privilege for column</entry>
+       <entry>l'utilisateur actuel a-t-il un droit sur la colonne</entry>
       </row>
       <row>
         <entry><literal><function>has_database_privilege</function>
@@ -12051,14 +12068,16 @@
                                   <parameter>privilege</parameter>)</literal>
        </entry>
        <entry><type>boolean</type></entry>
-       <entry>does user have privilege for foreign-data wrapper</entry>
+       <entry>l'utilisateur a-t-il un droit sur ce wrapper de données distantes
+       </entry>
       </row>
       <row>
        <entry><literal><function>has_foreign_data_wrapper_privilege</function>(<parameter>fdw</parameter>,
                                   <parameter>privilege</parameter>)</literal>
        </entry>
        <entry><type>boolean</type></entry>
-       <entry>does current user have privilege for foreign-data wrapper</entry>
+       <entry>l'utilisateur actuel a-t-il un droit sur ce wrapper de données
+        distantes</entry>
       </row>
       <row>
         <entry><literal><function>has_function_privilege</function>
@@ -12124,14 +12143,14 @@
                                   <parameter>privilege</parameter>)</literal>
        </entry>
        <entry><type>boolean</type></entry>
-       <entry>does user have privilege for foreign server</entry>
+       <entry>l'utilisateur a-t-il un droit sur ce serveur distant</entry>
       </row>
       <row>
        <entry><literal><function>has_server_privilege</function>(<parameter>server</parameter>,
                                   <parameter>privilege</parameter>)</literal>
        </entry>
        <entry><type>boolean</type></entry>
-       <entry>does current user have privilege for foreign server</entry>
+       <entry>l'utilisateur actuel a-t-il un droit sur ce serveur distant</entry>
       </row>
       <row>
        <entry><literal><function>has_table_privilege</function>(<parameter>utilisateur</parameter>,
@@ -12239,15 +12258,15 @@
     indiqués sous la forme d'une chaîne de caractères, sont&nbsp;:
     <literal>SELECT</literal>, <literal>INSERT</literal>,
     <literal>UPDATE</literal>, <literal>DELETE</literal>,
-    <literal>TRUNCATE</literal>,
-    <literal>REFERENCES</literal>, or <literal>TRIGGER</literal>.  Optionally,
-    <literal>WITH GRANT OPTION</literal> can be added to a privilege type to test
-    whether the privilege is held with grant option.  Also, multiple privilege
-    types can be listed separated by commas, in which case the result will
-    be <literal>true</literal> if any of the listed privileges is held.
-    (Case of the privilege string is not significant, and extra whitespace
-    is allowed between but not within privilege names.)
-    Some examples:
+    <literal>TRUNCATE</literal>, <literal>REFERENCES</literal> ou
+    <literal>TRIGGER</literal>. En option, <literal>WITH GRANT OPTION</literal>
+    peut être ajouté à un type de droit pour tester si le droit est obtenu
+    avec l'option « grant ». De plus, plusieurs types de droit peuvent être
+    listés, séparés par des virgules, auquel cas le résultat sera
+    <literal>true</literal> si un des droits listés est obtenu. (la casse des
+    droits n'a pas d'importance et les espaces blancs supplémentaires sont
+    autorisés entre mais pas dans le nom des droits.)
+    Certains exemples&nbsp;:
 <programlisting>
 SELECT has_table_privilege('myschema.mytable', 'select');
 SELECT has_table_privilege('joe', 'mytable', 'INSERT, SELECT WITH GRANT OPTION');
@@ -12255,94 +12274,85 @@
    </para>
 
    <para>
-    <function>has_any_column_privilege</function> checks whether a user can
-    access any column of a table in a particular way.  The possibilities for
-    its arguments are the same as for <function>has_table_privilege</function>,
-    except that the desired access privilege type must evaluate to some
-    combination of
-    <literal>SELECT</literal>,
-    <literal>INSERT</literal>,
-    <literal>UPDATE</literal>, or
-    <literal>REFERENCES</literal>.  Note that having any of these privileges
-    at the table level implicitly grants it for each column of the table,
-    so <function>has_any_column_privilege</function> will always return
-    <literal>true</literal> if <function>has_table_privilege</function> does for the same
-    arguments.  But <function>has_any_column_privilege</function> also succeeds if
-    there is a column-level grant of the privilege for at least one column.
+    <function>has_any_column_privilege</function> vérifie si un utilisateur
+    peut accéder à une colonne d'une table d'une façon particulière. Les
+    possibilités pour que ces arguments correspondent à ceux de
+    <function>has_table_privilege</function>, sauf que le type de droit d'accès
+    désiré doit être évalué à une combinaison de
+    <literal>SELECT</literal>, <literal>INSERT</literal>,
+    <literal>UPDATE</literal> ou <literal>REFERENCES</literal>. Notez qu'avoir
+    un droit au niveau de la table le donne implicitement pour chaque colonne de
+    la table, donc <function>has_any_column_privilege</function> renverra
+    toujours <literal>true</literal> si <function>has_table_privilege</function>
+    le fait pour les mêmes arguments. Mais
+    <function>has_any_column_privilege</function> réussit aussi s'il y a un droit
+    « grant » sur une colonne pour ce droit.
    </para>
 
    <para>
-    <function>has_column_privilege</function> checks whether a user
-    can access a column in a particular way.  The possibilities for its
-    arguments are analogous to <function>has_table_privilege</function>,
-    with the addition that the column can be specified either by name
-    or attribute number.
-    The desired access privilege type must evaluate to some combination of
-    <literal>SELECT</literal>,
-    <literal>INSERT</literal>,
-    <literal>UPDATE</literal>, or
-    <literal>REFERENCES</literal>.  Note that having any of these privileges
-    at the table level implicitly grants it for each column of the table.
+    <function>has_column_privilege</function> vérifie si un utilisateur peut
+    accéder à une colonne d'une façon particulière. Les possibilités pour
+    ses arguments sont analogues à <function>has_table_privilege</function>,
+    avec un supplément&nbsp;: la colonne doit être indiquée soit par nom soit
+    par numéro d'attribut. Le type de droit d'accès désiré doit être une
+    combinaison de <literal>SELECT</literal>, <literal>INSERT</literal>,
+    <literal>UPDATE</literal> ou <literal>REFERENCES</literal>. Notez qu'avoir
+    un de ces droits au niveau table les donne implicitement pour chaque
+    colonne de la table.
    </para>
 
    <para>
-    <function>has_database_privilege</function> checks whether a user
-    can access a database in a particular way.  The possibilities for its
-    arguments are analogous to <function>has_table_privilege</function>.
-    The desired access privilege type must evaluate to some combination of
-    <literal>CREATE</literal>,
-    <literal>CONNECT</literal>,
-    <literal>TEMPORARY</literal>, or
-    <literal>TEMP</literal> (which is equivalent to
-    <literal>TEMPORARY</literal>).
+    <function>has_database_privilege</function> vérifie si un utilisateur peut
+    accéder à une base de données d'une façon particulière. Les possibilités
+    pour ses arguments sont analogues à <function>has_table_privilege</function>.
+    Le type de droit d'accès désiré doit être une combinaison de
+    <literal>CREATE</literal>, <literal>CONNECT</literal>,
+    <literal>TEMPORARY</literal> ou <literal>TEMP</literal> (qui est équivalent
+    à <literal>TEMPORARY</literal>).
    </para>
 
    <para>
-    <function>has_function_privilege</function> checks whether a user
-    can access a function in a particular way.  The possibilities for its
-    arguments are analogous to <function>has_table_privilege</function>.
-    When specifying a function by a text string rather than by OID,
-    the allowed input is the same as for the <type>regprocedure</type> data type
-    (see <xref linkend="datatype-oid"/>).
-    The desired access privilege type must evaluate to
-    <literal>EXECUTE</literal>.
-    An example is:
+    <function>has_function_privilege</function> vérifie si un utilisateur peut
+    accéder à une fonction d'une façon particulière. Les possibilités pour ses
+    arguments sont analogues à <function>has_table_privilege</function>. Lors
+    de la spécification d'une fonction par une chaîne texte plutôt que par un
+    OID, l'entrée autorisée est la même que pour le type de données
+    <type>regprocedure</type>  (voir <xref linkend="datatype-oid"/>). Le type
+    de droit d'accès désiré doit être <literal>EXECUTE</literal>.
+    Voici un exemple&nbsp;:
 <programlisting>
 SELECT has_function_privilege('joeuser', 'myfunc(int, text)', 'execute');
 </programlisting>
    </para>
 
    <para>
-    <function>has_foreign_data_wrapper_privilege</function> checks whether a user
-    can access a foreign-data wrapper in a particular way.  The possibilities for its
-    arguments are analogous to <function>has_table_privilege</function>.
-    The desired access privilege type must evaluate to
-    <literal>USAGE</literal>.
+    <function>has_foreign_data_wrapper_privilege</function> vérifie si un
+    utilisateur peut accéder à un wrapper de données distantes d'une façon
+    particulière. Les possibilités pour ses arguments sont analogues à
+    <function>has_table_privilege</function>. Le type de droit d'accès désiré
+    doit être <literal>USAGE</literal>.
    </para>
 
    <para>
-    <function>has_language_privilege</function> checks whether a user
-    can access a procedural language in a particular way.  The possibilities
-    for its arguments are analogous to <function>has_table_privilege</function>.
-    The desired access privilege type must evaluate to
-    <literal>USAGE</literal>.
+    <function>has_language_privilege</function> vérifie si un utilisateur peut
+    accéder à un langage de procédure d'une façon particulière. Les possibilités
+    pour ses arguments sont analogues à <function>has_table_privilege</function>.
+    Le type de droit d'accès désiré doit être <literal>USAGE</literal>.
    </para>
 
    <para>
-    <function>has_schema_privilege</function> checks whether a user
-    can access a schema in a particular way.  The possibilities for its
-    arguments are analogous to <function>has_table_privilege</function>.
-    The desired access privilege type must evaluate to some combination of
-    <literal>CREATE</literal> or
-    <literal>USAGE</literal>.
+    <function>has_schema_privilege</function> vérifie si un utilisateur peut
+    accéder à un schéma d'une façon particulière. Les possibilités pour ses
+    arguments sont analogues à <function>has_table_privilege</function>. Le
+    type de droits d'accès désiré doit être une combinaison de
+    <literal>CREATE</literal> et <literal>USAGE</literal>.
    </para>
 
    <para>
-    <function>has_server_privilege</function> checks whether a user
-    can access a foreign server in a particular way.  The possibilities for its
-    arguments are analogous to <function>has_table_privilege</function>.
-    The desired access privilege type must evaluate to
-    <literal>USAGE</literal>.
+    <function>has_server_privilege</function> vérifie si un utilisateur peut
+    accéder à un serveur distant d'une façon particulière. Les possibilités
+    pour ses arguments sont analogues à <function>has_table_privilege</function>.
+    Le type de droit d'accès désiré doit être <literal>USAGE</literal>.
    </para>
 
    <para>
@@ -12602,7 +12612,7 @@
       <row>
        <entry><literal><function>pg_get_keywords</function>()</literal></entry>
        <entry><type>setof record</type></entry>
-       <entry>get list of SQL keywords and their categories</entry>
+       <entry>obtient une liste des mots clés SQL et leurs catégories</entry>
       </row>
       <row>
        <entry><literal><function>pg_get_constraintdef</function>(<parameter>constraint_oid</parameter>)</literal></entry>
@@ -12629,22 +12639,24 @@
       <row>
        <entry><literal><function>pg_get_functiondef</function>(<parameter>func_oid</parameter>)</literal></entry>
        <entry><type>text</type></entry>
-       <entry>get definition of a function</entry>
+       <entry>obtient une définition de la fonction</entry>
       </row>
       <row>
        <entry><literal><function>pg_get_function_arguments</function>(<parameter>func_oid</parameter>)</literal></entry>
        <entry><type>text</type></entry>
-       <entry>get argument list of function's definition (with default values)</entry>
+       <entry>obtient une définition de la liste des arguments de la fonction
+        (avec les valeurs par défaut)</entry>
       </row>
       <row>
        <entry><literal><function>pg_get_function_identity_arguments</function>(<parameter>func_oid</parameter>)</literal></entry>
        <entry><type>text</type></entry>
-       <entry>get argument list to identify a function (without default values)</entry>
+       <entry>obtient une définition de la liste des arguments de la fonction
+        (sans valeurs par défaut)</entry>
       </row>
       <row>
        <entry><literal><function>pg_get_function_result</function>(<parameter>func_oid</parameter>)</literal></entry>
        <entry><type>text</type></entry>
-       <entry>get <literal>RETURNS</literal> clause for function</entry>
+       <entry>obtient la clause <literal>RETURNS</literal> pour la fonction</entry>
       </row>
       <row>
        <entry><literal><function>pg_get_indexdef</function>(<parameter>index_oid</parameter>)</literal></entry>
@@ -12718,7 +12730,7 @@
       <row>
        <entry><literal><function>pg_typeof</function>(<parameter>any</parameter>)</literal></entry>
        <entry><type>regtype</type></entry>
-       <entry>get the data type of any value</entry>
+       <entry>obtient le type de données de toute valeur</entry>
       </row>
      </tbody>
     </tgroup>
@@ -12732,14 +12744,15 @@
   </para>
 
   <para>
-   <function>pg_get_keywords</function> returns a set of records describing
-   the SQL keywords recognized by the server. The
-   <structfield>word</structfield> column
-   contains the keyword.  The <structfield>catcode</structfield> column contains a
-   category code: <literal>U</literal> for unreserved, <literal>C</literal> for column name,
-   <literal>T</literal> for type or function name, or <literal>R</literal> for reserved.
-   The <structfield>catdesc</structfield> column contains a possibly-localized string
-   describing the category.
+   <function>pg_get_keywords</function> renvoit un ensemble d'enregistrements
+   décrivant les mots clés SQL reconnus par le serveur. La colonne
+   <structfield>word</structfield> contient le mot clé. La colonne
+   <structfield>catcode</structfield> contient un code de catégorie&nbsp;:
+   <literal>U</literal> pour non réservé, <literal>C</literal> pour nom de
+   colonne, <literal>T</literal> pour nom d'un type ou d'une fonction et
+   <literal>R</literal> pour réservé. La colonne
+   <structfield>catdesc</structfield> contient une chaîne pouvant être
+   traduite décrivant la catégorie.
   </para>
 
   <para>
@@ -12764,17 +12777,17 @@
   </para>
 
   <para>
-   <function>pg_get_functiondef</function> returns a complete
-   <command>CREATE OR REPLACE FUNCTION</command> statement for a function.
-   <function>pg_get_function_arguments</function> returns the argument list
-   of a function, in the form it would need to appear in within
+   <function>pg_get_functiondef</function> renvoit une instruction
+   <command>CREATE OR REPLACE FUNCTION</command> complète pour une fonction.
+   <function>pg_get_function_arguments</function> renvoit une liste
+   des arguments d'un fonction, de la façon dont elle apparaîtrait dans
    <command>CREATE FUNCTION</command>.
-   <function>pg_get_function_result</function> similarly returns the
-   appropriate <literal>RETURNS</literal> clause for the function.
-   <function>pg_get_function_identity_arguments</function> returns the
-   argument list necessary to identify a function, in the form it
-   would need to appear in within <command>ALTER FUNCTION</command>, for
-   instance.  This form omits default values.
+   <function>pg_get_function_result</function> renvoit de façon similaire
+   la clause <literal>RETURNS</literal> appropriée pour la fonction.
+   <function>pg_get_function_identity_arguments</function> renvoit la liste
+   d'arguments nécessaire pour identifier une fonction, dans la forme qu'elle
+   devrait avoir pour faire partie d'un <command>ALTER FUNCTION</command>, par
+   exemple. Cette forme omet les valeurs par défaut.
   </para>
 
   <para>
@@ -12814,12 +12827,13 @@
   </para>
 
   <para>
-   <function>pg_typeof</function> returns the OID of the data type of the
-   value that is passed to it.  This can be helpful for troubleshooting or
-   dynamically constructing SQL queries.  The function is declared as
-   returning <type>regtype</type>, which is an OID alias type (see
-   <xref linkend="datatype-oid"/>); this means that it is the same as an
-   OID for comparison purposes but displays as a type name.  For example:
+   <function>pg_typeof</function> renvoit l'OID du type de données de la valeur
+   qui lui est passé. Ceci est utile pour dépanner ou pour construire
+   dynamiquement des requêtes SQL. La fonction est déclarée comme renvoyant
+   <type>regtype</type>, qui est une type d'alias d'OID (voir
+   <xref linkend="datatype-oid"/>)&nbsp;; cela signifie que c'est la même chose
+   qu'un OID pour un bit de comparaison mais que cela s'affiche comme un nom de
+   type. Par exemple&nbsp;:
 <programlisting>
 SELECT pg_typeof(33);
 
@@ -12994,7 +13008,8 @@
       <row>
        <entry><literal><function>txid_visible_in_snapshot</function>(<parameter>bigint</parameter>, <parameter>txid_snapshot</parameter>)</literal></entry>
        <entry><type>boolean</type></entry>
-       <entry>l'ID de transaction est-il visible dans l'instantané&nbsp;? (do not use with subtransaction ids)</entry>
+       <entry>l'ID de transaction est-il visible dans l'instantané&nbsp;?
+        (ne pas utiliser les identifiants de sous-transactions)</entry>
       </row>
      </tbody>
     </tgroup>
@@ -13042,14 +13057,14 @@
       <row>
        <entry><type>xip_list</type></entry>
        <entry>
-        Active txids at the time of the snapshot.  The list
-        includes only those active txids between <literal>xmin</literal>
-        and <literal>xmax</literal>; there might be active txids higher
-        than xmax.  A txid that is <literal>xmin &lt;= txid &lt;
-        xmax</literal> and not in this list was already completed
-        at the time of the snapshot, and thus either visible or
-        dead according to its commit status.  The list does not
-        include txids of subtransactions.
+        Active les identifiants de transactions (txids) au moment de la prise
+	de l'image. La liste inclut seulement les identifiants actifs entre
+	<literal>xmin</literal> et <literal>xmax</literal>&nbsp;; il pourrait
+	y avoir des identifiants plus gros que xmax. Un identifiant qui est
+	<literal>xmin &lt;= txid &lt; xmax</literal> et qui n'est pas dans cette
+	liste est déjà terminé au moment de la prise de l'image, et du coup est
+	soit visible soit mort suivant son statut de validation. La liste
+	n'inclut pas les identifiants de transactions des sous-transactions.
        </entry>
       </row>
 
@@ -13207,7 +13222,7 @@
         <literal><function>pg_terminate_backend</function>(<parameter>pid</parameter> <type>int</type>)</literal>
         </entry>
        <entry><type>boolean</type></entry>
-       <entry>Terminate a backend</entry>
+       <entry>Termine une processus serveur</entry>
       </row>
       <row>
        <entry>
@@ -13364,22 +13379,23 @@
       </table>
 
     <para>
-      <function>pg_start_backup</function> accepte un paramètre texte, 
-      label utilisateur de la sauvegarde (typiquement, le nom
-      du fichier d'enregistrement de la sauvegarde). La fonction écrit un
-      fichier de label dans le répertoire de données du cluster, performs a checkpoint, et renvoie
-      la position du début de la sauvegarde dans le journal de transactions
-      au format texte. Ce résultat ne nécessite pas qu'on s'y intéresse, mais
-      il est fourni dans cette éventualité.
+      <function>pg_start_backup</function> accepte un paramètre texte, label
+      utilisateur de la sauvegarde (typiquement, le nom du fichier
+      d'enregistrement de la sauvegarde). La fonction écrit un fichier de
+      label dans le répertoire de données du cluster, réalise un point de
+      retournement, et renvoie la position du début de la sauvegarde dans le
+      journal de transactions au format texte. Ce résultat ne nécessite pas
+      qu'on s'y intéresse, mais il est fourni dans cette éventualité.
 <programlisting>postgres=# select pg_start_backup('le_label_ici');
  pg_start_backup
 -----------------
  0/D4445B8
 (1 row)</programlisting>
-    There is an optional boolean second parameter.  If <literal>true</literal>,
-    it specifies executing <function>pg_start_backup</function> as quickly as
-    possible.  This forces an immediate checkpoint which will cause a
-    spike in I/O operations, slowing any concurrently executing queries.
+    Il existe un second paramètre booléen optionnel. Si <literal>true</literal>,
+    il précise l'exécution de <function>pg_start_backup</function> aussi
+    rapidement que possible. Cela force un point de retournement immédiat qui
+    causera un pic dans les opérations d'entrées/sorties, ralentissant toutes
+    les requêtes exécutées en parallèle.
     </para>
 
     <para>
@@ -13517,9 +13533,9 @@
         </entry>
        <entry><type>bigint</type></entry>
        <entry>
-        Disk space used by the specified fork, <literal>'main'</literal> or
-        <literal>'fsm'</literal>, of a table or index with the specified OID
-        or name. The table name can be qualified with a schema name
+        Espace disque utilisé par le fork indiqué, <literal>'main'</literal> ou
+        <literal>'fsm'</literal>, d'une table ou index d'OID ou de nom indiqué.
+	Le nom de la table peut être qualifié avec un nom de schéma.
        </entry>
       </row>
       <row>
@@ -13528,7 +13544,7 @@
         </entry>
        <entry><type>bigint</type></entry>
        <entry>
-        Shorthand for <literal>pg_relation_size(..., 'main')</literal>
+        Raccourci pour <literal>pg_relation_size(..., 'main')</literal>
        </entry>
       </row>
       <row>
@@ -13561,9 +13577,9 @@
         </entry>
        <entry><type>bigint</type></entry>
        <entry>
-        Total disk space used by the table with the specified OID or name,
-        including indexes and toasted data.  The table name can be
-        qualified with a schema name
+        Espace disque total utilisé par la table de cet OID ou nom, incluant
+	les index et les données de la partie TOAST. Le nom de la table peut
+	être qualifié d'un nom de schéma.
        </entry>
       </row>
      </tbody>
@@ -13583,12 +13599,11 @@
 
    <para>
     <function>pg_relation_size</function> accepte l'OID ou le nom d'une table, d'un
-    index ou d'une table toast et renvoie la taille en octets. Specifying
-    <literal>'main'</literal> or leaving out the second argument returns the
-    size of the main data fork of the relation. Specifying
-    <literal>'fsm'</literal> returns the size of the
-    Free Space Map (see <xref linkend="storage-fsm"/>) associated with the
-    relation.
+    index ou d'une table toast et renvoie la taille en octets. Indiquer
+    <literal>'main'</literal> ou laisser le second argument renvoit la taille du
+    morceau de données principal de la relation. Indiquer
+    <literal>'fsm'</literal> renvoit la taille de la carte des espaces libres
+    (voir <xref linkend="storage-fsm"/>) associée à cette relation.
    </para>
 
    <para>
@@ -13885,54 +13900,58 @@
   </sect1>
   
   <sect1 id="functions-trigger">
-   <title>Trigger Functions</title>
+   <title>Fonctions trigger</title>
 
    <indexterm>
      <primary>suppress_redundant_updates_trigger</primary>
    </indexterm>
 
    <para>
-      Currently <productname>PostgreSQL</productname> provides one built in trigger
-      function, <function>suppress_redundant_updates_trigger</function>, 
-      which will prevent any update
-      that does not actually change the data in the row from taking place, in
-      contrast to the normal behaviour which always performs the update
-      regardless of whether or not the data has changed. (This normal behaviour
-      makes updates run faster, since no checking is required, and is also
-      useful in certain cases.)
+      Actuellement, <productname>PostgreSQL</productname> fournit une fonction
+      de trigger interne, <function>suppress_redundant_updates_trigger</function>,
+      qui empêchera toute mise à jour qui ne modifie pas réellement les données
+      de cette ligne, en contrate au comportement normal qui réalise toujours
+      une mise à jour, que les données soient réellement changées ou pas. (Ce
+      comportement normal fait que les mises à jour s'exécutent rapidement car
+      aucune vérification n'est nécessaire et c'est aussi utile dans certains
+      cas.)
     </para>
 
     <para>
-      Ideally, you should normally avoid running updates that don't actually
-      change the data in the record. Redundant updates can cost considerable
-      unnecessary time, especially if there are lots of indexes to alter,
-      and space in dead rows that will eventually have to be vacuumed.
-      However, detecting such situations in client code is not
-      always easy, or even possible, and writing expressions to detect
-      them can be error-prone. An alternative is to use 
-      <function>suppress_redundant_updates_trigger</function>, which will skip
-      updates that don't change the data. You should use this with care,
-      however. The trigger takes a small but non-trivial time for each record, 
-      so if most of the records affected by an update are actually changed,
-      use of this trigger will actually make the update run slower.
+      Idéalement, vous devriez normalement éviter d'exécuter des mises à jour
+      qui ne modifient pas réellement les données de l'enregistrement. Les mise
+      à jour redondantes peuvent coûter considérablement en temps d'exécution,
+      tout spécialement si vous avez beaucoup d'index à modifier, et en espace
+      dans des lignes mortes que vous devrez finir par VACUUMées. Néanmoins,
+      la détection de telles situations dans le code client n'est pas toujours
+      facile, voire même possible, et écrire des expressions pour détecter ce
+      type de cas peut facilement amener des erreyrs. Une alternative est
+      d'utiliser <function>suppress_redundant_updates_trigger</function>, qui
+      ignorera les mises à jour qui ne modifient pas réellement les données.
+      Néanmoins, vous devez être très prudent quant à son utilisation. Le trigger
+      consomme un temps petit, mais à ne pas négliger, pour vérifier que la mise
+      à jour doit se faire. Autrement dit, si la plupart des enregistrements
+      affectés par une mise à jour seront réellement modifiés, utiliser ce
+      trigger rendra la mise à jour bien plus lente.
     </para>
 
     <para>
-      The <function>suppress_redundant_updates_trigger</function> function can be 
-      added to a table like this:
+      La fonction <function>suppress_redundant_updates_trigger</function> peut
+      être ajoutée à une table de cette façon&nbsp;:
 <programlisting>
 CREATE TRIGGER z_min_update 
 BEFORE UPDATE ON tablename
 FOR EACH ROW EXECUTE PROCEDURE suppress_redundant_updates_trigger();
 </programlisting>
-      In most cases, you would want to fire this trigger last for each row.
-      Bearing in mind that triggers fire in name order, you would then
-      choose a trigger name that comes after the name of any other trigger
-      you might have on the table.
+      Dans la plupart des cas, vous voudrez déclencher ce tigger en dernier pour
+      chaque ligne. Gardez en tête que les triggers sont déclenchés dans l'ordre
+      alphabétique de leur nom, vous choisirez donc un nom de trigger qui vient
+      apr_s le nom des autres trigegrs que vous pourriez avoir sur la table.
     </para>
+    
     <para>
-       For more information about creating triggers, see
-        <xref linkend="sql-createtrigger"/>.
+      Pour plus d'informations sur la création des trigger, voir
+      <xref linkend="sql-createtrigger"/>.
     </para>
   </sect1>
 </chapter>

Modified: traduc/trunk/postgresql/release.xml
===================================================================
--- traduc/trunk/postgresql/release.xml	2009-05-02 15:22:39 UTC (rev 1316)
+++ traduc/trunk/postgresql/release.xml	2009-05-03 11:57:02 UTC (rev 1317)
@@ -2263,7 +2263,7 @@
     </itemizedlist>
 
     <sect4>
-     <title><link linkend="APP-PSQL"><application>psql</application></link></title>
+     <title><link linkend="app-psql"><application>psql</application></link></title>
      <itemizedlist>
 
       <listitem>
@@ -2360,7 +2360,7 @@
     </sect4>
 
     <sect4>
-     <title><link linkend="APP-PSQL"><application>psql</application></link> \d*</title>
+     <title><link linkend="app-psql"><application>psql</application></link> \d*</title>
      <itemizedlist>
 
       <listitem>
@@ -2456,7 +2456,7 @@
     </sect4>
 
     <sect4>
-     <title><link linkend="APP-PGDUMP"><application>pg_dump</application></link></title>
+     <title><link linkend="app-pgdump"><application>pg_dump</application></link></title>
      <itemizedlist>
 
       <listitem>
@@ -10579,8 +10579,7 @@
        <para>
         Amélioration des valeurs par défaut pour les paramètres <link
         linkend="guc-shared-buffers"><varname>shared_buffers</varname></link>
-        et <link
-        linkend="guc-max-fsm-pages"><varname>max_fsm_pages</varname></link>
+        et <varname>max_fsm_pages</varname>
         (Andrew)
        </para>
       </listitem>



Plus d'informations sur la liste de diffusion Trad