Re: lower() for varchar data by creating an index

Поиск
Список
Период
Сортировка
От Mitch Vincent
Тема Re: lower() for varchar data by creating an index
Дата
Msg-id 00d901bfc00c$a3a36c00$4100000a@venux.net
обсуждение исходный текст
Ответ на lower() for varchar data by creating an index  (Alex Guryanow <gav@nlr.ru>)
Ответы Re[2]: lower() for varchar data by creating an index  (Alex Guryanow <gav@nlr.ru>)
Список pgsql-sql
CREATE function lower(varchar) returns text as 'lower' language 'internal'
with (iscachable);

It's a bit slower than if it was actually in the backend but it's a very
tiny difference. I spoke to Tom Lane about this, it's on the TODO list I
believe for 7.1. In the meantime the above will work great..


- Mitch

"The only real failure is quitting."


----- Original Message -----
From: Alex Guryanow <gav@nlr.ru>
To: <pgsql-sql@postgresql.org>
Sent: Wednesday, May 17, 2000 3:51 AM
Subject: [SQL] lower() for varchar data by creating an index


> Hi,
>
> I have a table called t1 with field f1 of type varchar(40):
>
>   CREATE TABLE t1 (f1 varchar(40));
>
> To make a case insensitive search I build the query like
>
>    SELECT f1 FROM t1 WHERE lower( f1 ) LIKE 'alex%';
>
> This works fine. But when I try to make an index to speed up the query
using the command
>
>      CREATE INDEX t1_f1_idx ON t1 (lower(f1));
>
> I receive the following error:
>
>   ERROR:  DefineIndex: function 'lower(varchar)' does not exist
>
> Why by executing the query the function 'lower(varchar)' exists and by
creating the index don't?
>
> I use Postgres 7.0.
>
> Best regards,
> Alex
>
>
>



В списке pgsql-sql по дате отправления:

Предыдущее
От: Brook Milligan
Дата:
Сообщение: Re: question on update/delete rules on views
Следующее
От: Kyle Bateman
Дата:
Сообщение: Re: question on update/delete rules on views