Re: Index on Date_Trunc

Поиск
Список
Период
Сортировка
От Tom Lane
Тема Re: Index on Date_Trunc
Дата
Msg-id 13680.978897650@sss.pgh.pa.us
обсуждение исходный текст
Ответ на Index on Date_Trunc  ("Nathan Barnett" <nbarnett@cellularphones.com>)
Список pgsql-general
"Nathan Barnett" <nbarnett@cellularphones.com> writes:
> I am trying to create an index on the date_trunc('day', columna) in a table.
> When I try to create this index, I get a parse error near the single quote.
> Is there a workaround to create this index?  I am using v7.0.3 on FreeBSD.

Functional indexes can only be on a simple function of one or more
simple column names, ie, "f(a,b,c)".  There has been talk of relaxing
this syntactic restriction, but it doesn't seem to be high on anyone's
priority list.  The reason is that you can work around it by creating
an intermediate user-defined function that computes any expression you
want based on the given column values.  For instance, in this case
you'd make a function dayof(date) and then build the index on that.

In 7.0.* I believe that you need to write the function in a PL language
(plpgsql would be the most convenient choice), or if you are talking
about a heavily used table, you might want to write it in C for speed.

7.1 will allow functional indexes on SQL-language functions too, though
the speed might not be what you'd like...

            regards, tom lane

В списке pgsql-general по дате отправления:

Предыдущее
От: Tom Lane
Дата:
Сообщение: Re: ECPG could not connect to the database.
Следующее
От: Ian Harding
Дата:
Сообщение: Re: Loading optimization