Re: pgsql: doc: add examples of creative use of unique expression indexes - Mailing list pgsql-docs

From Tom Lane
Subject Re: pgsql: doc: add examples of creative use of unique expression indexes
Date
Msg-id 8755.1587414092@sss.pgh.pa.us
Whole thread Raw
In response to Re: pgsql: doc: add examples of creative use of unique expressionindexes  (Bruce Momjian <bruce@momjian.us>)
Responses Re: pgsql: doc: add examples of creative use of unique expressionindexes  (Bruce Momjian <bruce@momjian.us>)
List pgsql-docs
[ 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



pgsql-docs by date:

Previous
From: Alvaro Herrera
Date:
Subject: Re: Documentation issue: Default value of temp_buffers
Next
From: Bruce Momjian
Date:
Subject: Re: pgsql: doc: add examples of creative use of unique expressionindexes