From: | Alvaro Herrera <alvherre(at)commandprompt(dot)com> |
---|---|
To: | Jaime Casanova <systemguards(at)gmail(dot)com> |
Cc: | 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-27 14:27:50 |
Message-ID: | 20060327142750.GB4752@surnet.cl |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-es-ayuda |
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 ...)
Un ejemplo mas breve, por si alguien quiere reportarlo
alvherre=# create function lit(text) returns text language sql as
alvherre-# $$ select '%$1%'::text; $$;
CREATE FUNCTION
alvherre=# select lit('hey');
lit
------
%$1%
(1 fila)
Obviamente la idea seria que retornara
%hey%
--
Alvaro Herrera http://www.CommandPrompt.com/
PostgreSQL Replication, Consulting, Custom Development, 24x7 support
From | Date | Subject | |
---|---|---|---|
Next Message | david crespo martin | 2006-03-27 14:36:14 | Re: comparativa |
Previous Message | Pablo Abalos | 2006-03-27 13:12:15 | Error al Intalar postgres |