[Trad] [svn:pgfr] r1302 - in traduc/trunk/postgresql: . ref

admin at listes.postgresql.fr admin at listes.postgresql.fr
Mar 21 Avr 22:14:50 CEST 2009


Author: gleu
Date: 2009-04-21 22:14:50 +0200 (Tue, 21 Apr 2009)
New Revision: 1302

Modified:
   traduc/trunk/postgresql/advanced.xml
   traduc/trunk/postgresql/backup.xml
   traduc/trunk/postgresql/ref/alter_table.xml
Log:
Traduction 8.4 de Marc Cousin.


Modified: traduc/trunk/postgresql/advanced.xml
===================================================================
--- traduc/trunk/postgresql/advanced.xml	2009-04-21 20:14:33 UTC (rev 1301)
+++ traduc/trunk/postgresql/advanced.xml	2009-04-21 20:14:50 UTC (rev 1302)
@@ -354,82 +354,88 @@
 
 
   <sect1 id="tutorial-window">
-   <title id="tutorial-window-title">Window Functions</title>
+   <title id="tutorial-window-title">Fonctions window</title>
 
    <indexterm zone="tutorial-window">
-    <primary>window function</primary>
+    <primary>fonction window</primary>
    </indexterm>
 
    <para>
-    A <firstterm>window function</firstterm> performs a calculation across a set of
-    table rows that are somehow related to the current row.  This is comparable
-    to the type of calculation that can be done with an aggregate function.
-    But unlike regular aggregate functions, use of a window function does not
-    cause rows to become grouped into a single output row &mdash; the
-    rows retain their separate identities.  Behind the scenes, the window
-    function is able to access more than just the current row of the query
-    result.
+    Une <firstterm>fonction window</firstterm> effectue un calcul sur un jeu 
+    d'enregistrements liés d'une certaine façon à
+    l'enregistrement courant. On peut les rapprocher des calculs réalisables par
+    une fonction d'aggrégation mais, contrairement à une fonction d'aggrégation,
+    l'utilisation d'une fonction window n'entraîne pas le regroupement des
+    enregistrements traités en un seul &mdash; chaque enregistrement
+    garde son identité propre. En coulisse, la fonction window est capable
+    d'accéder à d'autres enregistrements que l'enregistrement courant du résultat
+    de la requête.
    </para>
 
    <para>
-    Here is an example that shows how to compare each employee's salary
-    with the average salary in his or her department:
+    Voici un exemple qui montre comment comparer le salaire d'un employé avec
+    le salaire moyen de sa division&nbsp;:
 
 <programlisting>
-SELECT depname, empno, salary, avg(salary) OVER (PARTITION BY depname) FROM empsalary;
+SELECT nomdep, noemp, salaire, avg(salaire) OVER (PARTITION BY nomdep) FROM salaireemp;
 </programlisting>
 
 <screen>
-  depname  | empno | salary |          avg          
------------+-------+--------+-----------------------
- develop   |    11 |   5200 | 5020.0000000000000000
- develop   |     7 |   4200 | 5020.0000000000000000
- develop   |     9 |   4500 | 5020.0000000000000000
- develop   |     8 |   6000 | 5020.0000000000000000
- develop   |    10 |   5200 | 5020.0000000000000000
- personnel |     5 |   3500 | 3700.0000000000000000
- personnel |     2 |   3900 | 3700.0000000000000000
- sales     |     3 |   4800 | 4866.6666666666666667
- sales     |     1 |   5000 | 4866.6666666666666667
- sales     |     4 |   4800 | 4866.6666666666666667
+  nomdep   | noemp | salaire |          avg          
+-----------+-------+---------+-----------------------
+ develop   |    11 |   5200  | 5020.0000000000000000
+ develop   |     7 |   4200  | 5020.0000000000000000
+ develop   |     9 |   4500  | 5020.0000000000000000
+ develop   |     8 |   6000  | 5020.0000000000000000
+ develop   |    10 |   5200  | 5020.0000000000000000
+ personnel |     5 |   3500  | 3700.0000000000000000
+ personnel |     2 |   3900  | 3700.0000000000000000
+ ventes    |     3 |   4800  | 4866.6666666666666667
+ ventes    |     1 |   5000  | 4866.6666666666666667
+ ventes    |     4 |   4800  | 4866.6666666666666667
 (10 rows)
 </screen>
 
