上一页 1 ··· 88 89 90 91 92 93 94 95 96 ··· 104 下一页
摘要: 继续翻译1.2 Problems and Bugs ===================== If you have problems with GNU `make' or think you've found a bug, please report it to the developers; we cannot promise to do anything but we might well want to fix it. Before reporting a bug, make sure you've actually found a... 阅读全文
posted @ 2012-09-12 13:37 健哥的数据花园 阅读(252) 评论(0) 推荐(0) 编辑
摘要: 继续翻译1.1 How to Read This Manual =========================== If you are new to `make', or are looking for a general introduction, read the first few sections of each chapter, skipping the later sections. In each chapter, the first few sections contain introductory or general infor... 阅读全文
posted @ 2012-09-12 13:29 健哥的数据花园 阅读(336) 评论(0) 推荐(0) 编辑
摘要: 继续翻译Preparing and Running Make ========================== To prepare to use `make', you must write a file called the makefile that describes the relationships among files in your program and provides commands for updating each file. In a program, typically, the executable file... 阅读全文
posted @ 2012-09-12 13:16 健哥的数据花园 阅读(338) 评论(0) 推荐(0) 编辑
摘要: 当分析PostgreSQL 的源代码的时候,经常遇到 Makefile,读不懂其中的语句,很是令人烦恼。最近准备静下心来,好好地阅读。为了达到这一目的,进行一次翻译。1 Overview of `make' ******************** The `make' utility automatically determines which pieces of a large program need to be recompiled, and issues commands to recompile them. This manual describes... 阅读全文
posted @ 2012-09-12 13:05 健哥的数据花园 阅读(761) 评论(0) 推荐(0) 编辑
摘要: 在gram.c 中,有一行:#define yyparse base_yyparse看gram.y 中,与此对应的是: %name-prefix="base_yy"而看 bison 的 manual:http://www.gnu.org/software/bison/manual/html_node/Parser-Function.html4.1 The Parser FunctionyyparseYou call the functionyyparseto cause parsing to occur. This function reads tokens, execut 阅读全文
posted @ 2012-09-12 09:24 健哥的数据花园 阅读(420) 评论(0) 推荐(0) 编辑
摘要: 修改gram.y 的select 部分,看能否找出 target_list中的 各个字段名称:simple_select: SELECT opt_distinct target_list into_clause from_clause where_clause group_clause having_clause window_clause { SelectStmt *n = makeNode(SelectStmt); n-... 阅读全文
posted @ 2012-09-11 16:20 健哥的数据花园 阅读(365) 评论(0) 推荐(0) 编辑
摘要: 进一步分析 ColumnRef:查了一下, 原来 makeColumnRef 就在 gram.y 里面:static Node * makeColumnRef(char *colname, List *indirection, int location, core_yyscan_t yyscanner){ /*... 阅读全文
posted @ 2012-09-11 15:18 健哥的数据花园 阅读(460) 评论(0) 推荐(0) 编辑
摘要: 上文说到 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 ... 阅读全文
posted @ 2012-09-10 16:21 健哥的数据花园 阅读(221) 评论(0) 推荐(0) 编辑
摘要: 根据 <PostgreSQL 数据库内核分析>200和201页的说法,ResTarget 应该指向 ColumnRef 。这是如何实现的呢?target_list: target_el { $$ = list_make1($1); } | target_list ',' target_el { $$ = lappend($1, $3); } ; ... 阅读全文
posted @ 2012-09-10 16:09 健哥的数据花园 阅读(834) 评论(0) 推荐(0) 编辑
摘要: struct ListCellstruct ListCell{ union { void *ptr_value; int int_value; Oid oid_value; } data; ListCell *next;}由于在 target_list 相关部分,其 ptr_value 指向 ResTargettypedef struct ResTarget{ NodeTag type; char *name; List *indi... 阅读全文
posted @ 2012-09-10 15:23 健哥的数据花园 阅读(336) 评论(0) 推荐(0) 编辑
上一页 1 ··· 88 89 90 91 92 93 94 95 96 ··· 104 下一页