Обсуждение: What is an RT index?

Поиск
Список
Период
Сортировка

What is an RT index?

От
"Rada Chirkova"
Дата:
Hi, could you help me? I am reading documentation on RelOptInfo in version
7.3.4 and have come across "RT indexes" in the explanation. Could you tell
me what they are? They are mentioned in file src/include/nodes/relation.h in
version 7.3.4. They seem to be some kind of unique identifiers of relations,
but I have not been able to find a reference to them in PostgreSQL
documentation.

Many thanks,

Rada


Re: What is an RT index?

От
Tom Lane
Дата:
"Rada Chirkova" <chirkova@csc.ncsu.edu> writes:
> Hi, could you help me? I am reading documentation on RelOptInfo in version
> 7.3.4 and have come across "RT indexes" in the explanation. Could you tell
> me what they are?

"rangetable indexes", that is, the integer position numbers of different
relations' entries in the Query's rtable list.

> They seem to be some kind of unique identifiers of relations,

Unique only within the context of a given query.  For example,

    select * from a join b on (a.f1 = b.f2)

will create RTEs (range table entries, struct RangeTblEntry) for
a, b, and their join.  Because the RTEs will be added to the rtable list
in that order, they will have RT indexes 1, 2, 3 respectively in this
query.

There are various places in the optimizer code that use "relid" to mean
the same thing as "RT index".  Outside the optimizer, "relid" more often
means a relation's OID, which is not the same thing at all.

            regards, tom lane