[ sorry, I'd lost track of this thread ]
Bruce Momjian <bruce@momjian.us> writes:
> I now remember that I wrote the first IS NULL in:
> CREATE UNIQUE INDEX tests_target_one_null ON tests ((target IS NULL)) WHERE target IS NULL;
> in hope that if someone is looking for the null value in the column, the
> IS NULL would allow the index to be used to find it, while 1 or true
> would not.
Well, that's not the case:
regression=# create index tenk1_null_index on tenk1((1)) where ten is null;
CREATE INDEX
regression=# explain select * from tenk1 where ten is null;
QUERY PLAN
--------------------------------------------------------------------------------
Index Scan using tenk1_null_index on tenk1 (cost=0.12..8.14 rows=1 width=244)
(1 row)
(Maybe it was true at some time in the past, but not any more.)
Also, it complicates the example, and since you didn't explain the
reason for the complication, I think it's pretty confusing.
But really I still don't see the need for these additional examples
at all. It's especially weird that what you want to do is have
some examples on that page have <example> markup and others not.
regards, tom lane