Re: [SQL] index on aggregate function

From: "jose' soares" <sferac(at)bo(dot)nettuno(dot)it>
To: Remigiusz Sokolowski <rems(at)gdansk(dot)sprint(dot)pl>
Cc: Sascha Schumann <sas(at)schell(dot)de>, pgsql-sql(at)hub(dot)org
Subject: Re: [SQL] index on aggregate function
Date: 1999-02-15 12:07:59
Message-ID: 36C80E1F.D9202F72@bo.nettuno.it
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-sql

Remigiusz Sokolowski ha scritto:

> > > > I somewhere read that it is possible to create an index on aggregate functions
> > > > in PostgreSQL. Which syntax do I have to use for it?
> > > >
> > > > test=> CREATE TABLE test ( name VARCHAR(32) );
> > > > CREATE
> > > > test=> CREATE INDEX test_idx ON test lower(name);
> > > > ERROR: parser: parse error at or near "lower"
> > > >
> > > > gives me a parser error.
> > >
> > > Right syntax is
> > > CREATE INDEX test_idx ON test (lower(name) text_ops);
> > > I try it and index was generated without error
> > > Rem
> >
> > Well, that exact statement gives me:
> >
> > ERROR: BuildFuncTupleDesc: function 'lower(varchar)' does not exist
> >
> > I also tried varchar_ops and char_ops instead of text_ops, but that does not
> > resolve the problem. I'm using PostgreSQL 6.4.2 on Linux without problems so
> > far.
>
> I have holidays and now have to read so much mails, that I can't find if
> there were any other suggestions about that. AFAIK there is no lower()
> function for varchar type and this is a problem - solution is to use text
> type or create function lower() for varchar type.
> Rem
>
> -------------------------------------------------------------------*------------
> Remigiusz Sokolowski e-mail: rems(at)gdansk(dot)sprint(dot)pl * *
> -----------------------------------------------------------------*****----------

--lower() works with varchar...

prova=> CREATE TABLE test ( name VARCHAR(32) );
CREATE
prova=> insert into test values ('AAAA');
INSERT 188475 1
prova=> select lower(name) from test;
lower
-----
aaaa
(1 row)

but it doesn't work on create index...

prova=> drop table test;
DROP
prova=> CREATE TABLE test ( name VARCHAR(32) );
CREATE
prova=> CREATE INDEX test_idx ON test lower(nome);
ERROR: parser: parse error at or near "lower"

--
- Jose' -

And behold, I tell you these things that ye may learn wisdom; that ye may
learn that when ye are in the service of your fellow beings ye are only
in the service of your God. - Mosiah 2:17 -

In response to

Responses

Browse pgsql-sql by date

  From Date Subject
Next Message Remigiusz Sokolowski 1999-02-15 13:50:00 Re: [SQL] index on aggregate function
Previous Message Remigiusz Sokolowski 1999-02-15 11:12:10 Re: [SQL] DEFAULT TEXT 'now' in create table