"Daniel Caune" <daniel(dot)caune(at)ubisoft(dot)com> writes:
> Is an index on a nullable column useful for retrieving rows having that
> column null?
Nope, because IS NULL isn't an indexable operator.
You can make an end-run around that with a partial index, eg
create index fooi on foo(f1) where f1 is null
This can be used to satisfy queries using "where f1 is null", but it's
not any good for any other purpose.
If you often do "where f1 is null and something-about-f2",
you might get better mileage with
create index fooi on foo(f2) where f1 is null
but it's still a very specialized index.
regards, tom lane