Partial indexes on VARCHAR get double converted from text

Поиск
Список
Период
Сортировка
От Josh Berkus
Тема Partial indexes on VARCHAR get double converted from text
Дата
Msg-id 54B84278.2000800@agliodbs.com
обсуждение исходный текст
Ответы Re: Partial indexes on VARCHAR get double converted from text  (Tom Lane <tgl@sss.pgh.pa.us>)
Список pgsql-bugs
create table stately ( id int, filename varchar(255), state varchar(255) );

create index on stately(state) where state in ( 'pending', 'waiting',
'done' );

\d stately
            Table "public.stately"
  Column  |          Type          | Modifiers
----------+------------------------+-----------
 id       | integer                |
 filename | character varying(255) |
 state    | character varying(255) |
Indexes:
    "stately_state_idx" btree (state) WHERE state::text = ANY
(ARRAY['pending'::character varying, 'waiting'::character varying,
'done'::character varying]::text[])

There is no combination of typecasting which will prevent this outcome.
 I've tried.

Further, it seems to me from testing that this double type conversion
affects the planner's costing of the index, causing it to not want to
use the index.

--
Josh Berkus
PostgreSQL Experts Inc.
http://pgexperts.com

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

Предыдущее
От: Tom Lane
Дата:
Сообщение: Re: BUG #12556: Clause IN and NOT IN buggy
Следующее
От: Tom Lane
Дата:
Сообщение: Re: Partial indexes on VARCHAR get double converted from text