Skip site navigation (1) Skip section navigation (2)

Re: Index avec mes propres types ?

From: Dimitri Fontaine <dfontaine(at)hi-media(dot)com>
To: pgsql-fr-generale(at)postgresql(dot)org
Cc: Stephane Bortzmeyer <bortzmeyer(at)nic(dot)fr>
Subject: Re: Index avec mes propres types ?
Date: 2008-09-04 13:12:26
Message-ID: 200809041512.29037.dfontaine@hi-media.com (view raw or flat)
Thread:
Lists: pgsql-fr-generale
Bonjour,

Le jeudi 04 septembre 2008, Stephane Bortzmeyer a écrit :
> [C'est une question qui est, pour l'instant, essentiellement de
> curiosité. Mais j'aurais peut-être à utiliser ça un jour.]
>
> Si je crée mes propres types
> <http://www.postgresql.org/docs/8.3/interactive/xtypes.html>, puis-je
> encore utiliser des index ?

C'est possible, via les OPERATOR CLASS. Tu dis à PostgreSQL quels opérateurs 
vont avec ton type (opérateurs maison ou non, symboles habituels ou pas) et 
lesquels ton index doit utiliser (la Strategy, pour = < > et autres dans 
btree par exemple).
  http://www.postgresql.org/docs/8.3/static/xindex.html
  http://www.postgresql.org/docs/8.3/static/sql-createopclass.html

> Si je prends l'exemple de la documentation, des nombres complexes, que
> je mets dans une colonne x, est-ce que :
>
> SELECT * FROM Test WHERE x = (1, 0)
>
> pourra t-elle utiliser un index ou bien faudra t-il examiner tous les
> nombres ?

Utilisation d'index spécifique possible, pour un BTree il suffit de fournir 
les opérateurs <= < = > >=, pour GiST et GIN il faut coder quelques fonctions 
d'interface.

> Plus fort, si que je crée des fonctions real() et imaginary() me
> permettant d'accéder aux parties réelles et imaginaires de ces
> nombres, une requête comme :
>
> SELECT * FROM Test WHERE real(x) = 0
>
> pourra t-elle utiliser un index sur les parties réelles ou bien faudra
> t-il examiner tous les nombres ?

J'imagine que tu peux même créer un index fonctionnel dans ce cas, non ?

Pour un exemple que j'espère complet et détaillé, voir prefix :)
  http://prefix.projects.postgresql.org/
  http://cvs.pgfoundry.org/cgi-bin/cvsweb.cgi/prefix/prefix/
  http://pgsql.tapoueh.org/site/html/prefix/index.html
  http://pgsql.tapoueh.org/site/html/news/pgloader-prefix.pdf

Cordialement,
-- 
dim

In response to

Responses

pgsql-fr-generale by date

Next:From: BPascalDate: 2008-09-05 06:33:58
Subject: pg_hba.conf
Previous:From: Stephane BortzmeyerDate: 2008-09-04 12:29:55
Subject: Index avec mes propres types ?

Privacy Policy | About PostgreSQL
Copyright © 1996-2014 The PostgreSQL Global Development Group