Re: Which data structures for the index?

From: Vaibhav Kaushal <vaibhavkaushal123(at)gmail(dot)com>
To: pgsql-hackers(at)postgresql(dot)org
Subject: Re: Which data structures for the index?
Date: 2010-11-18 15:56:06
Message-ID: AANLkTi=kAM_CM=jBpM82wADxBhx97=agzJoj1dj+dPRu@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

Thanks once again Mr. Heikki for your help. Got your point!

Thanks :)

-Vaibhav (*_*)

On Thu, Nov 18, 2010 at 7:10 PM, Heikki Linnakangas <
heikki(dot)linnakangas(at)enterprisedb(dot)com> wrote:

> 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
>

In response to

Browse pgsql-hackers by date

  From Date Subject
Next Message Pavel Stehule 2010-11-18 15:57:53 Re: final patch - plpgsql: for-in-array
Previous Message Pavel Stehule 2010-11-18 15:52:09 Re: final patch - plpgsql: for-in-array