[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 — 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 — 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 :
<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 :
<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 :
+ 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> :
</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 ; 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 :
</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 :
<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 < 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 :
<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 ; 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 ; 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> ; 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> :
<programlisting>
-archive_command = 'pg_compresslog %p - | gzip > /var/lib/pgsql/archive/%f'
+ archive_command = 'pg_compresslog %p - | gzip > /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 :
<programlisting>
-restore_command = 'gunzip < /mnt/server/archivedir/%f | pg_decompresslog - %p'
+ restore_command = 'gunzip < /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 :
</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 ; 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> ; 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 ; 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