Re: Feature request: smarter use of conditional indexes - Mailing list pgsql-performance

From Tom Lane
Subject Re: Feature request: smarter use of conditional indexes
Date
Msg-id 19341.1078358036@sss.pgh.pa.us
Whole thread Raw
In response to Feature request: smarter use of conditional indexes  (John Siracusa <siracusa@mindspring.com>)
Responses Re: Feature request: smarter use of conditional indexes  (Christopher Kings-Lynne <chriskl@familyhealth.com.au>)
Re: Feature request: smarter use of conditional indexes  (John Siracusa <siracusa@mindspring.com>)
List pgsql-performance
John Siracusa <siracusa@mindspring.com> writes:
> Given an index like this:
>     CREATE UNIQUE INDEX i1 ON t1 (c1) WHERE c1 IS NOT NULL;
> and a query like this:
>     SELECT * FROM t1 WHERE c1 = 123;
> I'd like the planner to be smart enough to use an index scan using i1.

Send a patch ;-)

The routine you want to teach about this is pred_test_simple_clause() in
src/backend/optimizer/path/indxpath.c.  ISTM that it's legitimate to
conclude that "foo IS NOT NULL" is implied by "foo op anything" or
"anything op foo" if the operator is marked strict.

Note: please patch against CVS head, as that code got rewritten since
7.4.

            regards, tom lane

pgsql-performance by date:

Previous
From: Neil Conway
Date:
Subject: Re: WAL Optimisation - configuration and usage
Next
From: Paul Thomas
Date:
Subject: Re: Scaling further up