Re: Index not used with IS NULL
От | Andrei Ivanov |
---|---|
Тема | Re: Index not used with IS NULL |
Дата | |
Msg-id | Pine.LNX.4.50L0.0302171235590.2435-100000@webdev.ines.ro обсуждение исходный текст |
Ответ на | Re: Index not used with IS NULL (Tom Lane <tgl@sss.pgh.pa.us>) |
Список | pgsql-general |
Hello, sorry for barging in... I use a similar structure for keeping some some text pages categorized. CREATE TABLE pages ( id SERIAL NOT NULL PRIMARY KEY, categ INTEGER, CONSTRAINT categ_fk FOREIGN KEY(categ) REFERENCES categs(id) ON DELETE CASCADE ); All the pages that are not contained in a category are marked by categ IS NULL ( this is like the files in / in a filesystem). If I use other values than NULL for marking this kind of pages, then the constraint would complain, but then I can't use an index to find these pages. Do you have a better solution for this ? Thanks. On Mon, 17 Feb 2003, Tom Lane wrote: > Dima Tkach <dmitry@openratings.com> writes: > > For example, how would I get the list of the "top-level" (no parent) > > nodes given your suggestion? > > select * from trees where parent=id > > Exactly. > > > is hardly a good idea, because it just has to be a seq. scan, right? > > Make a partial index if you need it to be fast. > > regression=# create table trees (id int, parent int); > CREATE TABLE > regression=# explain select * from trees where parent=id; > QUERY PLAN > ------------------------------------------------------ > Seq Scan on trees (cost=0.00..22.50 rows=5 width=8) > Filter: (parent = id) > (2 rows) > > regression=# create index foo on trees(id) where parent=id; > CREATE INDEX > regression=# explain select * from trees where parent=id; > QUERY PLAN > ------------------------------------------------------------------ > Index Scan using foo on trees (cost=0.00..17.07 rows=5 width=8) > Filter: (parent = id) > (2 rows) > > > > I may be missing something of course, but so far, this looks to me like > > a very useful feature, that would be very easy to implement too... > > Criticism in the form of patches is more useful than unsubstantiated > opinions that something is easy. > > regards, tom lane
В списке pgsql-general по дате отправления: