当前位置:Gxlcms > 数据库问题 > 如何为 PostgreSQL 增加系统表字段

如何为 PostgreSQL 增加系统表字段

时间:2021-07-01 10:21:17 帮助过:2人阅读

perl 语言的系统;

3、在 dattablespace 下增加新定义:

int8			datdummy;	/* dummy column */

  后边字段序号的定义也是很重要的,必须按顺序修改,也要记得属性数相应修改:

#define Natts_pg_database				14
...
#define Anum_pg_database_dattablespace	12
#define Anum_pg_database_datdummy	13
#define Anum_pg_database_datacl			14

预定义的数据库必须也要修改,_null_ 前边增加 100的字段为 datdummy 数据:

DATA(insert OID = 1 (  template1 PGUID ENCODING "LC_COLLATE" "LC_CTYPE" t t -1 0 0 1 1663 100 _null_));

4、编译运行,会发生什么,编译正常,然后 initdb,竟然也神奇的通过了,难道这就好了吗?

    Tip:Linux 下不停在一个目录下改代码,可能会遇到莫名的程序问题,试试 make clean

5、那么创建一个数据库试试看:CREATE DATABASE quanzl; 成功了,是不是感觉似乎还缺点什么?

    datdummy的赋值,总不能 UPDATE pg_database SET datdummy = xxx 吧?

    预订义的数据库比如template1,我们可以在catalog里边定义 BKI 脚本,比如上边的例子,给它一个初始值。程序里也必须有所改动才能成为可操作属性;

6、参照语法修改,创建一个 CREATE DATABASE xxx DUMMY nnn语法,修改结构体 CreatedbStmt 增加新属性,语法分析阶段将此值读入,创建数据库时将它写入属性;

new_record[Anum_pg_database_datdummy - 1] = 1234;

此部分代码在 src/backend/commands/dbcommands.c 中,自行阅读好了,写程序就这么简单。:)


如何为 PostgreSQL 增加系统表字段

标签:

人气教程排行