Thread: Is there anyway to create a functional index using to_date?

Is there anyway to create a functional index using to_date?

From
Chris Hoover
Date:
I'm running 7.3.4 and we are having problems with our reporting views
on our database.  One fix I wanted to do was to create a functional
index using the to_date function.  However, when I do a create index
abc on table def(to_date(char_field,'yyyymmdd')), PostgreSQL complains
about a parser error at the 'yyyymmdd'.  Is there anyway to force
PostgreSQL to create this kind of index?

I can get it to create on if I create a special function that just
takes the field to be converted and returns the converted date.
However, I would prefer not to go that route since it requires us to
update all of our views.

Thanks for any help,

Chris

Re: Is there anyway to create a functional index using to_date?

From
Bruno Wolff III
Date:
On Tue, Aug 16, 2005 at 16:24:37 -0400,
  Chris Hoover <revoohc@gmail.com> wrote:
> I'm running 7.3.4 and we are having problems with our reporting views
> on our database.  One fix I wanted to do was to create a functional
> index using the to_date function.  However, when I do a create index
> abc on table def(to_date(char_field,'yyyymmdd')), PostgreSQL complains
> about a parser error at the 'yyyymmdd'.  Is there anyway to force
> PostgreSQL to create this kind of index?
>
> I can get it to create on if I create a special function that just
> takes the field to be converted and returns the converted date.
> However, I would prefer not to go that route since it requires us to
> update all of our views.

That is what you have to do in older versions of postgres. You don't have
to do that in 8.0 (I am not sure about 7.4).

Re: Is there anyway to create a functional index using to_date?

From
Tom Lane
Date:
Bruno Wolff III <bruno@wolff.to> writes:
> Chris Hoover <revoohc@gmail.com> wrote:
>> I can get it to create on if I create a special function that just
>> takes the field to be converted and returns the converted date.

> That is what you have to do in older versions of postgres. You don't have
> to do that in 8.0 (I am not sure about 7.4).

7.4 does it too.  7.3 is ... um ... old.

            regards, tom lane