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

From: "Mitch Vincent" <mitch(at)venux(dot)net>
To: "gav" <gav(at)nlr(dot)ru>, <pgsql-sql(at)postgresql(dot)org>
Subject: Re: lower() for varchar data by creating an index
Date: 2000-05-17 14:31:50
Message-ID: 00d901bfc00c$a3a36c00$4100000a@venux.net
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: 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(at)nlr(dot)ru>
To: <pgsql-sql(at)postgresql(dot)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
>
>
>

In response to

Responses

Browse pgsql-sql by date

  From Date Subject
Next Message Kyle Bateman 2000-05-17 15:15:46 Re: question on update/delete rules on views
Previous Message Brook Milligan 2000-05-17 13:52:02 Re: question on update/delete rules on views