以添加sysdate关键字为例说明:
1、src\backend\parser\gram.y文件的%token <keyword>段添加SYSDATE关键字,建议按照ASCII顺序添加2、src\backend\parser\gram.y文件的函数语义分析段添加如下内容:(可以添加到CURRENT_TIMESTAMP的下面)----------------------------------------------------------------------| SYSDATE{ /** Translate as "now()", since we have a function that* does exactly what is needed.*/FuncCall *n = makeNode(FuncCall);n->funcname = SystemFuncName("now");n->args = NIL;n->agg_order = NIL;n->agg_star = FALSE;n->agg_distinct = FALSE;n->func_variadic = FALSE;n->over = NULL;n->location = @1;$$ = (Node *)n;}----------------------------------------------------------------------注:SystemFuncName函数的参数是定义在pg_catalog schema下的函数。这里的“now”,就是pg_catalog.now()也就是以下SQL文中调用的函数。select now();select pg_catalog.now();这里可以指定为自定义的函数,该函数只要在执行函数sysdate时存在即可。编译服务器时,函数可以不存在。3、src\backend\parser\gram.y文件的reserved_keyword段,添加如下SYSDATE,如----------------------------------------------------------------------| SYSDATE----------------------------------------------------------------------4、src\include\parser\kwlist.h文件中增加如下语句(※):----------------------------------------------------------------------PG_KEYWORD("sysdate", SYSDATE, RESERVED_KEYWORD)----------------------------------------------------------------------※:添加时,位置是按照ASCII顺序排列的。