Re: Composite types questions

Поиск
Список
Период
Сортировка
От Merlin Moncure
Тема Re: Composite types questions
Дата
Msg-id b42b73151001110703y5f31b45fi8223ea45a7fc747b@mail.gmail.com
обсуждение исходный текст
Ответ на Composite types questions  (Vincenzo Romano <vincenzo.romano@notorand.it>)
Ответы Re: Composite types questions
Список pgsql-general
On Mon, Jan 11, 2010 at 5:14 AM, Vincenzo Romano
<vincenzo.romano@notorand.it> wrote:
> Hi all.
>
> It's not clear to me how composite values are used in  conditions (WHERE/CHECK).
> In my case I have something like this:
>
> -- begin snippet
>
> CREATE TABLE test_tab (
>  col1 timestamp not null,
>  col2 int8 not null,
>  col3 text not null
> );
>
> CREATE INDEX i_test_tab_col1 ON test_tab( col1 );
>
> SELECT *
>  FROM test_tab
>  WHERE (date_trunc('week',col1),col2,col3)=('val1'::timestamp,val2,'val3')
> ;
> -- end snippet
>
> For a number of reasons I cannot split the the WHERE condition in the
> "usual" AND-list.
> My questions are:
> Can the i_test_tab_col1 INDEX be taken into account from the query planner?
me
yes

> What if I define a functional index on col1?

sure (if you pull the data the way it is done in the function)

> Does the same apply to TABLE-level CHECK conditions?

probably.

You are not really asking about composite types.  What you
demonstrated is row constructor syntax...they are similar but not the
same.  For the most part, at least from 8.2 onwards, postgres is
pretty smart about row constructor and should do what you want with
minimal fuss.

merlin

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

Предыдущее
От: Merlin Moncure
Дата:
Сообщение: Re: Set Returning C-Function with cache over multiple calls (with different arguments)
Следующее
От: Tom Lane
Дата:
Сообщение: Re: pg.dropped