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

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

In response to

Responses

Browse pgsql-es-ayuda by date

  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