Re: Index selection (and partial index) for BYTEA field

Поиск
Список
Период
Сортировка
От Joe Conway
Тема Re: Index selection (and partial index) for BYTEA field
Дата
Msg-id 405BD92A.5090005@joeconway.com
обсуждение исходный текст
Ответ на Re: Index selection (and partial index) for BYTEA field  (David Garamond <lists@zara.6.isreserved.com>)
Ответы Re: Index selection (and partial index) for BYTEA field
Список pgsql-general
David Garamond wrote:
> Tom Lane wrote:
>> The partial index matcher is not omniscient.  It knows a few things
>> about btree-compatible comparison operators, but nothing about LIKE.
>> Accordingly, this partial index will only get matched to queries that
>> contain *exactly* "id like '\\000%'" in their WHERE clauses.
>
> So I guess there's not a way that the partial index can be used instead
> of the PK index (I couldn't find in FAQ/archives whether one can force
> usage of one index over another).

There's no way to force use of either index, but you can probably get
your partial index picked if you define the index like:

   create unique index i_partition_id_000 on partition(id)
   where id like '\\000\\001%';

   (with query
    "select * from partition where id like '\\000\\001%';")

or else define your query like:

   select * from partition where id like '\\000%';

   (with index
    create unique index i_partition_id_000 on partition(id)
    where id like '\\000%';)


Joe

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

Предыдущее
От: Tom Lane
Дата:
Сообщение: Re: A way to refer to the "outer" query implicitly?
Следующее
От: Steve Krall
Дата:
Сообщение: Re: pg_dump on older version of postgres eating huge