Re: Queries slow from within plpgsql
| От | Tom Lane |
|---|---|
| Тема | Re: Queries slow from within plpgsql |
| Дата | |
| Msg-id | 14917.1086410162@sss.pgh.pa.us обсуждение исходный текст |
| Ответ на | Queries slow from within plpgsql (David Boone <dave@iboone.net>) |
| Ответы |
Re: Queries slow from within plpgsql
|
| Список | pgsql-general |
David Boone <dave@iboone.net> writes:
> I've been trying to create functions with postgres, but it seems that
> queries run within a function take wayyy too long to complete. The
> increased time seems to be in the actual queries, not function call
> overhead or something, but I can't for the life of me figure out why
> it's slower like this.
The problem here looks to be that you've declared the function parameter
as "text" while the table column is "char(7)". When you write
select ... where zip = 'V2P 6H3';
the unadorned literal is taken to be char(7) to match the compared-to
column, but in the function case the datatype of $1 is predetermined,
and so
select ... where zip = $1;
involves a cross-data-type-comparison ... which is non-indexable
in current releases. (There's a fix in place for 7.5.) Either
change the declared type of the function parameter, or put a cast
into the body of the function.
regards, tom lane
В списке pgsql-general по дате отправления: