this might clear up the problem.
here is an example making clear what happens:
select phone_number from phonebook where name = 'xy';
index is asked to find the right place in the heap to retrieve the data.
this is what happens during an index scan.
i suggest to step tnrough this process with a debugger to see what is going on.
hans
On Feb 17, 2008, at 5:13 PM, Suresh wrote:
Hans-Juergen Schoenig <postgres@cybertec.at> wrote:
On Feb 17, 2008, at 4:33 PM, Suresh wrote:
[ "include/access/relscan.h" ]
In IndexScanDescData, whats the purpose of having two Relation variables.
typedef struct IndexScanDescData
{
Relation heapRelation; /* heap relation descriptor, or NULL */
Relation indexRelation; /* index relation descriptor */
....
...
}IndexScanDescData;
The index does not contain the entire tuple. If you index column A the index will not contain values in column B of the same table.
Thus, if you find a record in the index one of the things which have to be done is to get the record from disk to check visibility and other columns.
Yes thats correct. But I still dont get it. To get record from the disk on match, we need Relation data. But whats the purpose having two seperate Relation variables ?
Does it mean that heaprelation will contain only info about that particular column of the table and index relation will have info about the whole tuple of the relation ?
best regards,
hans-juergen schoenig
--
Cybertec Schönig & Schönig GmbH
PostgreSQL Solutions and Support
Gröhrmühlgasse 26, 2700 Wiener Neustadt
Tel: +43/1/205 10 35 / 340
Never miss a thing. Make Yahoo your homepage.
--
Cybertec Schönig & Schönig GmbH
PostgreSQL Solutions and Support
Gröhrmühlgasse 26, 2700 Wiener Neustadt
Tel: +43/1/205 10 35 / 340