[ sorry, I'd lost track of this thread ] Bruce Momjian <br...@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