Changeset 732

Show
Ignore:
Timestamp:
10/05/07 19:06:40 (1 year ago)
Author:
sas
Message:

Trop tard pour être commité avant le merge 8.3 ?

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • traduc/branches/bv82x/manuel/func.xml

    r706 r732  
    90699069 </sect1> 
    90709070 
    9071 <!-- ICI --> 
    90729071 <sect1 id="functions-comparisons"> 
    90739072  <title>Comparaisons de lignes et de tableaux</title> 
     
    91119110 
    91129111  <para> 
    9113    Cette section décrit plusieurs constructions spécialisées pour les 
    9114    comparaisons multiples entre des groupes de valeurs. Ces formes sont 
    9115    syntaxiquement en relation avec les formes de sous-requêtes de la section 
    9116    précédente mais n'impliquent pas de sous-requêtes. Ces formes impliquant des 
    9117    sous-expressions de tableaux sont des extensions de 
     9112   Cette section décrit des constructions adaptées aux 
     9113   comparaisons entre groupes de valeurs. Ces formes sont 
     9114   syntaxiquement liées aux formes des sous-requêtes de la section 
     9115   précédente, mais elles n'impliquent pas de sous-requêtes. Les formes qui 
     9116   impliquent des sous-expressions de tableaux sont des extensions de 
    91189117   <productname>PostgreSQL</productname>&nbsp;; le reste est compatible avec 
    91199118   <acronym>SQL</acronym>. Toutes les formes d'expression documentées dans cette 
     
    91409139 
    91419140  <para> 
    9142    Notez que si l'expression du côté gauche renvoie nul ou s'il n'y a pas 
    9143    de valeurs du côté droit égales et qu'au moins une des expressions du côté 
    9144    droit renvoie la valeur NULL, le résultat de la construction 
    9145    <token>IN</token> sera NULL et non pas faux. Ceci est en accord avec les 
     9141   Si l'expression du côté gauche renvoie NULL, ou s'il n'y a pas 
     9142   de valeurs du côté droit égales et qu'au moins une expression du côté 
     9143   droit renvoie NULL, le résultat de la construction 
     9144   <token>IN</token> est NULL et non pas faux. Ceci est en accord avec les 
    91469145   règles du standard SQL pour les combinaisons booléennes de valeurs NULL. 
    91479146  </para> 
     
    91559154  <para> 
    91569155   Le côté droit est une liste entre parenthèses d'expressions scalaires. Le 
    9157    résultat est vrai (<quote>true</quote>) si l'expression du côté gauche est 
    9158    différente de toutes les expressions du côté droit. Ceci est une notation 
    9159    raccourcie pour 
     9156   résultat est vrai (<quote>true</quote>) si le résultat de l'expression du côté gauche est 
     9157   différent de toutes les expressions du côté droit. C'est une notation 
     9158   raccourcie de 
    91609159 
    91619160<synopsis><replaceable>expression</replaceable> &lt;&gt; <replaceable>valeur1</replaceable> 
     
    91679166 
    91689167  <para> 
    9169    Notez que si l'expression du côté gauche renvoie une valeur NULL ou s'il 
     9168   Si l'expression du côté gauche renvoie NULL, ou s'il 
    91709169   existe des valeurs différentes du côté droit et qu'au moins une expression 
    9171    du côté droit renvoie la valeur NULL, le résultat de la construction 
    9172    <token>NOT IN</token> sera NULL et non pas vrai. Ceci est en accord avec les 
    9173    règles du standard du SQL pour les combinaisons booléennes des valeurs NULL. 
     9170   du côté droit renvoie NULL, le résultat de la construction 
     9171   <token>NOT IN</token> est NULL et non pas vrai. Ceci est en accord avec les 
     9172   règles du standard du SQL pour les combinaisons booléennes de valeurs NULL. 
    91749173  </para> 
    91759174 
     
    91789177   <literal>x NOT IN y</literal> est équivalent à <literal>NOT (x IN 
    91799178   y)</literal> dans tout les cas. Néanmoins, les valeurs NULL ont plus de 
    9180    chances de survenir pour le novice avec l'utilisation de <token>NOT 
    9181    IN</token> qu'en utilisant <token>IN</token>. Il est préférable d'exprimer 
    9182    votre condition de façon positive si possible. 
     9179   chances de surprendre le novice avec <token>NOT IN</token> qu'avec 
     9180   <token>IN</token>. Quand cela est possible, il est préférable d'exprimer 
     9181   la condition de façon positive. 
    91839182  </para> 
    91849183  </tip> 
     
    91939192  <para> 
    91949193   Le côté droit est une expression entre parenthèses qui doit renvoyer une 
    9195 valeur de type array. L'expression du côté gauche est évaluée et comparée à 
    9196 chaque élément du tableau en utilisant l'<replaceable>opérateur</replaceable> 
    9197 donné et qui doit renvoyer un résultat booléen. Le résultat de 
    9198 <token>ANY</token> est vrai (<quote>true</quote>) si un résultat vrai est obtenu. Le 
    9199 résultat est faux (<quote>false</quote>) si aucun résultat vrai n'est trouvé 
    9200 (ceci incluant le cas spécial où le tableau ne contient aucun élément). 
     9194   valeur de type array. L'expression du côté gauche est évaluée et comparée à 
     9195   chaque élément du tableau en utilisant l'<replaceable>opérateur</replaceable> 
     9196   donné, qui doit renvoyer un résultat booléen. Le résultat de 
     9197   <token>ANY</token> est vrai (<quote>true</quote>) si un résultat vrai est obtenu. Le 
     9198   résultat est faux (<quote>false</quote>) si aucun résultat vrai n'est trouvé 
     9199   (ce qui inclut le cas spécial du tableau qui ne contient aucun élément). 
    92019200  </para> 
    92029201 
    92039202  <para> 
    92049203   Si l'expression de tableau ramène un tableau NULL, le résultat de 
    9205    <token>ANY</token> sera NULL. Si l'expression du côté gauche ramène un 
     9204   <token>ANY</token> est NULL. Si l'expression du côté gauche retourne 
    92069205   NULL, le résultat de <token>ANY</token> est habituellement NULL (bien qu'un 
    9207    opérateur de comparaison non strict pourrait ramener un résultat différent). 
     9206   opérateur de comparaison non strict puisse conduire à un résultat différent). 
    92089207   De plus, si le tableau du côté droit contient des éléments NULL et qu'aucune 
    9209    comparaison vraie n'est obtenue, le résultat de <token>ANY</token> sera NULL, 
    9210    et non pas false (encore une fois, en supposant un opérateur de comparaison 
    9211    strict). Ceci est fait en accord avec les règles normales de SQL pour les 
     9208   comparaison vraie n'est obtenue, le résultat de <token>ANY</token> est NULL, 
     9209   et non pas faux (<quote>false</quote>) (là aussi avec l'hypothèse d'un opérateur de comparaison 
     9210   strict). Ceci est en accord avec les règles du standard SQL pour les 
    92129211   combinaisons booléennes de valeurs NULL. 
    92139212  </para> 
    92149213 
    92159214  <para> 
    9216    <token>SOME</token> est un synonyme pour <token>ANY</token>. 
     9215   <token>SOME</token> est un synonyme de <token>ANY</token>. 
    92179216  </para> 
    92189217  </sect2> 
     
    92259224  <para> 
    92269225   Le côté droit est une expression entre parenthèses qui doit renvoyer une 
    9227 valeur de type tableau. L'expression du côté gauche est évaluée et comparée à 
    9228 chaque élément du tableau en utilisant l'<replaceable>opérateur</replaceable> 
    9229 donné qui doit renvoyer un résultat booléen. Le résultat de <token>ALL</token> 
    9230 est vrai (<quote>true</quote>) si toutes les comparaisons renvoient vrai (ceci 
    9231 inclut le cas spécial où le tableau ne contient aucun élément). Le résultat est faux 
    9232 (<quote>false</quote>) si un résultat faux est trouvé. 
     9226   valeur de type tableau. L'expression du côté gauche est évaluée et comparée à 
     9227   chaque élément du tableau à l'aide de l'<replaceable>opérateur</replaceable> 
     9228   donné, qui doit renvoyer un résultat booléen. Le résultat de <token>ALL</token> 
     9229   est vrai (<quote>true</quote>) si toutes les comparaisons renvoient vrai (ce 
     9230   qui inclut le cas spécial du tableau qui ne contient aucun élément). Le résultat est faux 
     9231   (<quote>false</quote>) si un résultat faux est trouvé. 
    92339232  </para> 
    92349233 
    92359234  <para> 
    92369235   Si l'expression de tableau ramène un tableau NULL, le résultat de 
    9237    <token>ALL</token> sera NULL. Si l'expression du côté gauche ramène un 
     9236   <token>ALL</token> est NULL. Si l'expression du côté gauche retourne 
    92389237   NULL, le résultat de <token>ALL</token> est habituellement NULL (bien qu'un 
    9239    opérateur de comparaison non strict pourrait ramener un résultat différent). 
     9238   opérateur de comparaison non strict puisse conduire à un résultat différent). 
    92409239   De plus, si le tableau du côté droit contient des éléments NULL et qu'aucune 
    9241    comparaison true n'est obtenue, le résultat de <token>ALL</token> sera NULL, 
    9242    et non pas true (encore une fois, en supposant un opérateur de comparaison 
    9243    strict). Ceci est fait en accord avec les règles normales de SQL pour les 
     9240   comparaison false n'est obtenue, le résultat de <token>ALL</token> est NULL, 
     9241   et non pas true (là aussi avec l'hypothèse d'un opérateur de comparaison 
     9242   strict). Ceci est en accord avec les règles du standard SQL pour les 
    92449243   combinaisons booléennes de valeurs NULL. 
    92459244  </para> 
     
    92479246 
    92489247  <sect2 id="row-wise-comparison"> 
    9249    <title>Comparaison sur des lignes complètes</title> 
    9250  
    9251 <synopsis><replaceable>constructeur_lignes</replaceable> IS DISTINCT FROM <replaceable>constructeur_lignes</replaceable></synopsis> 
     9248   <title>Comparaison de lignes entières</title> 
     9249 
     9250<!-- Etrangement, à ce niveau-là, le fichier de traduction contient déjà 300 
     9251lignes de plus que la VO... --> 
     9252<synopsis><replaceable>constructeur_ligne</replaceable> opérateur <replaceable>constructeur_ligne</replaceable></synopsis> 
    92529253 
    92539254  <para> 
    9254    Chaque côté est un constructeur de lignes comme décrit dans la <xref 
     9255   Chaque côté est un constructeur de lignes, tel que décrit dans la <xref 
    92559256   linkend="sql-syntax-row-constructors"/>. Les deux valeurs de lignes doivent 
    9256    avoir le même nombre de lignes.  Les comparaisons de lignes sont autorisées 
     9257   avoir le même nombre de lignes.  Chaque côté est évalué. Ils sont alors 
     9258   comparés sur toute la ligne. Les comparaisons de lignes sont autorisées 
    92579259   quand l'<replaceable>opérateur</replaceable> est 
    92589260   <literal>=</literal>, 
     
    92609262   <literal>&lt;</literal>, 
    92619263   <literal>&lt;=</literal>, 
    9262    <literal>&gt;</literal> ou 
     9264   <literal>&gt;</literal>, 
    92639265   <literal>&gt;=</literal>, 
    9264    ou a une sémantique similaire a un de ceux-ci. (Pour être spécifique, un opérateur 
    9265    peut être un opérateur de comparaison de ligne s'il est un membre d'une classe 
    9266    d'opérateur B-Tree ou est le négateur du membre <literal>=</literal> d'une classe 
    9267    d'opérateur B-Tree.) 
     9266   ou a une sémantique similaire à l'un d'eux. (Pour être précis, un opérateur 
     9267   peut être un opérateur de comparaison de ligne s'il est membre d'une classe 
     9268   d'opérateurs B-Tree ou est le négateur du membre <literal>=</literal> d'une classe 
     9269   d'opérateurs B-Tree.) 
    92689270  </para> 
    92699271 
    92709272  <para> 
    92719273   Les cas <literal>=</literal> et <literal>&lt;&gt;</literal> fonctionnent 
    9272    légèrement différemment des autres. Les deux lignes sont 
    9273    considérées égales si leur membres correspondants sont non nul et 
    9274    égaux&nbsp;; les lignes sont différentes si un des membres correspondants es
    9275    non nul et différent&nbsp;; sinon le résultat de la comparaison de ligne est 
     9274   légèrement différemment des autres. Les lignes sont 
     9275   considérées égales si leurs membres correspondants sont non-nuls et 
     9276   égaux&nbsp;; les lignes sont différentes si des membres correspondants son
     9277   non-nuls et différents&nbsp;; autrement, le résultat de la comparaison de ligne est 
    92769278   inconnu (NULL). 
    92779279  </para> 
     
    92809282   Pour les cas <literal>&lt;</literal>, <literal>&lt;=</literal>, 
    92819283   <literal>&gt;</literal> et <literal>&gt;=</literal>, les éléments de ligne 
    9282    sont comparés de gauche à droite. La comparaison s'arrête tant que des éléments 
    9283    différents ou NULL sont découverts. Si un des éléments d'une paire est NULL, 
     9284   sont comparés de gauche à droite. La comparaison s'arrête dès qu'une paire 
     9285   d'éléments différents ou NULL est découverte. Si un des éléments de cette paire est NULL, 
    92849286   le résultat de la comparaison de la ligne est inconnu, donc NULL&nbsp;; sinon 
    9285    la comparaison de cette paire d'éléments déterminent le résultat. Par exemple, 
     9287   la comparaison de cette paire d'éléments détermine le résultat. Par exemple, 
    92869288   <literal>ROW(1,2,NULL) &lt; ROW(1,3,0)</literal> 
    92879289   est vrai, non NULL, car la troisième paire d'éléments n'est pas considérée. 
     
    92929294    Avant <productname>PostgreSQL</productname> 8.2, les cas 
    92939295    <literal>&lt;</literal>, <literal>&lt;=</literal>, <literal>&gt;</literal> 
    9294     et <literal>&gt;=</literal> n'étaient pas gérés suivant la spécification 
     9296    et <literal>&gt;=</literal> n'étaient pas gérés d'après les spécifications 
    92959297    SQL. Une comparaison comme <literal>ROW(a,b) &lt; ROW(c,d)</literal> 
    9296     était implémentée comme <literal>a &lt; c AND b &lt; d</literal> alors que 
     9298    était codée sous la forme <literal>a &lt; c AND b &lt; d</literal> alors que 
    92979299    le bon comportement est équivalent à 
    92989300    <literal>a &lt; c OR (a = c AND b &lt; d)</literal>. 
     
    93009302  </note> 
    93019303 
    9302   <synopsis><replaceable>constructeur_lignes</replaceable> IS DISTINCT FROM <replaceable>constructeur_lignes</replaceable></synopsis> 
     9304  <synopsis><replaceable>constructeur_ligne</replaceable> IS DISTINCT FROM <replaceable>constructeur_ligne</replaceable></synopsis> 
    93039305 
    93049306  <para> 
    9305     Cette construction est similaire à une comparaison de lignes 
    9306     <literal>&lt;&gt;</literal> mais cela ne ramène pas de NULL pour des 
    9307     entrées NULL. À la place, une valeur NULL est considérée différente 
    9308     (distincte) de toute valeur non NULL et deux valeurs NULL sont considérées 
    9309     égales (non distinctes). Du coup, le résultat sera toujours soit 
     9307    Cette construction est similaire à une comparaison de ligne 
     9308    <literal>&lt;&gt;</literal>, mais elle ne conduit pas à un résultat NULL pour des 
     9309    entrées NULL. Au lieu de cela, une valeur NULL est considérée différente 
     9310    (distincte) d'une valeur non-NULL et deux valeurs NULL sont considérées 
     9311    égales (non distinctes). Du coup, le résultat est toujours soit 
    93109312    true soit false, jamais NULL. 
    93119313  </para> 
    93129314 
    93139315<synopsis> 
    9314 <replaceable>constructeur_lignes</replaceable> IS NOT DISTINCT FROM <replaceable>constructeur_lignes</replaceable> 
     9316<replaceable>constructeur_ligne</replaceable> IS NOT DISTINCT FROM <replaceable>constructeur_ligne</replaceable> 
    93159317</synopsis> 
    93169318 
    93179319  <para> 
    9318    Cette construction est similaire à une comparaison <literal>=</literal> de 
    9319    lignes mais elle ne donne pas NULL pour des entrées NULL. À la place, toute 
    9320    valeur NULL est considérée comme différente d'une valeur non NULL alors 
    9321    que deux valeurs NULL sont considérées identiques. Du coup, le résultat 
    9322    sera toujours soit true soit false, mais jamais NULL. 
     9320   Cette construction est similaire à une comparaison de lignes 
     9321   <literal>=</literal>, mais elle ne conduit pas à un résultat NULL pour des 
     9322   entrées NULL. Au lieu de cela, une valeur NULL est considérée différente 
     9323   (distincte) d'une valeur non NULL et deux valeurs NULL sont considérées 
     9324   identiques (non distinctes). Du coup, le résultat 
     9325   est toujours soit true soit false, jamais NULL. 
    93239326  </para> 
    93249327 
     
    93279330 
    93289331<sect1 id="functions-srf"> 
    9329   <title>Fonctions renvoyant des ensembles</title> 
     9332  <title>Fonctions retournant des ensembles</title> 
    93309333   
    93319334  <indexterm zone="functions-srf"> 
    9332     <primary>fonctions renvoyant des ensembles</primary> 
     9335    <primary>fonctions retournant des ensembles</primary> 
    93339336    <secondary>fonctions</secondary> 
    93349337  </indexterm> 
     
    93389341  </indexterm> 
    93399342 
     9343<!-- Joli contresens :-)  
     9344     et générer N'est PAS français --> 
    93409345  <para> 
    93419346    Cette section décrit des fonctions qui peuvent renvoyer plus d'une 
    93429347    ligne. Actuellement, les seules fonctions dans cette classe sont les 
    9343     séries générant des fonctions, comme détaillé dans le <xref 
     9348    les fonctions de génération de séries, détaillées dans le <xref 
    93449349    linkend="functions-srf-series"/>. 
    93459350  </para> 
    93469351     
    93479352    <table id="functions-srf-series"> 
    9348       <title>Séries générant des fonctions</title> 
     9353      <title>Fonctions de génération de séries</title> 
    93499354      <tgroup cols="4"> 
    93509355        <thead> 
     
    93599364        <tbody> 
    93609365          <row> 
    9361             <entry><literal><function>generate_series</function> 
    9362              (<parameter>début</parameter>, 
    9363              <parameter>fin</parameter>)</literal></entry> 
     9366            <entry><literal><function>generate_series</function>(<parameter>début</parameter>, <parameter>fin</parameter>)</literal></entry> 
    93649367            <entry><type>int</type> ou <type>bigint</type></entry> 
    93659368            <entry><type>setof int</type> ou <type>setof bigint</type> 
    9366              (même type qu'en argument)</entry> 
     9369             (même type que l' argument)</entry> 
    93679370            <entry> 
    9368               Génère une série de valeurs, commençant à 
    9369               <parameter>début</parameter> pour finir à 
    9370               <parameter>fin</parameter> 
    9371               avec un incrément de un. 
     9371              Produit une série de valeurs, de <parameter>début</parameter> à 
     9372              <parameter>fin</parameter> avec un incrément de un. 
    93729373            </entry> 
    93739374          </row> 
    93749375           
    93759376          <row> 
    9376             <entry><literal><function>generate_series</function> 
    9377              (<parameter>début</parameter>, <parameter>fin</parameter>, 
    9378              <parameter>étape</parameter>)</literal></entry> 
     9377            <entry><literal><function>generate_series</function>(<parameter>début</parameter>, <parameter>fin</parameter>, <parameter>pas</parameter>)</literal></entry> 
    93799378            <entry><type>int</type> ou <type>bigint</type></entry> 
    93809379            <entry><type>setof int</type> ou <type>setof bigint</type> 
    9381              (même type qu'en argument)</entry> 
     9380             (même type que l'argument)</entry> 
    93829381            <entry> 
    9383               Génère une série de valeurs, commençant à 
    9384               <parameter>début</parameter> pour finir à 
    9385               <parameter>fin</parameter> avec un incrément de  
    9386               <parameter>étape</parameter>. 
     9382              Produit une série de valeurs, de <parameter>début</parameter> à 
     9383              <parameter>fin</parameter> avec un incrément de <parameter>pas</parameter>. 
    93879384            </entry> 
    93889385          </row> 
     
    93939390     
    93949391    <para> 
    9395       Quand <parameter>étape</parameter> est positif, aucune ligne n'est 
    9396       renvoyée si <parameter>début</parameter> est plus grand que 
    9397       <parameter>fin</parameter>. Au contraire, quand 
    9398       <parameter>étape</parameter> est négatif, aucune ligne n'est renvoyée 
    9399       si <parameter>début</parameter> est plus petit que 
     9392      Quand <parameter>pas</parameter> est positif, aucune ligne n'est 
     9393      renvoyée si <parameter>début</parameter> est supérieur à 
     9394      <parameter>fin</parameter>. À l'inverse, quand 
     9395      <parameter>pas</parameter> est négatif, aucune ligne n'est renvoyée 
     9396      si <parameter>début</parameter> est inférieur à 
    94009397      <parameter>fin</parameter>. De même, aucune ligne n'est renvoyée pour 
    9401       les entrées <literal>NULL</literal>. Si <parameter>étape</parameter> 
    9402       vaut zéro, c'est considéré comme une erreur. Quelques exemples 
    9403       suivent&nbsp;: 
     9398      les entrées <literal>NULL</literal>. Une erreur est levée si 
     9399      <parameter>pas</parameter> vaut zéro. 
     9400    </para> 
     9401     
     9402    <para> 
     9403     Quelques exemples&nbsp;: 
    94049404      <programlisting>select * from generate_series(2,4); 
    94059405 generate_series 
     
    94339433  </sect1> 
    94349434 
     9435<!-- ICI --> 
    94359436  <sect1 id="functions-info"> 
    94369437    <title>Fonctions d'information sur le système</title>