Re: How can I index a substring attribute?

From: Stephan Szabo <sszabo(at)megazone(dot)bigpanda(dot)com>
To: Thiemo Kellner <thiemo(at)thiam(dot)ch>
Cc: <pgsql-novice(at)postgresql(dot)org>
Subject: Re: How can I index a substring attribute?
Date: 2003-08-13 23:22:57
Message-ID: 20030813161310.H61641-100000@megazone.bigpanda.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-novice

On Thu, 14 Aug 2003, Thiemo Kellner wrote:

> I try to have an index that only contains substrings of an attribute. (This is
> for a try of a port of a MySQL repository).
>
> I did:
> --
> create sequence s_Filename;
>
> create table Filename (
> FilenameId integer default nextval('s_Filename') not null,
> Name text not null,
> primary key (FilenameId)
> );
>
> create index Filename_Name30_FI on Filename (substr(Name, 1, 30));
> --
>
> However, I got the following:
> --
> bacula=# create sequence s_Filename;
> CREATE SEQUENCE
> bacula=#
> bacula=# create table Filename (
> bacula(# FilenameId integer default nextval('s_Filename')
> not null,
> bacula(# Name text
> not null,
> bacula(# primary key (FilenameId)
> bacula(# );
> NOTICE: CREATE TABLE / PRIMARY KEY will create implicit index 'filename_pkey'
> for table 'filename'
> CREATE TABLE
> bacula=#
> bacula=# create index Filename_Name30_FI on Filename (substr(Name, 1, 30));
> ERROR: parser: parse error at or near "1" at character 59
> --
>
> I also replaced "substr(Name, 1, 30)" with "substring(Name from 1 for 30)" to
> no avail.
>
> Does somebody have an idea?

For 7.3 and earlier, you'll need to wrap the substr in another function
that takes just Name and passes the arguments because the functional
indexes won't take the constant arguments.

In 7.4 the indexes are more powerful and can do this directly (and many
more things too).

In response to

Responses

Browse pgsql-novice by date

  From Date Subject
Next Message Nabil Sayegh 2003-08-14 00:09:36 drop/add fk in transaction
Previous Message Thiemo Kellner 2003-08-13 23:18:33 How can I index a substring attribute?