Changeset 727
- Timestamp:
- 10/02/07 00:47:53 (1 year ago)
- Files:
-
- traduc/branches/bv81x/manuel/Makefile (modified) (1 diff)
- traduc/branches/bv81x/manuel/extend.xml (modified) (1 diff)
- traduc/branches/bv81x/manuel/plpgsql.xml (modified) (2 diffs)
- traduc/branches/bv81x/manuel/stylesheets/pg-profile.xsl (modified) (1 diff)
- traduc/branches/bv81x/manuel/xaggr.xml (modified) (1 diff)
- traduc/branches/bv81x/manuel/xfunc.xml (modified) (2 diffs)
- traduc/trunk/manuel/Makefile (modified) (2 diffs)
- traduc/trunk/manuel/extend.xml (modified) (2 diffs)
- traduc/trunk/manuel/plpgsql.xml (modified) (2 diffs)
- traduc/trunk/manuel/stylesheets/pg-profile.xsl (modified) (1 diff)
- traduc/trunk/manuel/xaggr.xml (modified) (1 diff)
- traduc/trunk/manuel/xfunc.xml (modified) (2 diffs)
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
traduc/branches/bv81x/manuel/Makefile
r625 r727 1 VERSION := $(shell grep -v major version.xml | cut -c19-23)2 VER := $(shell grep -v major version.xml | cut -c19-23 | sed's/\.//g')1 VERSION := $(shell grep -v major version.xml | sed -e 's/<!ENTITY version "\(.*\)">/\1/') 2 VER := $(shell grep -v major version.xml | sed -e 's/<!ENTITY version "\(.*\)">/\1/' -e 's/\.//g') 3 3 4 4 BASEDIR := $(HOME)/pgsql-$(VERSION)-fr traduc/branches/bv81x/manuel/extend.xml
r232 r727 110 110 </para> 111 111 112 <para>113 Les types de base sont ceux qui, comme <type>int4</type>, sont implémentés114 sous le niveau du langage <acronym>SQL</acronym> (typiquement dans un115 langage de bas niveau comme le C). Ils correspondent généralement à ce qui116 est souvent connu comme des types de données abstraits.117 <productname>PostgreSQL</productname> peut opérer sur de tels types118 seulement au moyen de fonctions fournies par l'utilisateur et n'en comprend119 le fonctionnement que dans la mesure où l'utilisateur les décrit. Les types120 de base sont divisés en types scalaires et types tableaux. Pour chaque type121 scalaire, un type tableau est automatiquement créé. Ce type tableau peut122 contenir des tableaux à taille variable du type scalaire correspondant.123 </para>124 125 <para>126 Les types composés, ou types lignes, sont créés chaque fois qu'un127 utilisateur crée une table ; il est aussi possible de définir un type128 composé autonome sans table associée. Un type composé est simplement129 une liste de types de base avec des noms de champs associés. Une valeur pour130 un type composé correspond à une ligne ou un enregistrement de valeurs de131 champ. L'utilisateur peut accéder à ces champs à partir de requêtes132 <acronym>SQL</acronym>.133 </para>134 135 <para>136 Un type de domaine est basé sur un type de base particulier et il est137 interchangeable à de multiples fins avec son type de base. Toutefois, un138 domaine peut avoir des contraintes qui restreignent ses valeurs valides à un139 sous-ensemble de ce qui est permis par le type de base sous-jacent. Les140 domaines peuvent être créés par de simples commandes <acronym>SQL</acronym>.141 </para>142 143 <para>144 Enfin, il existe quelques <quote>pseudo-types</quote> pour des besoins145 particuliers. Les pseudo-types ne peuvent pas apparaître comme des champs de146 table ou des types composés, mais ils peuvent être utilisés pour déclarer147 les types des arguments et des résultats de fonctions. Dans le système de148 typage, ils fournissent un mécanisme pour identifier des classes spéciales de149 fonctions. La <xref linkend="datatype-pseudotypes-table"/> donne la liste des150 pseudo-types existants.151 </para>152 153 <sect2 id="types-polymorphic">154 <title>Types et fonctions polymorphes</title>155 156 <indexterm>157 <primary>types polymorphes</primary>158 </indexterm>159 160 <indexterm>161 <primary>fonctions polymorphes</primary>162 </indexterm>163 164 <para>165 Deux pseudo-types particulièrement intéressants sont <type>anyelement</type> et166 <type>anyarray</type>, collectivement appelés <firstterm>types polymorphes</firstterm>.167 Toute fonction déclarée utilisant ces types est dite <firstterm>fonction168 polymorphe</firstterm>. Une fonction polymorphe peut opérer sur de nombreux et169 différents types de données, les types de données spécifiques étant170 déterminés par les types des données réellement passés lors d'un appel171 particulier de la fonction.172 </para>173 174 <para>175 Les arguments et les résultats polymorphes sont liés les uns aux autres et176 sont résolus dans un type de données spécifique quand une requête faisant177 appel à une fonction polymorphe est analysée. Chaque occurrence déclarée178 comme <type>anyelement</type> (soit argument, soit valeur renvoyée par la179 fonction) peut prendre n'importe quel type réel de données mais, lors d'un180 appel de fonction donné, elles doivent toutes avoir le181 <emphasis>même</emphasis> type réel. Chaque occurrence déclarée comme182 <type>anyarray</type> peut prendre n'importe quel type de données tableau183 mais, de la même façon, elles doivent toutes être du184 <emphasis>même</emphasis> type. Si des occurrences sont déclarées comme185 <type>anyarray</type> et d'autres comme <type>anyelement</type>, le type186 de tableau réel des occurrences <type>anyarray</type> doit être un tableau187 dont les éléments sont du même type que ceux apparaissant dans les188 occurrences de type <type>anyelement</type>.189 </para>190 191 <para>192 Ainsi, quand plus d'une occurrence d'argument est déclarée avec un type193 polymorphe, l'effet direct est que seulement certaines combinaisons de194 types réels d'argument sont autorisées. Par exemple, une fonction déclarée195 comme <literal>foo(anyelement, anyelement)</literal> prendra en argument196 n'importe quelles valeurs en argument à condition qu'elles soient du même197 type de données.198 </para>199 200 <para>201 Quand la valeur renvoyée par une fonction est déclarée de type polymorphe,202 il doit exister au moins une occurrence d'argument également polymorphe, et203 le type réel de donnée passé comme argument détermine le type réel de204 résultat renvoyé lors de cet appel à la fonction. Par exemple, s'il205 n'existait pas déjà un mécanisme d'extraction d'éléments (indexation) de206 tableau, on pourrait définir une fonction qui implémente ce mécanisme comme207 ceci : <literal>indice(anyarray, integer) returns anyelement</literal>. La208 déclaration de fonction contraint le premier argument réel à être de type209 tableau et permet à l'analyseur d'inférer le type correct de résultat à210 partir du type réel du premier argument.211 </para>212 </sect2>213 214 112 <sect2> 215 113 <title>Types de base</title> traduc/branches/bv81x/manuel/plpgsql.xml
r697 r727 218 218 <type>anyelement</type> et <type>anyarray</type>. Le type de données réel 219 219 géré par une fonction polymorphe peut varier d'appel en appel (voir la 220 <xref linkend=" types-polymorphic"/>).220 <xref linkend="extend-types-polymorphic"/>). 221 221 Voir l'exemple de la <xref linkend="plpgsql-declaration-aliases"/>. 222 222 </para> … … 705 705 ou <type>anyarray</type>), un paramètre spécial <literal>$0</literal> est créé. 706 706 Son type de donnée est le type effectif de retour de la fonction, déduit d'après 707 les types d'entrée (voir la <xref linkend=" types-polymorphic"/>).707 les types d'entrée (voir la <xref linkend="extend-types-polymorphic"/>). 708 708 Ceci permet à la fonction d'accéder à son type de retour réel comme on le voit ici 709 709 avec la <xref linkend="plpgsql-declaration-type"/>. traduc/branches/bv81x/manuel/stylesheets/pg-profile.xsl
r548 r727 5 5 6 6 <!-- Include common profiling stylesheet --> 7 <xsl:import href="/opt/docbook-xsl -1.71.0/profiling/profile-mode.xsl"/>7 <xsl:import href="/opt/docbook-xsl/profiling/profile-mode-pdf.xsl"/> 8 8 9 9 <!-- Generate DocBook instance with correct DOCTYPE --> traduc/branches/bv81x/manuel/xaggr.xml
r232 r727 110 110 ou des fonctions finales polymorphes. De cette façon, les mêmes fonctions 111 111 peuvent être utilisées pour de multiples agrégats. Voir la <xref 112 linkend=" types-polymorphic"/> pour une explication des fonctions polymorphes.112 linkend="extend-types-polymorphic"/> pour une explication des fonctions polymorphes. 113 113 La fonction d'agrégat elle-même peut être 114 114 spécifiée avec un type de base et un type d'état polymorphes, ce qui permet traduc/branches/bv81x/manuel/xfunc.xml
r320 r727 679 679 Les fonctions <acronym>SQL</acronym> peuvent être déclarées pour accepter 680 680 et renvoyer les types <quote>polymorphe</quote> <type>anyelement</type> et 681 <type>anyarray</type>. Voir la <xref linkend=" types-polymorphic"/> pour une681 <type>anyarray</type>. Voir la <xref linkend="extend-types-polymorphic"/> pour une 682 682 explication plus approfondie. Voici une fonction polymorphe 683 683 <function>cree_tableau</function> qui construit un tableau à partir de … … 2739 2739 Les fonctions en langage C peuvent être déclarées pour accepter et renvoyer 2740 2740 les types <quote>polymorphes</quote> <type>anyelement</type> et 2741 <type>anyarray</type>. Voir la <xref linkend=" types-polymorphic"/> pour une2741 <type>anyarray</type>. Voir la <xref linkend="extend-types-polymorphic"/> pour une 2742 2742 explication plus détaillée des fonctions polymorphes. Si les types des 2743 2743 arguments ou du renvoi de la fonction sont définis comme polymorphes, traduc/trunk/manuel/Makefile
r625 r727 1 VERSION := $(shell grep -v major version.xml | cut -c19-23)2 VER := $(shell grep -v major version.xml | cut -c19-23 | sed's/\.//g')1 VERSION := $(shell grep -v major version.xml | sed -e 's/<!ENTITY version "\(.*\)">/\1/') 2 VER := $(shell grep -v major version.xml | sed -e 's/<!ENTITY version "\(.*\)">/\1/' -e 's/\.//g') 3 3 4 4 BASEDIR := $(HOME)/pgsql-$(VERSION)-fr … … 17 17 src = *.xml ref/*.xml 18 18 19 all: html pdf htmlhelpmanpages INSTALL.html INSTALL.txt19 all: html pdf manpages INSTALL.html INSTALL.txt 20 20 21 21 html: index.html traduc/trunk/manuel/extend.xml
r658 r727 162 162 163 163 <sect2> 164 <title>Pseudo- Types</title>164 <title>Pseudo-types</title> 165 165 166 166 <para> … … 176 176 </sect2> 177 177 178 <sect2 id=" types-polymorphic">178 <sect2 id="extend-types-polymorphic"> 179 179 <title>Types et fonctions polymorphes</title> 180 180 traduc/trunk/manuel/plpgsql.xml
r709 r727 215 215 <type>anyelement</type> et <type>anyarray</type>. Le type de données réel 216 216 géré par une fonction polymorphe peut varier d'appel en appel (voir la 217 <xref linkend=" types-polymorphic"/>).217 <xref linkend="extend-types-polymorphic"/>). 218 218 Voir l'exemple de la <xref linkend="plpgsql-declaration-aliases"/>. 219 219 </para> … … 686 686 ou <type>anyarray</type>), un paramètre spécial <literal>$0</literal> est créé. 687 687 Son type de donnée est le type effectif de retour de la fonction, déduit d'après 688 les types d'entrée (voir la <xref linkend=" types-polymorphic"/>).688 les types d'entrée (voir la <xref linkend="extend-types-polymorphic"/>). 689 689 Ceci permet à la fonction d'accéder à son type de retour réel comme on le voit ici 690 690 avec la <xref linkend="plpgsql-declaration-type"/>. traduc/trunk/manuel/stylesheets/pg-profile.xsl
r561 r727 5 5 6 6 <!-- Include common profiling stylesheet --> 7 <xsl:import href="/opt/docbook-xsl -1.71.0/profiling/profile-mode.xsl"/>7 <xsl:import href="/opt/docbook-xsl/profiling/profile-mode-pdf.xsl"/> 8 8 9 9 <!-- Generate DocBook instance with correct DOCTYPE --> traduc/trunk/manuel/xaggr.xml
r427 r727 109 109 ou des fonctions finales polymorphes. De cette façon, les mêmes fonctions 110 110 peuvent être utilisées pour de multiples agrégats. Voir la <xref 111 linkend=" types-polymorphic"/> pour une explication des fonctions polymorphes.111 linkend="extend-types-polymorphic"/> pour une explication des fonctions polymorphes. 112 112 La fonction d'agrégat elle-même peut être 113 113 spécifiée avec un type de base et des types d'état polymorphes, ce qui permet traduc/trunk/manuel/xfunc.xml
r603 r727 677 677 Les fonctions <acronym>SQL</acronym> peuvent être déclarées pour accepter 678 678 et renvoyer les types <quote>polymorphe</quote> <type>anyelement</type> et 679 <type>anyarray</type>. Voir la <xref linkend=" types-polymorphic"/> pour une679 <type>anyarray</type>. Voir la <xref linkend="extend-types-polymorphic"/> pour une 680 680 explication plus approfondie. Voici une fonction polymorphe 681 681 <function>cree_tableau</function> qui construit un tableau à partir de … … 2810 2810 Les fonctions en langage C peuvent être déclarées pour accepter et renvoyer 2811 2811 les types <quote>polymorphes</quote> <type>anyelement</type> et 2812 <type>anyarray</type>. Voir la <xref linkend=" types-polymorphic"/> pour une2812 <type>anyarray</type>. Voir la <xref linkend="extend-types-polymorphic"/> pour une 2813 2813 explication plus détaillée des fonctions polymorphes. Si les types des 2814 2814 arguments ou du renvoi de la fonction sont définis comme polymorphes,

