Обсуждение: date() indexing error..

Поиск
Список
Период
Сортировка

date() indexing error..

От
"Mitch Vincent"
Дата:
Using PostgreSQL 7.0 I'm Doing ...

ipa2=# CREATE INDEX "app_stat_month" on applicant_stats(date(month));
ERROR:  SQL-language function not supported in this context.

ipa2=# \d applicant_stats    Table "applicant_stats"Attribute |   Type    | Modifier
-----------+-----------+----------app_id    | integer   |month     | date      |user_id   | integer   |view_time |
timestamp|
 
Index: app_id

When I try and do the above there is one record in the database.

ipa2=# select * from applicant_stats;app_id |   month    | user_id |          view_time
--------+------------+---------+------------------------------ 56941 | 05-26-2000 |     291 | Fri May 26 09:19:41 2000
EDT
(1 row)


If I erase it I get the same error, only when I try and insert data into the
table..

I'm doing these kind of indexes on several tables, this is the only one I'm
having this occur.. Any ideas?

Thanks!

-Mitch



Re: date() indexing error..

От
Tom Lane
Дата:
"Mitch Vincent" <mitch@venux.net> writes:
> Using PostgreSQL 7.0 I'm Doing ...
> ipa2=# CREATE INDEX "app_stat_month" on applicant_stats(date(month));
> ERROR:  SQL-language function not supported in this context.

> ipa2=# \d applicant_stats
>      Table "applicant_stats"
>  Attribute |   Type    | Modifier
> -----------+-----------+----------
>  app_id    | integer   |
>  month     | date      |
>  user_id   | integer   |
>  view_time | timestamp |
> Index: app_id

Since month is already a 'date', applying date() to it is pretty pointless.

I don't really know why we have date(date) defined at all, but we do,
and it's defined as an SQL-language function --- which indexes don't
support at the moment.  Thus the error message.

There are a fair number of no-op functions in pg_proc that are defined
as SQL "SELECT $1".  We could probably afford to lose 'em all, and let
the parser treat these things as implicit type conversions instead...
        regards, tom lane