Changeset 843
- Timestamp:
- 12/10/07 19:45:33 (1 year ago)
- Files:
-
- traduc/trunk/manuel/cube.xml (modified) (22 diffs)
- traduc/trunk/manuel/seg.xml (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
traduc/trunk/manuel/cube.xml
r803 r843 8 8 9 9 <para> 10 This module contains the user-defined type, CUBE, representing11 multidimensional cubes.10 Ce module contient le type utilisateur CUBE, représentant des cubes à 11 plusieurs dimensions. 12 12 </para> 13 13 14 14 <sect2> 15 <title>Syntax</title> 16 17 <para> 18 The following are valid external representations for the CUBE type: 15 <title>Syntaxe</title> 16 17 <para> 18 Ce qui suit est plusieurs représentations externes valides pour le 19 type CUBE : 19 20 </para> 20 21 21 22 <table> 22 <title> Cube external representations</title>23 <title>Représentations externes d'un cube</title> 23 24 <tgroup cols="2"> 24 25 <tbody> 25 26 <row> 26 27 <entry>'x'</entry> 27 <entry> A floating point value representing a one-dimensional point or28 one-dimensional zero length cubement28 <entry>Une valeur en virgule flottante représentation un point sur 29 une dimension ou un élément cube zéro à une dimension 29 30 </entry> 30 31 </row> 31 32 <row> 32 33 <entry>'(x)'</entry> 33 <entry> Same as above</entry>34 <entry>Identique à ci-dessus</entry> 34 35 </row> 35 36 <row> 36 37 <entry>'x1,x2,x3,...,xn'</entry> 37 <entry> A point in n-dimensional space, represented internally as a zero38 volume box38 <entry>Un point dans un espace à n dimensions, représenté en interne 39 comme une boîte de volume zéro 39 40 </entry> 40 41 </row> 41 42 <row> 42 43 <entry>'(x1,x2,x3,...,xn)'</entry> 43 <entry> Same as above</entry>44 <entry>Identique à ci-dessus</entry> 44 45 </row> 45 46 <row> 46 47 <entry>'(x),(y)'</entry> 47 <entry> 1-D cubement starting at x and ending at y or vice versa; the48 order does not matter48 <entry>Ãlément cube à une dimension commençant à x et se terminant à 49 y ou vice-versa ; l'ordre n'importe pas 49 50 </entry> 50 51 </row> 51 52 <row> 52 53 <entry>'(x1,...,xn),(y1,...,yn)'</entry> 53 <entry>n-dimensional box represented by a pair of its opposite corners, no 54 matter which. Functions take care of swapping to achieve "lower left -- 55 upper right" representation before computing any values 54 <entry>boîte à n dimensions représentée par une paire pour ses coins 55 opposés, peu importe lesquels. Les fonctions s'occupent de la bascule 56 pour réaliser une représentation en bas à gauche, en haut à droite 57 avant de calculer toute valeur 56 58 </entry> 57 59 </row> … … 62 64 63 65 <sect2> 64 <title>Gramma r</title>66 <title>Grammaire</title> 65 67 <table> 66 <title> Cube Grammar Rules</title>68 <title>RÚgles de grammaire du cube</title> 67 69 <tgroup cols="2"> 68 70 <tbody> 69 71 <row> 70 <entry>r ule 1</entry>72 <entry>rÚgle 1</entry> 71 73 <entry>box -> O_BRACKET paren_list COMMA paren_list C_BRACKET</entry> 72 74 </row> 73 75 <row> 74 <entry>r ule 2</entry>76 <entry>rÚgle 2</entry> 75 77 <entry>box -> paren_list COMMA paren_list</entry> 76 78 </row> 77 79 <row> 78 <entry>r ule 3</entry>80 <entry>rÚgle 3</entry> 79 81 <entry>box -> paren_list</entry> 80 82 </row> 81 83 <row> 82 <entry>r ule 4</entry>84 <entry>rÚgle 4</entry> 83 85 <entry>box -> list</entry> 84 86 </row> 85 87 <row> 86 <entry>r ule 5</entry>88 <entry>rÚgle 5</entry> 87 89 <entry>paren_list -> O_PAREN list C_PAREN</entry> 88 90 </row> 89 91 <row> 90 <entry>r ule 6</entry>92 <entry>rÚgle 6</entry> 91 93 <entry>list -> FLOAT</entry> 92 94 </row> 93 95 <row> 94 <entry>r ule 7</entry>96 <entry>rÚgle 7</entry> 95 97 <entry>list -> list COMMA FLOAT</entry> 96 98 </row> … … 101 103 102 104 <sect2> 103 <title> Tokens</title>105 <title>Jetons</title> 104 106 <table> 105 <title> Cube Grammar Rules</title>107 <title>RÚgles de grammaire du cube</title> 106 108 <tgroup cols="2"> 107 109 <tbody> … … 148 150 149 151 <sect2> 150 <title>Ex amples</title>152 <title>Exemples</title> 151 153 <table> 152 <title>Ex amples</title>154 <title>Exemples</title> 153 155 <tgroup cols="2"> 154 156 <tbody> 155 157 <row> 156 158 <entry>'x'</entry> 157 <entry> A floating point value representing a one-dimensional point158 (or, zero-length one-dimensional interval)159 <entry>Une valeur en virgule flottante représentant un point sur une 160 dimension (ou un interval nul sur une dimension) 159 161 </entry> 160 162 </row> 161 163 <row> 162 164 <entry>'(x)'</entry> 163 <entry> Same as above</entry>165 <entry>Identique à ci-dessus</entry> 164 166 </row> 165 167 <row> 166 168 <entry>'x1,x2,x3,...,xn'</entry> 167 <entry> A point in n-dimensional space,represented internally as a zero168 volume cube169 <entry>Un point dans un espace à n dimensions représenté par un cube 170 de volume nul 169 171 </entry> 170 172 </row> 171 173 <row> 172 174 <entry>'(x1,x2,x3,...,xn)'</entry> 173 <entry> Same as above</entry>175 <entry>Identique à ci-dessus</entry> 174 176 </row> 175 177 <row> 176 178 <entry>'(x),(y)'</entry> 177 <entry> A 1-D interval starting at x and ending at y or vice versa; the178 order does not matter179 <entry>Un intervalle sur une dimension commençant à x et se terminant à 180 y ou vice-versa ; l'ordre n'importe pas 179 181 </entry> 180 182 </row> 181 183 <row> 182 184 <entry>'[(x),(y)]'</entry> 183 <entry> Same as above</entry>185 <entry>Identique à ci-dessus</entry> 184 186 </row> 185 187 <row> 186 188 <entry>'(x1,...,xn),(y1,...,yn)'</entry> 187 <entry>An n-dimensional box represented by a pair of its diagonally 188 opposite corners, regardless of order. Swapping is provided 189 by all comarison routines to ensure the 190 "lower left -- upper right" representation 191 before actaul comparison takes place. 189 <entry>Une boîte à n dimensions par une paire de ces coins opposés, 190 quelque soit l'ordre. La bascule est fournie par toutes les routines 191 de comparaison pour assurer la représentation en bas à gauche, en 192 haut à droite avec la réalisation de comparaisons. 192 193 </entry> 193 194 </row> 194 195 <row> 195 196 <entry>'[(x1,...,xn),(y1,...,yn)]'</entry> 196 <entry> Same as above</entry>197 <entry>Identique à ci-dessus</entry> 197 198 </row> 198 199 </tbody> … … 200 201 </table> 201 202 <para> 202 White space is ignored, so '[(x),(y)]' can be: '[ ( x ), ( y ) ]' 203 Les espaces blancs sont ignorés, donc '[(x),(y)]' peut être 204 '[ ( x ), ( y ) ]'. 203 205 </para> 204 206 </sect2> 205 207 <sect2> 206 <title> Defaults</title>207 <para> 208 I believe this union:208 <title>Par défaut</title> 209 <para> 210 Je crois que cette union : 209 211 </para> 210 212 <programlisting> … … 217 219 218 220 <para> 219 does not contradict to the common sense, neither does theintersection221 n'est pas en contradiction avec le bon sens et ne fait pas l'intersection 220 222 </para> 221 223 … … 229 231 230 232 <para> 231 In all binary operations on differently sized boxes, I assume the smaller 232 one to be a cartesian projection, i. e., having zeroes in place of coordinates 233 omitted in the string representation. The above examples are equivalent to: 233 Dans toutes les opérations binaires sur des boîtes de différentes tailles, 234 je suppose que la plus petite est une projection cartésienne, c'est-à -dire 235 avoir des zéros à la place des coordonnées omises dans la représentation 236 sous forme de chaîne. Les exemples ci-dessous sont équivalents à : 234 237 </para> 235 238 … … 240 243 241 244 <para> 242 The following containment predicate uses the point syntax,243 while in fact the second argument is internally represented by a box.244 This syntax makes it unnecessary to define the special Point type245 and functions for (box,point) predicates.245 Le prédicat de contenance suivant utilise la syntaxe point alors qu'en 246 fait, le second argument est représenté en interne par une boîte. Cette 247 syntaxe rend inutile la définition du type spécial Point et les fonctions 248 pour le prédicat (boîte,point). 246 249 </para> 247 250 … … 255 258 </sect2> 256 259 <sect2> 257 <title>Precision</title> 258 <para> 259 Values are stored internally as 64-bit floating point numbers. This means that 260 numbers with more than about 16 significant digits will be truncated. 260 <title>Précision</title> 261 <para> 262 Les valeurs sont enregistrées en interne sous la forme de nombres en 263 virgule flottante. Cela signifie que les nombres avec plus de 16 chiffres 264 significatifs seront tronqués. 261 265 </para> 262 266 </sect2> 263 267 264 268 <sect2> 265 <title>Usage</title> 266 <para> 267 The access method for CUBE is a GiST index (gist_cube_ops), which is a 268 generalization of R-tree. GiSTs allow the postgres implementation of 269 R-tree, originally encoded to support 2-D geometric types such as 270 boxes and polygons, to be used with any data type whose data domain 271 can be partitioned using the concepts of containment, intersection and 272 equality. In other words, everything that can intersect or contain 273 its own kind can be indexed with a GiST. That includes, among other 274 things, all geometric data types, regardless of their dimensionality 275 (see also contrib/seg). 276 </para> 277 278 <para> 279 The operators supported by the GiST access method include: 269 <title>Utilisation</title> 270 <para> 271 La méthode d'accÚs pour CUBE est un index GiST (gist_cube_ops), qui est une 272 généralisation de R-tree. GiST permet l'implémentation postgres de 273 R-tree, développé à l'origine pour supporter les types géométriques à 274 deux dimensions comme les boîtes et les polygones et pour être utilisé 275 avec tout type de données dont le domaine peut être partitionné en utilisant 276 les concepts de contenance, d'intersection et d'égalité. En d'autres mots, 277 tout ce qui peut contenir une partie ou tout de son propre type peut être 278 indexé dans un index GiST. Ceci inclut, parmi d'autres, tous les types 279 de données géométriques, quelque soit le nombre de dimensions (voir aussi 280 le module contrib/seg). 281 </para> 282 283 <para> 284 Les opérateurs supportés par la méthode d'accÚs GiST incluent : 280 285 </para> 281 286 282 287 <programlisting> 283 a = b Same as288 a = b Identique à 284 289 </programlisting> 285 290 <para> 286 The cubements a and b are identical.291 Les éléments cube a et b sont identiques. 287 292 </para> 288 293 289 294 <programlisting><![CDATA[ 290 a && b Overlaps295 a && b Couvre une partie 291 296 ]]></programlisting> 292 297 <para> 293 The cubements a and b overlap.298 Les éléments cube a et b se couvrent en partie. 294 299 </para> 295 300 296 301 <programlisting><![CDATA[ 297 a @> b Cont ains302 a @> b Contient 298 303 ]]></programlisting> 299 304 <para> 300 The cubement a contains the cubementb.305 L'élément cube a contient l'élément cube b. 301 306 </para> 302 307 303 308 <programlisting><![CDATA[ 304 a <@ b Cont ained in309 a <@ b Contenu dans 305 310 ]]></programlisting> 306 311 <para> 307 The cubement a is contained inb.308 </para> 309 310 <para> 311 ( Before PostgreSQL 8.2, the containment operators @> and <@ were312 respectively called @ and ~. These names are still available, but are313 d eprecated and will eventually be retired. Notice that the old names314 are reversed from the convention formerly followed by the core geometric315 datatypes!)316 </para> 317 318 <para> 319 Although the mnemonics of the following operators is questionable, I320 preserved them to maintain visual consistency with other geometric321 data types defined inPostgres.322 </para> 323 324 <para> 325 Other operators:312 L'élément cube est contenu dans l'élément cube b. 313 </para> 314 315 <para> 316 (Avant PostgreSQL 8.2, les opérateurs de contenance @> et <@ étaient 317 appelés respectivement @ et ~. Ces noms sont toujours disponibles mais sont 318 déclarés obsolÚtes et seront supprimés un jour. Notez que les anciens noms 319 sont inversés par rapport à la convention suivie par les types de données 320 géométriques !) 321 </para> 322 323 <para> 324 Bien que les mnémoniques des opérateurs suivants sont questionnables, je 325 les ai préservé pour maintenir une cohérence visuelle avec les autres 326 types de données géométriques dans Postgres. 327 </para> 328 329 <para> 330 D'autres opérateurs : 326 331 </para> 327 332 328 333 <programlisting><![CDATA[ 329 [a, b] < [c, d] Less than330 [a, b] > [c, d] Greater than334 [a, b] < [c, d] Plus petit que 335 [a, b] > [c, d] Plus grand que 331 336 ]]></programlisting> 332 337 333 338 <para> 334 These operators do not make a lot of sense for any practical 335 purpose but sorting. These operators first compare (a) to (c), 336 and if these are equal, compare (b) to (d). That accounts for 337 reasonably good sorting in most cases, which is useful if 338 you want to use ORDER BY with this type 339 </para> 340 341 <para> 342 The following functions are available: 339 Ces opérateurs n'ont pas vraiment de sens sauf en ce qui concerne le tri. 340 Ces opérateurs comparent en premier (a) à (c) et, s'ils sont égaux, 341 comparent (b) à (d). Cela fait un bon tri dans la plupart des cas, ce qui 342 est utile si vous voulez utiliser ORDER BY avec ce type. 343 </para> 344 345 <para> 346 Les fonctions suivantes sont disponibles : 343 347 </para> 344 348 345 349 <table> 346 <title>F unctions available</title>350 <title>Fonctions disponibles</title> 347 351 <tgroup cols="2"> 348 352 <tbody> 349 353 <row> 350 354 <entry><literal>cube_distance(cube, cube) returns double</literal></entry> 351 <entry>cube_distance re turns the distance between two cubes. If both352 cubes are points, this is the normal distance function.355 <entry>cube_distance renvoie la distance entre deux cubes. Si les deux 356 cubes sont des points, ceci est la fonction de distance normale. 353 357 </entry> 354 358 </row> 355 359 <row> 356 360 <entry><literal>cube(float8) returns cube</literal></entry> 357 <entry> This makes a one dimensional cube with both coordinates the same.358 If the type of the argument is a numeric type other than float8 an359 explicit cast to float8 may be needed.361 <entry>Ceci crée un cube à une dimension avec les mêmes coordonnées. 362 Si le type de l'argument est un type numérique autre que float8, une 363 conversion explicite vers float8 pourrait être nécessaire. 360 364 <literal>cube(1) == '(1)'</literal> 361 365 </entry> … … 365 369 <entry><literal>cube(float8, float8) returns cube</literal></entry> 366 370 <entry> 367 This makes a one dimensional cube.371 Ceci crée un cube à une dimension. 368 372 <literal>cube(1,2) == '(1),(2)'</literal> 369 373 </entry> … … 372 376 <row> 373 377 <entry><literal>cube(float8[]) returns cube</literal></entry> 374 <entry> This makes a zero-volume cube using the coordinates375 d efined by thearray.<literal>cube(ARRAY[1,2]) == '(1,2)'</literal>378 <entry>Ceci crée un cube de volume nul en utilisant les coordonnées 379 définies par le tableau.<literal>cube(ARRAY[1,2]) == '(1,2)'</literal> 376 380 </entry> 377 381 </row> … … 379 383 <row> 380 384 <entry><literal>cube(float8[], float8[]) returns cube</literal></entry> 381 <entry> This makes a cube, with upper right and lower left382 coordinates as defined by the 2 float arrays. Arrays must be of the383 same length.385 <entry>Ceci crée un cube avec les coordonnées en haut à droite et en 386 bas à gauche définies par deux tableaux de flottants. Tous les 387 tableaux doivent être de la même longueur. 384 388 <literal>cube('{1,2}'::float[], '{3,4}'::float[]) == '(1,2),(3,4)' 385 389 </literal> … … 389 393 <row> 390 394 <entry><literal>cube(cube, float8) returns cube</literal></entry> 391 <entry>This builds a new cube by adding a dimension on to an 392 existing cube with the same values for both parts of the new coordinate. 393 This is useful for building cubes piece by piece from calculated values. 395 <entry>Ceci construit un nouveau cube en ajoutant une dimension à un 396 cube existant avec les mêmes valeurs pour les deux parties de la 397 nouvelle coordonnée. Ceci est utile pour construire des cubes piÚce 398 par piÚce à partir des valeurs calculées. 394 399 <literal>cube('(1)',2) == '(1,2),(1,2)'</literal> 395 400 </entry> … … 398 403 <row> 399 404 <entry><literal>cube(cube, float8, float8) returns cube</literal></entry> 400 <entry>This builds a new cube by adding a dimension on to an 401 existing cube. This is useful for building cubes piece by piece from 402 calculated values. <literal>cube('(1,2)',3,4) == '(1,3),(2,4)'</literal> 405 <entry>Ceci crée un nouveau cube en ajoutant une dimension sur un cube 406 existant. C'est utile pour construire des cubes piÚce par piÚce à partir 407 de valeurs calculées. 408 <literal>cube('(1,2)',3,4) == '(1,3),(2,4)'</literal> 403 409 </entry> 404 410 </row> … … 406 412 <row> 407 413 <entry><literal>cube_dim(cube) returns int</literal></entry> 408 <entry>cube_dim re turns the number of dimensions stored in the409 the data structure410 for a cube. This is useful for constraints on the dimensions of acube.414 <entry>cube_dim renvoie le nombre de dimensions enregistrées dans la 415 de données pour un cube. Ceci est utile pour les contraintes sur les 416 dimensions d'un cube. 411 417 </entry> 412 418 </row> … … 415 421 <entry><literal>cube_ll_coord(cube, int) returns double </literal></entry> 416 422 <entry> 417 cube_ll_coord returns the nth coordinate value for the lower left 418 corner of a cube. This is useful for doing coordinate transformations. 423 cube_ll_coord renvoie la n-iÚme coordonnée pour le coin en bas à 424 gauche d'un cube. Ceci est utile pour réaliser des transformations de 425 coordonnées. 419 426 </entry> 420 427 </row> … … 423 430 <entry><literal>cube_ur_coord(cube, int) returns double 424 431 </literal></entry> 425 <entry>cube_ur_coord re turns the nth coordinate value for the426 upper right corner of a cube. This is useful for doing coordinate427 transformations.432 <entry>cube_ur_coord renvoie la n-iÚme coordonnée pour le coin en haut à 433 droite d'un cube. Ceci est utile pour réaliser des transformations de 434 coordonnées. 428 435 </entry> 429 436 </row> … … 432 439 <entry><literal>cube_subset(cube, int[]) returns cube 433 440 </literal></entry> 434 <entry>Builds a new cube from an existing cube, using a list of 435 dimension indexes 436 from an array. Can be used to find both the ll and ur coordinate of single 437 dimenion, e.g.: cube_subset(cube('(1,3,5),(6,7,8)'), ARRAY[2]) = '(3),(7)' 438 Or can be used to drop dimensions, or reorder them as desired, e.g.: 441 <entry>Crée un nouveau cube à partir d'un cube existant en utilisant une 442 liste d'index de dimension pour un tableau. Peut être utilisé pour 443 trouver les coordonnées en bas à gauche et en haut à droite d'une 444 dimension, par exemple : 445 cube_subset(cube('(1,3,5),(6,7,8)'), ARRAY[2]) = '(3),(7)' 446 Ou peut être utilisé pour supprimer des dimensions, ou pour les 447 réordonner comme voulu, par exemple : 439 448 cube_subset(cube('(1,3,5),(6,7,8)'), ARRAY[3,2,1,1]) = 440 449 '(5, 3, 1, 1),(8, 7, 6, 6)' … … 444 453 <row> 445 454 <entry><literal>cube_is_point(cube) returns bool</literal></entry> 446 <entry>cube_is_point re turns true if a cube is also a point.447 This is true when the two defining corners are the same.</entry>455 <entry>cube_is_point renvoie true si un cube est aussi un point. 456 Ceci se vérifie quand deux coins de définition sont identiques.</entry> 448 457 </row> 449 458 … … 451 460 <entry><literal>cube_enlarge(cube, double, int) returns cube</literal></entry> 452 461 <entry> 453 cube_enlarge increases the size of a cube by a specified 454 radius in at least 455 n dimensions. If the radius is negative the box is shrunk instead. This 456 is useful for creating bounding boxes around a point for searching for 457 nearby points. All defined dimensions are changed by the radius. If n 458 is greater than the number of defined dimensions and the cube is being 459 increased (r >= 0) then 0 is used as the base for the extra coordinates. 460 LL coordinates are decreased by r and UR coordinates are increased by r. 461 If a LL coordinate is increased to larger than the corresponding UR 462 coordinate (this can only happen when r < 0) than both coordinates are 463 set to their average. To make it harder for people to break things there 464 is an effective maximum on the dimension of cubes of 100. This is set 465 in cubedata.h if you need something bigger. 462 cube_enlarge augmente la taille d'un cube suivant un radius précisé 463 dans au moins n dimensions. Si le radius est négatif, la boîte est 464 diminuée. C'est utile pour créer des boîtes limitantes autour d'un 465 point dans le but de rechercher les points voisins. Toutes les 466 dimensions définies sont modifiées par le radius. Si n est plus grand 467 que le nombre de dimensions définies et que le cube est augmenté 468 (r >= 0), alors 0 est utilisé comme base des coordonnées 469 supplémentaires. Les coordonnées en bas à gauche sont diminuées de r 470 et les coordonnées en haut à droite sont augmentées de r. Si une 471 coordonnée en bas à gauche est augmentée à une valeur plus importante 472 que la coordonnée correspondante en haut à droite (ceci peut seulement 473 survenir quand r est négatif), alors les deux coordonnées sont 474 initialisées à leur valeur moyenne. Malgré tout, pour solidifier 475 ce module, il existe un maximum aux dimensions des cubes. Il est de 476 100. Ceci est configuré dans cubedata.h si vous souhaitez augmenter 477 cette valeur. 466 478 </entry> 467 479 </row> … … 471 483 472 484 <para> 473 There are a few other potentially useful functions defined in cube.c474 that vanished from the schema because I stopped using them. Some of475 these were meant to support type casting. Let me know if I was wrong:476 I will then add them back to the schema. I would also appreciate477 other ideas that would enhance the type and make it more useful.478 </para> 479 480 <para> 481 For examples of usage, seesql/cube.sql485 Il existe quelques fonctions potentiellement utiles définies dans seg.c 486 qui ont disparu du schéma car j'ai arrêté de les utiliser. Certaines 487 avaient pour but de supporter la conversion de type. Prévenez-moi si 488 j'ai eu tort, je les rajouterais dans le schéma. J'apprécierais aussi 489 d'autres idées pour améliorer le type et le rendre plus utile. 490 </para> 491 492 <para> 493 Pour des exemples d'utilisation, voir sql/cube.sql 482 494 </para> 483 495 </sect2> 484 496 485 497 <sect2> 486 <title>Cr edits</title>487 <para> 488 This code is essentially based on the example written for498 <title>Crédits</title> 499 <para> 500 Ce code est essentiellement basé sur l'exemple écrit pour 489 501 Illustra, <ulink url="http://garcia.me.berkeley.edu/~adong/rtree"></ulink> 490 502 </para> 491 503 <para> 492 My thanks are primarily to Prof. Joe Hellerstein 493 (<ulink url="http://db.cs.berkeley.edu/~jmh/"></ulink>) for elucidating the 494 gist of the GiST (<ulink url="http://gist.cs.berkeley.edu/"></ulink>), and 495 to his former student, Andy Dong 496 (<ulink url="http://best.me.berkeley.edu/~adong/"></ulink>), for his exemplar. 497 I am also grateful to all postgres developers, present and past, for enabling 498 myself to create my own world and live undisturbed in it. And I would like to 499 acknowledge my gratitude to Argonne Lab and to the U.S. Department of Energy 500 for the years of faithful support of my database research. 504 Mes remerciements vont tout particuliÚrement au professeur Joe Hellerstein 505 (<ulink url="http://db.cs.berkeley.edu/~jmh/"></ulink>) pour avoir élucier 506 l'idée centrale de GiST (<ulink 507 url="http://gist.cs.berkeley.edu/"></ulink>), et à son ancien étudiant, 508 Andy Dong 509 (<ulink url="http://best.me.berkeley.edu/~adong/"></ulink>), pour son 510 exemple. Mes remerciements aussi aux 511 développeurs de PostgreSQL pour m'avoir permis de créer mon propre monde 512 et de pouvoir y vivre sans pertubation. Argonne Lab et le département 513 américain de l'énergie ont aussi toute ma gratitude pour les années de 514 support dans ma recherche sur les bases de données. 501 515 </para> 502 516 … … 513 527 514 528 <para> 515 Minor updates to this package were made by Bruno Wolff III 516 <email>bruno@wolff.to</email> in August/September of 2002. These include 517 changing the precision from single precision to double precision and adding 518 some new functions. 519 </para> 520 521 <para> 522 Additional updates were made by Joshua Reich <email>josh@root.net</email> in 523 July 2006. These include <literal>cube(float8[], float8[])</literal> and 524 cleaning up the code to use the V1 call protocol instead of the deprecated V0 525 form. 529 Des modifications mineures ont été effectuées sur ce modul par Bruno Wolff 530 III <email>bruno@wolff.to</email> en août/septembre 2002. Elles incluent 531 la modification de la précision (de simple à double) et l'ajout de 532 quelques nouvelles fonctions. 533 </para> 534 535 <para> 536 Des mises à jour supplémentaires ont été réalisées par Joshua Reich 537 <email>josh@root.net</email> en juillet 2006. Elles concernent 538 <literal>cube(float8[], float8[])</literal> et le nettoyage du code pour 539 utiliser le protocole d'appel V à la place de la forme V0 maintenant 540 obsolÚte. 526 541 </para> 527 542 </sect2> traduc/trunk/manuel/seg.xml
r839 r843 406 406 Ces opérateurs comparent en premier (a) à (c) et, s'ils sont égaux, 407 407 comparent (b) à (d). Cela fait un bon tri dans la plupart des cas, ce qui 408 est utile si vous voulez utiliser ORDER BY avec ce type 408 est utile si vous voulez utiliser ORDER BY avec ce type. 409 409 </para> 410 410

