首页 > 数据库技术 > 详细

PostgreSQL 保留关键字添加方法之一,不带参数的函数

时间:2014-03-23 10:36:48      阅读:1009      评论:0      收藏:0      [点我收藏+]

以添加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顺序排列的。

PostgreSQL 保留关键字添加方法之一,不带参数的函数,布布扣,bubuko.com

PostgreSQL 保留关键字添加方法之一,不带参数的函数

原文:http://www.cnblogs.com/momowuwen/p/3615321.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!