Re: Which data structures for the index?

Поиск
Список
Период
Сортировка
От Heikki Linnakangas
Тема Re: Which data structures for the index?
Дата
Msg-id 4CE52CCE.40009@enterprisedb.com
обсуждение исходный текст
Ответ на Which data structures for the index?  (Vaibhav Kaushal <vaibhavkaushal123@gmail.com>)
Ответы Re: Which data structures for the index?  (Vaibhav Kaushal <vaibhavkaushal123@gmail.com>)
Список pgsql-hackers
On 18.11.2010 15:19, Vaibhav Kaushal wrote:
> I have a small problem: Suppose that I have a table in PostgreSQL which has
> a integer field as its Primary key and I have used the Hash indexing method
> for creating the index for the field on the table. Now I want to know the
> following details about the index (assuming the machine running PostgreSQL
> is a Linux box with DB installed at /var/lib/pgsql/data):
>
> * Which file would contain the index table data? (OR how to find them? Will
> I find them in the CATALOG tables?)

SELECT relfilenode FROM pg_class WHERE relname='index name'. The index 
data is stored in a file with that name. Something like 
/var/lib/pgsql/data/base/11910/<relfilenode from that query>

> * Is there some documentation available about the source apart from that on
> the website and the the one which gets compiled with the source? (specially
> about the conversions and the steps of conversion of the data from they raw
> disc reads to the structured layout in the memory just before the executor
> is started)

The source and the README files in the source tree are your best help. 
And the comments in the header files are very helpful too.

> * Which file in the source tree is responsible for the scan of the index?
> (The main file in case there are two of them for the btree and hash indexes
> separately)

src/backend/access/nbtree/nbtree.c, btgettuple function
and
src/backend/access/hash/hash.c, hashgettuple function

src/backend/access/index/indexam.c is the common entry point for all 
index types.

> * Which data structures are the most important ones in index scanning? (I
> will search them myself but please someone tell me the structures; there are
> just too many of them :( )

Depends on what you're interested in. IndexScanDesc is common between 
all index scans, Understanding the page structure might also be helpful, 
see src/include/storage/bufpage.h.

> * Are the pages of the DB file layout of the index table in someway
> different than what is discussed at
> http://www.postgresql.org/docs/9.0/interactive/storage-file-layout.html ? If
> yes then what are the differences?

No, that applies to indexes too.

> And I must say that while browsing the source, I was so pleased to read the
> comments (they really helped a lot). Thanks to the PostgreSQL coding
> conventions and of course the contributors. I am a bit clear about the
> working of the executor (thanks to ECLIPSE for support of ctags and a nice
> UI) but I am still much in a mess.
>
> Thanks in advance for the answer ;)

Good luck!

--   Heikki Linnakangas  EnterpriseDB   http://www.enterprisedb.com


В списке pgsql-hackers по дате отправления:

Предыдущее
От: Vaibhav Kaushal
Дата:
Сообщение: Which data structures for the index?
Следующее
От: Pavel Stehule
Дата:
Сообщение: Re: final patch - plpgsql: for-in-array