Re: Best way to scan on-disk bitmaps

From: Teodor Sigaev <teodor(at)sigaev(dot)ru>
To: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
Cc: Greg Stark <gsstark(at)mit(dot)edu>, Bruce Momjian <pgman(at)candle(dot)pha(dot)pa(dot)us>, "Victor Y(dot) Yegorov" <viy(at)mits(dot)lv>, Postgres Hackers <pgsql-hackers(at)postgresql(dot)org>
Subject: Re: Best way to scan on-disk bitmaps
Date: 2005-05-16 13:14:57
Message-ID: 42889CD1.6070001@sigaev.ru
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

About page splitting algorithm in GiST in multikey case. For the beginning, page
is splitted by calling pickSplit method of key of first column (pickSplit method
is defined for opclass and it is a user function), then it try to find equal
values of first column in left and right pages ( gist.c lines 1264-1901 ). If
it is, then GiST core will try to resort tuples with first equal keys between
left and right pages using penalty method for second and higher column's key. If
it's not, it leave pages untouched. But unions for parent page of second and
higher column's keys will be formed.

So, if index is defined as 'using gist (a,b,c)' then, in principle, GiST index
can speed up queries like 'a=V1 and c=V2'. But it will not usable for queries
( b=V3 and c=V2 ). By the way, instead of '=' operation may be used other
operations. Number of supported operations by GiST is indefinite unlike, for
example, btree which supported only five: <, <=, =, =>, >.

--
Teodor Sigaev E-mail: teodor(at)sigaev(dot)ru
WWW: http://www.sigaev.ru/

In response to

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message Tom Lane 2005-05-16 13:53:30 Re: bitmap scans, btree scans, and tid order
Previous Message Hannu Krosing 2005-05-16 13:07:51 Re: Cost of XLogInsert CRC calculations