Re: Error trying to create a functional index. - Mailing list pgsql-sql

From Steve Brett
Subject Re: Error trying to create a functional index.
Date
Msg-id a1egf1$1l20$1@news.tht.net
Whole thread Raw
List pgsql-sql
i stand totally corrected.

:-)

Steve

"CoL" <col@mportal.hu> wrote in message news:3C397FF1.20706@mportal.hu...
> Steve: of course you can make functional indices:
>
> So why this not workin???? (not workin for me 2 too, pg 7.1.3)
> "CREATE INDEX eventdateindex ON event (date_trunc('day', eventstamp));"
>
> ----------------
> 7.5. Functional Indices
> For a functional index, an index is defined on the result of a function
> applied to one or more columns of a single table. Functional indices can
> be used to obtain fast access to data based on the result of function
calls.
> For example, a common way to do case-insensitive comparisons is to use
> the lower:
> SELECT * FROM test1 WHERE lower(col1) = 'value';
> In order for that query to be able to use an index, it has to be defined
> on the result of the lower(column) operation:
> CREATE INDEX test1_lower_col1_idx ON test1 (lower(col1));
> The function in the index definition can take more than one argument,
> but they must be table columns, not constants. Functional indices are
> always single-column (namely, the function result) even if the function
> uses more than one input field; there cannot be multi-column indices
> that contain function calls.
> Tip: The restrictions mentioned in the previous paragraph can easily be
> worked around by defining custom functions to use in the index
> definition that call the desired function(s) internally.
> ----------------
>
> Steve Brett wrote:
>
> > i think you need to do this
> >
> > CREATE INDEX eventdateindex ON event (eventstamp);
> >
> > as i'm 99% certain that you can only create an index on a 'whole'
attribute
> > and not the result of a function.
> >
> > Steve
> >
> > "Neal Lindsay" <chox65@yahoo.com> wrote in message
> > news:b01eaea0.0201030725.51661db3@posting.google.com...
> >
> >>I have a table called "event":
> >>  Attribute  |           Type           |
> >>Modifier
>
>>-------------+--------------------------+---------------------------------
> >>
> > ----------------------
> >
> >> eventid     | integer                  | not null default
> >>nextval('"event_eventid_seq"'::text)
> >> femployeeid | integer                  | not null
> >> ftaskid     | integer                  | not null
> >> flocaleid   | integer                  | not null
> >> eventstamp  | timestamp with time zone | not null
> >> duration    | smallint                 | not null
> >>Index: event_pkey
> >>
> >>When I try to create an index:
> >>CREATE INDEX eventdateindex ON event (date_trunc('day', eventstamp));
> >>
> >>It gives me this error:
> >>ERROR:  parser: parse error at or near "'"
> >>
> >>I can "SELECT date_trunc('day', eventstamp) FROM event;", but not
> >>create an index on that function.  What am I doing wrong?
> >>
> >>Thanks
> >>-Neal Lindsay
> >>
> >
> >
>




pgsql-sql by date:

Previous
From: tjennette@thomasnelson.com (Trace)
Date:
Subject: SQL Joins
Next
From: CoL
Date:
Subject: Re: Error trying to create a functional index.