定义在src/backend/parser/parser_expr.c文件中的函数用于分析和转换表达式,包含类型检查和类型转换的工作。该函数将原始语法输出转换为具有完全确
原创 2023-02-13 09:28:55
189阅读
上文说到 ColumnRef由于 a_expr 回溯到 c_expr。其对应的 makeColumnRef 需要构建 ColumnRef 型Node, 看看 parsenodes.h:00203 typedef struct ColumnRef00204 {00205 NodeTag type;00206 List *fields; /* field names (Value strings) or A_Star */00207 int location; /* token location, or -1 ...
转载 2012-09-10 16:21:00
60阅读
2评论
进一步分析 ColumnRef:查了一下, 原来 makeColumnRef 就在 gram.y 里面:static Node * makeColumnRef(char *colname, List *indirection, int location, core_yyscan_t yyscanner){ /*...
转载 2012-09-11 15:18:00
152阅读
2评论
根据 <PostgreSQL 数据库内核分析>200和201页的说法,ResTarget 应该指向 ColumnRef 。这是如何实现的呢?target_list: target_el { $$ = list_make1($1); } | target_list ',' target_el { $$ = lappend($1, $3); } ; ...
转载 2012-09-10 16:09:00
89阅读
2评论