Re: Hacer ILIKE '%$1%' en función

From: "Jaime Casanova" <systemguards(at)gmail(dot)com>
To: "Jaime Casanova" <systemguards(at)gmail(dot)com>, Sebastián Villalba <sebastian(at)fcm(dot)unc(dot)edu(dot)ar>, "Lista Ayuda Pgsql" <pgsql-es-ayuda(at)postgresql(dot)org>
Subject: Re: Hacer ILIKE '%$1%' en función
Date: 2006-03-28 03:11:27
Message-ID: c2d9e70e0603271911i4a1262acsdce50022359389a8@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda

On 3/27/06, Alvaro Herrera <alvherre(at)commandprompt(dot)com> wrote:
> Jaime Casanova escribió:
> > On 3/26/06, Sebastián Villalba <sebastian(at)fcm(dot)unc(dot)edu(dot)ar> wrote:
>
> > > > Esto deberia funcionarte, lo probe en una funcion mas pequeña y
> > > > simple pero la idea es la misma:
> > > >
> > > > CREATE OR REPLACE FUNCTION "selectDocenteBuscado"(varchar)
> > > > RETURNS SETOF persona AS
> > > > $$
> > > > SELECT p.* FROM persona p, "personaGrupo" pg, grupo g
> > > > WHERE g.nombre = 'Docentes'
> > > > AND g.id = pg.grupo_id
> > > > AND pg.persona_id = p.id
> > > > AND (p.apellido ILIKE '%' || $1 || '%' OR p.nombre ILIKE '%'
> > > > || $1|| '%') ORDER BY p.apellido $$ LANGUAGE sql IMMUTABLE SECURITY
> > > > DEFINER;
> > >
> > > Excelente!. Efectivamente así funcionó!. Te agradezco y te admiro Jaime que a
> > > esas horas (01:47:09) estés trabajando desinteresadamente por darnos una
> > > ayuda. Un gran saludo y nuevamente muchísimas gracias.
>
> Hmm, interesante. Aparentemente el problema es que el parser no hace
> expansion de variables dentro de un literal de cadena. No me queda
> totalmente claro si esto es un bug o no ... incluso, en caso de serlo,
> si es posible corregirlo. Mi primera impresion es que no (a menos que
> se incurriera en un costo muy alto, procesando todos los literales de
> cadena a ver si hay que hacer expansion ...)
>

no creo que sea un bug, de seguro es un comportamiento *muy* poco intuitivo...

no creo que sea correcta la expansion dentro de literales, al menos no
sin usar caracteres de escape, despues de todo que pasaria si yo de
hecho estoy devolviendo un texto que que incluya la cantidad monetaria
$1 (un dolar)...

--
Atentamente,
Jaime Casanova

"What they (MySQL) lose in usability, they gain back in benchmarks, and that's
all that matters: getting the wrong answer really fast."
Randal L. Schwartz

In response to

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message Kelly González Enríquez 2006-03-28 16:34:35 Valor-Maximo
Previous Message Alvaro Herrera 2006-03-28 01:18:07 Re: frecuencia autovacuum