Re: Partial index with regexp not working - Mailing list pgsql-general

From Richard Huxton
Subject Re: Partial index with regexp not working
Date
Msg-id 46E66A10.9000400@archonet.com
Whole thread Raw
In response to Partial index with regexp not working  ("Phoenix Kiula" <phoenix.kiula@gmail.com>)
Responses Re: Partial index with regexp not working  (Richard Broersma Jr <rabroersma@yahoo.com>)
List pgsql-general
Phoenix Kiula wrote:
> CREATE INDEX idx_trades_tid_partial ON trades (trader_id)
>     WHERE trader_id ~ '[a-z]' ;

>    WHERE trader_id = 'johndoe'
>
> It is not using this index at all! It is using no index in fact, it's
> trying to do a sequential scan. Any ideas why this partial index is
> not working??

Why would it? There's no magic that lets PG know one arbitrary condition
correlates with another.

A partial index will only be considered if you test for its condition:

SELECT ... WHERE trader_id = 'johndoe' AND trader_id ~ '[a-z]'

For searching for specific IDs I wouldn't expect a partial index to be
much better than a full index - unless you have a *lot* of IP addresses
and hardly any names.

--
   Richard Huxton
   Archonet Ltd

pgsql-general by date:

Previous
From: Tom Allison
Date:
Subject: Re: Debian problem...
Next
From: Richard Broersma Jr
Date:
Subject: Re: Partial index with regexp not working