Re: Is index enough to do simple fetch, or table is always used too? - Mailing list pgsql-general

From Dmitry Koterov
Subject Re: Is index enough to do simple fetch, or table is always used too?
Date
Msg-id d7df81620812141235h49fae33do951748f86195fd37@mail.gmail.com
Whole thread Raw
In response to Re: Is index enough to do simple fetch, or table is always used too?  ("David Rowley" <dgrowley@gmail.com>)
Responses Re: Is index enough to do simple fetch, or table is always used too?  ("David Rowley" <dgrowley@gmail.com>)
List pgsql-general

On Sun, Dec 14, 2008 at 3:36 PM, David Rowley <dgrowley@gmail.com> wrote:
2008/12/14 Dmitry Koterov <dmitry@koterov.ru>:
> The question: if the table "tbl" scanned to fetch "id" and calculate
> md5(id), or the value of "id" is brought directly from "idx" index with no
> table data access at all? The second behaviour is logical: why should we
> access the table if all the needed data is already in the index entry...

In fact not all the required information is in the index. Postgresql
uses Multi-version-concurrency-control, which means there may be multi
versions of the same row. Postgresql must hit the heap (table) no get
the visibility information.

But isn't an index data is also multi-version?
If no, how could a single-versioned index be used to fetch the data from a past snapshot?

pgsql-general by date:

Previous
From: Raymond O'Donnell
Date:
Subject: Re: application readable error message
Next
From: "David Rowley"
Date:
Subject: Re: Is index enough to do simple fetch, or table is always used too?