[Beginner Question]What's the use of ResTarget?

Поиск
Список
Период
Сортировка
От Wen Yi
Тема [Beginner Question]What's the use of ResTarget?
Дата
Msg-id tencent_0349E3BB34D43DADCE985640CAC52DB9C10A@qq.com
обсуждение исходный текст
Ответы Re: [Beginner Question]What's the use of ResTarget?
Список pgsql-general
Hi community
When I read the Internals document (41.1. The Query Tree),
the introduction of  the 'the result relation' confuse me.

In the document, it says

> This is an index into the range table that identifies the relation where the results of the query go.

And I cheak the corresponding code:

In parsenodes.h (A part)

typedef struct ResTarget
{
    NodeTag        type;
    char       *name;            /* column name or NULL */
    List       *indirection;    /* subscripts, field names, and '*', or NIL */
    Node       *val;            /* the value expression to compute or assign */
    int            location;        /* token location, or -1 if unknown */
} ResTarget;

In gram.y (A part)

insert_column_item:
            ColId opt_indirection
                {
                    $$ = makeNode(ResTarget);

My question is:

I really don't the the use of ResTarget, in my original understand, I guess the use of ResTarget is to store the columns of the result, like:

SELECT row_1, row_2 FROM table;

After the parse, the ResTarget will store the row_1, row_2 in the ResTarget.

But the turth is, it also be used in the another clause, like INSERT, far from what I imagined.
So what's the use of ResTarget?

Can someone give me some advice?
Thanks in advance!

Yours,
Wen Yi

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

Предыдущее
От: "Wen Yi"
Дата:
Сообщение: Re: [Beginner Question] How to print the call link graph?
Следующее
От: David Rowley
Дата:
Сообщение: Re: need explanation about an explain plan