Re: forcing use of a specific (expression) index?

From: Richard Huxton <dev(at)archonet(dot)com>
To: Dan Weber <weberdan(at)gmail(dot)com>
Cc: pgsql-general(at)postgresql(dot)org
Subject: Re: forcing use of a specific (expression) index?
Date: 2007-05-03 09:22:57
Message-ID: 4639A9F1.9050606@archonet.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-general

Dan Weber wrote:
> I made an expression index specifically for that where clause:
>
> CREATE INDEX special_testing_idx on my_table (((bool_1 or
> int_1 = 0) AND (int_2 IS NULL) AND (int_3 IS
> NULL) AND (protocol = 2)));

No, you haven't. What you've done here is create an index *for that
expression*. And it's not terribly useful because your expression will
only have two possible values: true, false.

What you were after is something like:

CREATE INDEX special_idx2 ON my_table (id) WHERE (...long expression...)

--
Richard Huxton
Archonet Ltd

In response to

Responses

Browse pgsql-general by date

  From Date Subject
Next Message Richard Huxton 2007-05-03 09:24:56 Re: Have I b0rked something? Slow comparisons on "where x in (...)"
Previous Message Alban Hertroys 2007-05-03 09:19:03 Cross-schema inheritence problem