Re: indice usando un CASE (8.2)

From: Jaime Casanova <jaime(at)2ndquadrant(dot)com>
To: "Miguel Beltran R(dot)" <yourpadre(at)gmail(dot)com>
Cc: Ayuda <pgsql-es-ayuda(at)postgresql(dot)org>
Subject: Re: indice usando un CASE (8.2)
Date: 2010-08-03 06:18:50
Message-ID: AANLkTimsqzo_Y7bjvS2EoPbm6jf07nbQHgsEHzL-AXDm@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda

On Mon, Aug 2, 2010 at 1:03 PM, Miguel Beltran R. <yourpadre(at)gmail(dot)com> wrote:
> Hola Lista,
>
> Tengo un servidor usando la versión 8.2, Ya se que es viejita pero no
> necesito mucho, son 100,000 registros nuevos al año.
>
> Bueno pasando al problema, quise hacer el siguiente indice pero marco error
>
> CREATE INDEX folio_folio_num_index
>   ON folio
>   USING btree
>   (CASE
>             WHEN (strpos(folio.folio::text, '-'::text) - 1) > 0
>             THEN substr(folio.folio::text, 1, strpos(folio.folio::text,
> '-'::text) - 1)::bigint
>             ELSE folio.folio::bigint
>         END );
>
> el error fue
> ERROR:  syntax error at or near "CASE"
> LINE 8:   (CASE
>            ^
>

no creo que puedas usar un CASE asi en el index... pero podrias poner
el case en una funcion immutable y crear el indice sobre la llamada a
la funcion

--
Jaime Casanova         www.2ndQuadrant.com
Soporte y capacitación de PostgreSQL

In response to

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message Juan Alfredo de Martin 2010-08-03 15:06:15 Convertir int en serial
Previous Message Ramón Alberto Bruening González 2010-08-02 20:20:39 Saber si falta realizar un vacumm....