-    The first three output columns come directly from the table
-    <structname>empsalary</structname>, and there is one output row for each row in the
-    table.  The fourth column represents an average taken across all the table
-    rows that have the same <structfield>depname</structfield> value as the current row.
-    (This actually is the same function as the regular <function>avg</function>
-    aggregate function, but the <literal>OVER</literal> clause causes it to be
-    treated as a window function and computed across an appropriate set of
-    rows.)
-   </para>
+    Les trois premières colonnes viennent directement de la table 
+    <structname>salaireemp</structname>, et il y a une ligne de sortie pour chaque
+    ligne de la table. La quatrième colonne représente une moyenne calculée sur
+    tous les enregistrements de la table qui ont la même valeur de 
+    <structfield>nomdep</structfield> que la ligne courante. (Il s'agit
+    effectivement de la même fonction que la fonction d'aggrégat classique
+    <function>avg</function>, mais la clause <literal>OVER</literal> entraîne
+    son exécution en tant que fonction window et son calcul sur le jeu
+    approprié d'enregistrements.)
+    </para>
 
    <para>
-    A window function call always contains an <literal>OVER</literal> clause
-    following the window function's name and argument(s).  This is what
-    syntactically distinguishes it from a regular function or aggregate
-    function.  The <literal>OVER</literal> clause determines exactly how the
-    rows of the query are split up for processing by the window function.
-    The <literal>PARTITION BY</literal> list within <literal>OVER</literal> specifies
-    dividing the rows into groups, or partitions, that share the same
-    values of the <literal>PARTITION BY</literal> expression(s).  For each row,
-    the window function is computed across the rows that fall into the
-    same partition as the current row.
+    Un appel à une fonction window contient toujours une clause 
+    <literal>OVER</literal> qui suit le nom et les arguments de la fonction.
+    C'est ce qui permet de la distinguer syntaxiquement d'une fonction simple
+    ou d'une fonction de regroupement. La clause <literal>OVER</literal>
+    détermine précisément comment les lignes de la requête sont éclatées pour 
+    être traitées par la fonction window. La liste
+    <literal>PARTITION BY</literal> contenue dans la clause
+    <literal>OVER</literal> spécifie comment répartir les enregistrements en
+    groupes, ou partitions, qui partagent les mêmes valeurs pour la (les)
+    expression(s) contenue(s) dans <literal>PARTITION BY</literal>. Pour chaque
+    enregistrement, la fonction window est calculée sur les enregistrements
+    qui se retrouvent dans la même partition que l'enregistrement courant.
    </para>
 
    <para>
-    Although <function>avg</function> will produce the same result no matter
-    what order it processes the partition's rows in, this is not true of all
-    window functions.  When needed, you can control that order using
-    <literal>ORDER BY</literal> within <literal>OVER</literal>.  Here is an example:
+    Bien que la fonction <function>avg</function> produise le même résultat
+    quel que soit l'ordre dans lequel elle traite les enregistrements de la
+    partition, ceci n'est pas généralisable à toutes les fonctions à fenêtre.
+    Quand cela sera nécessaire, vous pourrez contrôler cet ordre en utilisant
+    une clause <literal>ORDER BY</literal> à l'intérieur de 
+    <literal>OVER</literal>. En voici un exemple&nbsp;:
 
 <programlisting>
-SELECT depname, empno, salary, rank() OVER (PARTITION BY depname ORDER BY salary DESC) FROM empsalary;
+SELECT nomdep, noemp, salaire, rank() OVER (PARTITION BY nomdep ORDER BY salaire DESC) FROM salaireemp;
 </programlisting>
 
 <screen>
-  depname  | empno | salary | rank 
+  nomdep   | noemp | salaire| rank 
 -----------+-------+--------+------
  develop   |     8 |   6000 |    1
  develop   |    10 |   5200 |    2
@@ -438,64 +444,72 @@
  develop   |     7 |   4200 |    5
  personnel |     2 |   3900 |    1
  personnel |     5 |   3500 |    2
- sales     |     1 |   5000 |    1
- sales     |     4 |   4800 |    2
- sales     |     3 |   4800 |    2
+ ventes    |     1 |   5000 |    1
+ ventes    |     4 |   4800 |    2
+ ventes    |     3 |   4800 |    2
 (10 rows)
 </screen>
 
-    As shown here, the <function>rank</function> function produces a numerical rank
-    within the current row's partition for each distinct <literal>ORDER
-    BY</literal>
-    value, in the order defined by the <literal>ORDER BY</literal> clause.
-    <function>rank</function> needs no explicit parameter, because its behavior
-    is entirely determined by the <literal>OVER</literal> clause.
+    Comme vous avez pu le constater, la fonction <function>rank</function>
+    produit un rang numérique dans la partition de l'enregistrement pour chaque
+    valeur différente de l'<literal>ORDER BY</literal>, dans l'ordre défini
+    par la clause <literal>ORDER BY</literal>. <function>rank</function> n'a pas
+    besoin de paramêtre explicite, puisque son comportement est totalement
+    déterminé par la clause <literal>OVER</literal>.
    </para>
 
    <para>
-    The rows considered by a window function are those of the <quote>virtual
-    table</quote> produced by the query's <literal>FROM</literal> clause as filtered by its
-    <literal>WHERE</literal>, <literal>GROUP BY</literal>, and
-    <literal>HAVING</literal> clauses
-    if any.  For example, a row removed because it does not meet the
-    <literal>WHERE</literal> condition is not seen by any window function.
-    A query can contain multiple window functions that slice up the data
-    in different ways by means of different <literal>OVER</literal> clauses, but
-    they all act on the same collection of rows defined by this virtual table.
+    Les lignes prises en compte par une fonction window sont celles de la 
+    <quote>table virtuelle</quote> produite par la clause <literal>FROM</literal>
+    de la requête filtrée par ses clauses <literal>WHERE</literal>,
+    <literal>GROUP BY</literal> et <literal>HAVING</literal>, s'il y en a.
+    Par exemple, une ligne rejetée parce qu'elle ne satisfait pas à la condition
+    <literal>WHERE</literal> n'est vue par aucune fonction window.
+    Une requête peut contenir plusieurs de ces fonctions window qui découpent
+    les données de façons différentes, par le biais de clauses
+    <literal>OVER</literal> différentes, mais elles travaillent toutes sur le
+    même jeu d'enregistrements, défini par cette table virtuelle.
    </para>
 
    <para>
-    We already saw that <literal>ORDER BY</literal> can be omitted if the ordering
-    of rows is not important.  It is also possible to omit <literal>PARTITION
-    BY</literal>, in which case there is just one partition containing all the rows.
+    Nous avons déjà vu que <literal>ORDER BY</literal> pouvait être omis si
+    l'ordre des enregistrements est sans importance. Il est aussi possible
+    d'omettre <literal>PARTITION BY</literal>, auquel cas il n'y a qu'une
+    partition, contenant tous les enregistrements.
    </para>
 
    <para>
-    There is another important concept associated with window functions:
-    for each row, there is a set of rows within its partition called its
-    <firstterm>window frame</firstterm>.  Many (but not all) window functions act only
-    on the rows of the window frame, rather than of the whole partition.
-    By default, if <literal>ORDER BY</literal> is supplied then the frame consists of
-    all rows from the start of the partition up through the current row, plus
-    any following rows that are equal to the current row according to the
-    <literal>ORDER BY</literal> clause.  When <literal>ORDER BY</literal> is omitted the
-    default frame consists of all rows in the partition.
+    Il y a un autre concept important associé aux fonctions window&nbsp;:
+    pour chaque enregistrement, il existe un jeu d'enregistrements dans sa partition
+    appelé son <firstterm>window frame</firstterm> (cadre de fenêtre).
+    Beaucoup (mais pas toutes) des fonctions window travaillent uniquement sur les
+    enregistrements du <foreignphrase>window frame</foreignphrase>, plutôt que
+    sur l'ensemble de la partition.
+    Par défaut, si on a précisé une clause <literal>ORDER BY</literal>, la
+    <foreignphrase>window frame</foreignphrase> contient tous les enregistrements
+    du début de la partition
+    jusqu'à l'enregistrement courant, ainsi que tous les enregistrements
+    suivants qui sont égaux à l'enregistrement courant au sens de la clause 
+    <literal>ORDER BY</literal>. Quand <literal>ORDER BY</literal> est omis,
+    la <foreignphrase>window frame</foreignphrase> par défaut contient tous les
+    enregistrements de la partition.
      <footnote>
       <para>
-       There are options to define the window frame in other ways, but
-       this tutorial does not cover them.  See
-       <xref linkend="syntax-window-functions"/> for details.
+       Il existe des options pour définir la <foreignphrase>window
+       frame</foreignphrase> autrement, mais ce
+       tutorial ne les présente pas. Voyez
+       <xref linkend="syntax-window-functions"/> pour les détails.
       </para>
      </footnote>
-    Here is an example using <function>sum</function>:
+    Voici un exemple utilisant <function>sum</function>&nbsp;:
    </para>
 
 <programlisting>
-SELECT salary, sum(salary) OVER () FROM empsalary;
+SELECT salaire, sum(salaire) OVER () FROM salaireemp;
 </programlisting>
 
 <screen>
- salary |  sum  
+ salaire|  sum  
 --------+-------
    5200 | 47100
    5000 | 47100
@@ -511,21 +525,20 @@
 </screen>
 
    <para>
-    Above, since there is no <literal>ORDER BY</literal> in the
-    <literal>OVER</literal>
-    clause, the window frame is the same as the partition, which for lack of
-    <literal>PARTITION BY</literal> is the whole table; in other words each sum is
-    taken over the whole table and so we get the same result for each output
-    row.  But if we add an <literal>ORDER BY</literal> clause, we get very different
-    results:
+    Ci-dessus, puisqu'il n'y a pas d'<literal>ORDER BY</literal> dans la clause
+    <literal>OVER</literal>, la <foreignphrase>window frame</foreignphrase> est
+    égale à la partition&nbsp;; en d'autres
+    termes, chaque somme est calculée sur toute la table, ce qui fait qu'on a le
+    même résultat pour chaque ligne du résultat. Mais si on ajoute une clause
+    <literal>ORDER BY</literal>, on a un résultat très différent&nbsp;:
    </para>
 
 <programlisting>
-SELECT salary, sum(salary) OVER (ORDER BY salary) FROM empsalary;
+SELECT salaire, sum(salaire) OVER (ORDER BY salaire) FROM salaireemp;
 </programlisting>
 
 <screen>
- salary |  sum  
+ salaire|  sum  
 --------+-------
    3500 |  3500
    3900 |  7400
@@ -541,62 +554,64 @@
 </screen>
 
    <para>
-    Here the sum is taken from the first (lowest) salary up through the
-    current one, including any duplicates of the current one (notice the
-    results for the duplicated salaries).
+    Ici, sum est calculé à partir du premier salaire (c'est-à-dire le plus bas)
+    jusqu'au salaire courant, en incluant tous les doublons du salaire courant
+    (remarquez les valeurs pour les salaires identiques).
    </para>
 
    <para>
-    Window functions are permitted only in the <literal>SELECT</literal> list
-    and the <literal>ORDER BY</literal> clause of the query. They are forbidden
-    elsewhere, such as in <literal>GROUP BY</literal>,
-<literal>HAVING</literal>
-    and <literal>WHERE</literal> clauses.  This is because they logically
-    execute after the processing of those clauses.  Also, window functions
-    execute after regular aggregate functions.  This means it is valid to
-    include an aggregate function call in the arguments of a window function,
-    but not vice versa.
+    Les fonctions window ne sont autorisées que dans la liste
+    <literal>SELECT</literal> et la clause <literal>ORDER BY</literal> de la
+    requête. Elles sont interdites ailleurs, comme par exemple dans les clauses
+    <literal>GROUP BY</literal>,<literal>HAVING</literal> et 
+    <literal>WHERE</literal>. La raison est qu'elles sont exécutées après le
+    traitement de ces clauses. Par ailleurs, les fonctions window s'exécutent
+    après les fonctions d'aggrégat classiques. Cela signifie qu'il est permis
+    d'inclure une fonction d'aggrégat dans les arguments d'une fonction window,
+    mais pas l'inverse.
    </para>
 
    <para>
-    If there is a need to filter or group rows after the window calculations
-    are performed, you can use a sub-select.  For example:
+    S'il y a besoin de filtrer ou de grouper les enregistrements
+    après que le calcul des fonctions window ait été effectué, vous pouvez
+    utiliser un sous-select. Par exemple&nbsp;:
 
 <programlisting>
-SELECT depname, empno, salary, enroll_date
+SELECT nomdep, noemp, salaire, date_embauche
 FROM
-  (SELECT depname, empno, salary, enroll_date,
-          rank() OVER (PARTITION BY depname ORDER BY salary DESC, empno) AS pos
-     FROM empsalary
+  (SELECT nomdep, noemp, salaire, date_embauche,
+          rank() OVER (PARTITION BY nomdep ORDER BY saire DESC, noemp) AS pos
+     FROM salaireemp
   ) AS ss
 WHERE pos &lt; 3;
 </programlisting>
 
-    The above query only shows the rows from the inner query having
-    <literal>rank</literal> less than <literal>3</literal>.
+    La requête ci-dessus n'affiche que les enregistrements de la requête interne
+    ayant un rang inférieur à 3.
    </para>
 
    <para>
-    When a query involves multiple window functions, it is possible to write
-    out each one with a separate <literal>OVER</literal> clause, but this is
-    duplicative and error-prone if the same windowing behavior is wanted
-    for several functions.  Instead, each windowing behavior can be named
-    in a <literal>WINDOW</literal> clause and then referenced in
-    <literal>OVER</literal>.
-    For example:
+    Quand une requête met en jeu plusieurs fonctions window, il est possible
+    d'écrire chacune avec une clause <literal>OVER</literal> différente,
+    mais cela entraine des duplications de code et augmente les risques d'erreurs
+    si on souhaite le même comportement pour plusieurs fonctions window. À la place,
+    chaque comportement window peut être associé à un nom dans une clause
+    <literal>WINDOW</literal> et ensuite référence dans <literal>OVER</literal>.
+    Par exemple&nbsp;:
 
 <programlisting>
-SELECT sum(salary) OVER w, avg(salary) OVER w
-  FROM empsalary
-  WINDOW w AS (PARTITION BY depname ORDER BY salary DESC);
+SELECT sum(salaire) OVER w, avg(salaire) OVER w
+  FROM salaireemp
+  WINDOW w AS (PARTITION BY nomdep ORDER BY salaire DESC);
 </programlisting>
    </para>
 
    <para>
-    More details about window functions can be found in
+    Plus de détails sur les fonctions window peuvent être trouvés dans
+    
     <xref linkend="syntax-window-functions"/>,
-    <xref linkend="queries-window"/>, and the
-    <xref linkend="sql-select" endterm="sql-select-title"/> reference page.
+    <xref linkend="queries-window"/>, et la page de référence
+    <xref linkend="sql-select" endterm="sql-select-title"/>.
    </para>
   </sect1>
 

Modified: traduc/trunk/postgresql/backup.xml
===================================================================
--- traduc/trunk/postgresql/backup.xml	2009-04-21 20:14:33 UTC (rev 1301)
+++ traduc/trunk/postgresql/backup.xml	2009-04-21 20:14:50 UTC (rev 1302)
@@ -408,13 +408,15 @@
   </para>
 
   <para>
-   If simultaneous snapshots are not possible, one option is to shut down
-   the database server long enough to establish all the frozen snapshots.
-   Another option is perform a continuous archiving base backup (<xref
-   linkend="backup-base-backup"/>) because such backups are immune to file
-   system changes during the backup.  This requires enabling continuous
-   archiving just during the backup process; restore is done using
-   continuous archive recovery (<xref linkend="backup-pitr-recovery"/>).
+   S'il n'est pas possible d'obtenir des images gelées simultanées, il est
+   toujours possible d'éteindre le serveur de bases de données suffisamment
+   longtemps pour établir toutes les images gelées. Une autre possibilité est
+   de faire une sauvegarde de la base en archivage continu (<xref
+   linkend="backup-base-backup"/>) parce que ces sauvegardes ne sont pas
+   sensibles aux modifications des fichiers pendant la sauvegarde. Cela n'impose
+   d'activer l'archivage en continu que pendant la période de sauvegarde&nbsp;; la 
+   restauration est faite en utilisant la restauration d'archive en ligne
+   (<xref linkend="backup-pitr-recovery"/>).
   </para>
 
   <para>
@@ -810,20 +812,17 @@
     <para>
      Une fois que les fichiers des segments WAL utilisés lors de la sauvegarde
      sont archivés, c'est terminé. Le fichier identifié par le résultat de
-     <function>pg_stop_backup</function> est le dernier segment that is required
-     to form a complete set of backup files.
-     <function>pg_stop_backup</function> does not return until the last segment has
-     been archived.
-     Archiving of these files happens automatically since you have
-     already configured <varname>archive_command</varname>. In most cases this
-     happens quickly, but you are advised to monitor your archive
-     system to ensure there are no delays.
-     If the archive process has fallen behind
-     because of failures of the archive command, it will keep retrying
-     until the archive succeeds and the backup is complete.
-     If you wish to place a time limit on the execution of
-     <function>pg_stop_backup</function>, set an appropriate
-     <varname>statement_timeout</varname> value.
+     <function>pg_stop_backup</function> est le dernier segment nécessaire pour produire
+     un jeu complet de fichiers de backup.
+     <function>pg_stop_backup</function> ne rend pas la main avant que le dernier segment
+     n'ait été archivé. L'archivage de ces fichiers est automatique puisque
+     vous avez déjà configuré <varname>archive_command</varname>. Dans la plupart des
+     cas, c'est rapide, mais il est conseillé de surveiller votre système d'archivage pour
+     vous assurer qu'il n'y a pas de retard. Si le processus d'archivage a pris du retard 
+     en raison d'échecs de la commande d'archivage, il continuera d'essayer jusqu'à ce que
+     l'archive réussisse et que le backup soit complet. Si vous souhaitez
+     positionner une limite au temps d'exéuction de <function>pg_stop_backup</function>,
+     mettez en place une valeur appropriée de <varname>statement_timeout</varname>.
     </para>
    </listitem>
   </orderedlist>
@@ -1081,8 +1080,8 @@
     zéro en cas d'échec. Des fichiers absents de l'archive
     <emphasis>seront</emphasis> demandés à la commande&nbsp;; elle doit
     renvoyer autre chose que zéro dans ce cas. Ce n'est pas une condition
-    d'erreur. Not all of the requested files will be WAL segment
-    files; you should also expect requests for files with a suffix of
+    d'erreur. Tous les fichiers demandés ne seront pas des segmets WAL; vous
+    pouvez aussi vous attendre à des demandes de fichiers suffixés par
     <literal>.backup</literal> or <literal>.history</literal>. Il faut également
     garder à l'esprit que le nom de base du chemin <literal>%p</literal>
     diffère de <literal>%f</literal>&nbsp;; il ne sont pas interchangeables.
@@ -1411,26 +1410,26 @@
       de transaction archivés sont ensuite ajoutés à la sauvegarde pour que
       la sauvegarde de base et les journaux requis fassent partie du même
       fichier <application>tar</application>.
-      Please remember to add error handling to your backup scripts.
+      Rappelez vous d'ajouter de la gestion d'erreur à vos scripts.
      </para>
 
      <para>
-      If archive storage size is a concern, use
+      Si la taille du stockage des archives est un problème, utilisez
       <application>pg_compresslog</application>,
-      <ulink url="http://pglesslog.projects.postgresql.org"></ulink>, to
-      remove unnecessary <xref linkend="guc-full-page-writes"/> and trailing
-      space from the WAL files.  You can then use
-      <application>gzip</application> to further compress the output of
-      <application>pg_compresslog</application>:
+      <ulink url="http://pglesslog.projects.postgresql.org"></ulink>, afin
+      d'enlever les inutiles <xref linkend="guc-full-page-writes"/> et les
+      espaces de fin des journaux de transactions. Vous pouvez utiliser
+      <application>gzip</application> pour compresser encore davantage le
+      résultat de <application>pg_compresslog</application>&nbsp;:
 <programlisting>
-archive_command = 'pg_compresslog %p - | gzip &gt; /var/lib/pgsql/archive/%f'
+          archive_command = 'pg_compresslog %p - | gzip &gt; /var/lib/pgsql/archive/%f'
 </programlisting>
-      You will then need to use <application>gunzip</application> and
-      <application>pg_decompresslog</application> during recovery:
+      Vous aurez alors besoin d'utiliser <application>gunzip</application> et
+      <application>pg_decompresslog</application> pendant la récupération&nbsp;:
 <programlisting>
-restore_command = 'gunzip &lt; /mnt/server/archivedir/%f | pg_decompresslog - %p'
+          restore_command = 'gunzip &lt; /mnt/server/archivedir/%f | pg_decompresslog - %p'
 </programlisting>
-     </para>
+    </para>
     </sect3>
 
     <sect3 id="backup-scripts">
@@ -1746,9 +1745,10 @@
     si le fichier est indisponible.
     Dans le cas du serveur de secours, il est normal que le fichier suivant
     n'existe pas. Il ne reste donc
-    qu'à attendre son arrivée. For files ending in <literal>.backup</literal> or
-    <literal>.history</literal> there is no need to wait, and a non-zero return
-    code must be returned. Une <varname>restore_command</varname>
+    qu'à attendre son arrivée. Pour les fichiers se terminant en 
+    <literal>.backup</literal> ou <literal>.history</literal>, il n'est pas besoin
+    d'attendre, et un code retour différent de zéro doit être retourné. Une 
+    <varname>restore_command</varname>
     d'attente peut être obtenue par l'écriture d'un script personnalisé
     qui boucle sur un test d'apparition du prochain fichier WAL. Il faut
     également définir un moyen de déclencher la bascule
@@ -1777,9 +1777,9 @@
    <para>
     Un exemple fonctionnel de <varname>restore_command</varname> 
     d'attente est fourni dans un module <filename>contrib</filename> appelé
-    <application>pg_standby</application>. It
-    should be used as a reference on how to correctly implement the logic
-    described above. Cet exemple peut être étendu
+    <application>pg_standby</application>. Il devrait être utilisé comme 
+    référence sur la façon d'implémenter correctement la logique décrite
+    ci-dessus. Cet exemple peut être étendu
     si nécessaire pour supporter des configurations ou environnements
     spécifiques.
    </para>
@@ -2172,11 +2172,12 @@
   </note>
 
   <para>
-   In practice you probably want to test your client applications on the
-   new version before switching over completely.  This is another reason
-   for setting up concurrent installations of old and new versions.  When
-   testing a <productname>PostgreSQL</productname> major upgrade, consider the
-   following categories of possible changes:
+   En pratique, vous voudrez probablement tester vos applications clientes
+   sur la nouvelle version avant de basculer complètement. C'est une raison
+   supplémentaire pour faire cohabiter des installations d'anciennes et nouvelles
+   versions. Quand vous testez une mise à jour majeure de 
+   <productname>PostgreSQL</productname>, prenez en compte les catégories
+   suivantes de changements potentiels&nbsp;:
   </para>
 
   <variablelist>
@@ -2185,8 +2186,8 @@
     <term>Administration</term>
     <listitem>
      <para>
-      The capabilities available for administrators to monitor and control
-      the server often change and improve in each major release.
+      Les fonctionnalités de surveillance et de contrôle du serveur changent
+      et s'améliorent souvent à l'occasion d'une version majeure.
      </para>
     </listitem>
    </varlistentry>
@@ -2195,38 +2196,41 @@
     <term>SQL</term>
     <listitem>
      <para>
-      Typically this includes new SQL command capabilities and not changes
-      in behavior, unless specifically mentioned in the release notes.
+      De façon générale, elle inclut de nouvelles fonctionnalités et commandes SQL,
+      et non des changements de comportements, sauf notification contraire dans les 
+      notes de version.
      </para>
     </listitem>
    </varlistentry>
 
    <varlistentry>
-    <term>Library API</term>
+    <term>API des bibliothèques</term>
     <listitem>
      <para>
-      Typically libraries like <application>libpq</application> only add new
-      functionality, again unless mentioned in the release notes.
+      Habituellement, les bibliothèques telles que <application>libpq</application>
+      ne font qu'ajouter des fonctionnalités, sauf notification contraire dans les
+      notes de version.
      </para>
     </listitem>
    </varlistentry>
 
    <varlistentry>
-    <term>System Catalogs</term>
+    <term>Catalogues systèmes</term>
     <listitem>
      <para>
-      System catalog changes usually only affect database management tools.
+      Les changements concernant le catalogue système n'affectent habituellement que
+      les outils de gestion de base de données.
      </para>
     </listitem>
    </varlistentry>
 
    <varlistentry>
-    <term>Server C-language API</term>
+    <term>API serveur pour le langage C</term>
     <listitem>
      <para>
-      This involved changes in the backend function API, which is written
-      in the C programming language.  Such changes effect code that
-      references backend functions deep inside the server.
+      Cela implique des changements dans les API des fonctions du serveur, qui est
+      écrit dans le langage de programmation C. Des changements de ce type touche du
+      code qui utilise des fonctions profondément internes au serveur.
      </para>
     </listitem>
    </varlistentry>

Modified: traduc/trunk/postgresql/ref/alter_table.xml
===================================================================
--- traduc/trunk/postgresql/ref/alter_table.xml	2009-04-21 20:14:33 UTC (rev 1301)
+++ traduc/trunk/postgresql/ref/alter_table.xml	2009-04-21 20:14:50 UTC (rev 1302)
@@ -275,15 +275,15 @@
     <term><literal>SET WITH OIDS</literal></term>
     <listitem>
      <para>
-      This form adds an <literal>oid</literal> system column to the
-      table (see <xref linkend="ddl-system-columns"/>).
-      It does nothing if the table already has OIDs.
-     </para>
+      Cette forme ajoute une colonne système <literal>oid</literal> à la table
+      (voir <xref linkend="ddl-system-columns"/>).
+      Elle ne fait rien si la table a déjà des OID.
+      </para>
 
      <para>
-      Note that this is not equivalent to <literal>ADD COLUMN oid oid</literal>;
-      that would add a normal column that happened to be named
-      <literal>oid</literal>, not a system column.
+      Notez que ce n'est pas équivalent à <literal>ADD COLUMN oid oid</literal>;
+      Ceci ajouterait une colonne normale qui s'appèlerait <literal>oid</literal>,
+      mais ne serait pas la colonne système.
      </para>
     </listitem>
    </varlistentry>
@@ -320,9 +320,9 @@
        <literal>OIDS</literal> avec la syntaxe <literal>WITH (<replaceable
        class="parameter">paramètre_stockage</replaceable>)</literal>,
        <command>ALTER TABLE</command> ne traite pas les <literal>OIDS</literal>
-       comme un paramètre de stockage. Instead use the <literal>SET WITH
-       OIDS</literal>
-       and <literal>SET WITHOUT OIDS</literal> forms to change OID status.
+       comme un paramètre de stockage. À la place, utilisez les formes
+       <literal>SET WITH OIDS</literal> et <literal>SET WITHOUT OIDS</literal>
+       pour changer le statut des OID sur la table.
       </para>
      </note>
     </listitem>
@@ -669,8 +669,8 @@
     modifier le type d'une colonne existante requiert que la table entière soit
     réécrite. Cela peut prendre un temps considérable pour une grande
     table&nbsp;; et cela demande temporairement le double d'espace disque.
-    Adding or removing a system
-    <literal>oid</literal> column likewise requires rewriting the entire table.
+    Ajouter ou supprimer une colonne système <literal>oid</literal> requiert de
+    la même façon de réécrire la table entière.
    </para>
 
    <para>
@@ -693,9 +693,9 @@
     Ainsi, supprimer une colonne ne réduit pas immédiatement la taille de la
     table sur disque car l'espace occupé par la colonne n'est pas 
     récupéré. Cet espace est récupéré au fur et à mesure des 
-    mises à jour des lignes de la table. (These statements do
-    not apply when dropping the system <literal>oid</literal> column; that is done
-    with an immediate rewrite.)
+    mises à jour des lignes de la table. (Ceci n'est pas vrai quand on supprime
+    la colonne système <literal>oid</literal>&nbsp;; ceci est fait avec une réécriture
+    immédiate de la table.)
    </para>
     
    <para>
@@ -756,8 +756,8 @@
     et <literal>TABLESPACE</literal> ne sont jamais propagées aux tables
     descendantes&nbsp;; c'est-à-dire qu'elles agissent comme si
     <literal>ONLY</literal> est spécifié.
-    Seules les ajouts de contraintes <literal>CHECK</literal> peuvent être propagés,
-    and is required to do so for such constraints.
+    Seuls les ajouts de contraintes <literal>CHECK</literal> sont propagés,
+    et c'est d'ailleurs obligatoire pour ces contraintes.
    </para>
 
    <para>
@@ -853,11 +853,11 @@
   </para>
 
   <para>
-   To remove a check constraint from a table only:
+   Pour enlever une contrainte check d'une table seule (pas sur ses enfants)
 <programlisting>
-ALTER TABLE ONLY distributors DROP CONSTRAINT zipchk;
+ALTER TABLE ONLY distributeurs DROP CONSTRAINT verif_cp;
 </programlisting>
-   (The check constraint remains in place for any child tables.)
+   (La contrainte check reste en place pour toutes les tables filles).
   </para>
 
   <para> 



More information about the Trad mailing list