您的位置:首页 > 数据库

对PostgreSQL语法分析中 targetlist 的理解

2012-09-06 15:39 295 查看
在 gram.y 中:

simple_select:
SELECT    opt_distinct    target_list
into_clause     from_clause     where_clause
group_clause     having_clause    window_clause
{
SelectStmt *n = makeNode(SelectStmt);
n->distinctClause = $2;
n->targetList = $3;
n->intoClause = $4;
n->fromClause = $5;
n->whereClause = $6;
n->groupClause = $7;
n->havingClause = $8;
n->windowClause = $9;
$$ = (Node *)n;
}

……


把它修改一下,增加:

simple_select:
SELECT    opt_distinct    target_list
into_clause     from_clause     where_clause
group_clause     having_clause    window_clause
{
SelectStmt *n = makeNode(SelectStmt);
n->distinctClause = $2;
n->targetList = $3;
n->intoClause = $4;
n->fromClause = $5;
n->whereClause = $6;
n->groupClause = $7;
n->havingClause = $8;
n->windowClause = $9;
$$ = (Node *)n;
fprintf(stderr,"length of list: %d\n", n->targetList->length);

}

……


psql 中执行: select id, name from a8;

后台出现: length of list: 2
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: