Search Postgresql Archives

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

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [Postgresql Jobs]     [Postgresql Admin]     [Postgresql Performance]     [Linux Clusters]     [PHP Home]     [PHP on Windows]     [Kernel Newbies]     [PHP Classes]     [PHP Databases]     [Postgresql & PHP]     [Yosemite]

  Powered by Linux