Re: using for rec inside a function: behavior very slow

From: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
To: Jie Liang <jliang(at)ipinc(dot)com>
Cc: edipoelder(at)ig(dot)com(dot)br, pgsql-sql(at)postgresql(dot)org
Subject: Re: using for rec inside a function: behavior very slow
Date: 2001-04-03 01:16:56
Message-ID: 24884.986260616@sss.pgh.pa.us
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-admin pgsql-sql

Jie Liang <jliang(at)ipinc(dot)com> writes:
> v_url:= $1||''%'';
> for rec in select id,url from urlinfo where url like v_url order by
> url loop

[ is slow ]

LIKE index optimization doesn't happen if the LIKE pattern is a variable
when the plan is created.

In 7.1 you can work around this problem by using plpgsql's FOR ... EXECUTE
notation, but I don't think there's any good answer in 7.0.

for rec in execute ''select id,url from urlinfo where url like ''||quote_literal(v_url)||'' order by url'' loop

regards, tom lane

In response to

Browse pgsql-admin by date

  From Date Subject
Next Message Jean-Roch SCHMITT 2001-04-03 05:46:04 base/1 instead of base/template1 initdb result
Previous Message Jie Liang 2001-04-03 00:04:13 select statement inside a function: behavior bad

Browse pgsql-sql by date

  From Date Subject
Next Message Tom Lane 2001-04-03 01:19:07 Re: very very slow .....
Previous Message Jie Liang 2001-04-03 00:04:13 select statement inside a function: behavior bad