Re: Indexing null dates - Mailing list pgsql-general

From Tom Lane
Subject Re: Indexing null dates
Date
Msg-id 29801.1082130843@sss.pgh.pa.us
Whole thread Raw
In response to Indexing null dates  ("John Sidney-Woollett" <johnsw@wardbrook.com>)
Responses Re: Indexing null dates
List pgsql-general
"John Sidney-Woollett" <johnsw@wardbrook.com> writes:
> [ needs to make this fast: ]
>   -- locate the next order
>   select WCCustOrderID into vCustOrderID
>   from CUSTOMER.WCCustOrderStatusLog
>   where WCOrderStatusID = pStatusID
>   and Acknowledged is null
>   and Processing is null
>   for update
>   limit 1;

> My question is whether postgres can index null values, and if not, do I
> have to accept a full table scan when locating records.

It indexes them, but "is null" is not an indexable operator, so you
can't directly solve the above with a 3-column index.  What you can do
instead is use a partial index, for instance

create index i on CUSTOMER.WCCustOrderStatusLog (WCOrderStatusID)
where Acknowledged is null and Processing is null;

            regards, tom lane

pgsql-general by date:

Previous
From: "Uwe C. Schroeder"
Date:
Subject: Re: A simple question about Read committed isolation level
Next
From: Tom Lane
Date:
Subject: Re: Locale support on Mac OS X