↑↓ 选择↵ 打开⌫ 切换范围完整搜索

PG.CENTER 连接 PostgreSQL 文档、百科与生态知识。由 Pigsty 维护。

支持中的版本: 当前版本 (18) / 17 / 16 / 15 / 14
开发中的版本: 19 / 20devel
已结束支持的版本: 13 / 12 / 11 / 10 / 9.6 / 9.5 / 9.4 / 9.3 / 9.2 / 9.1 / 9.0 / 8.4 / 8.3 / 8.2 / 8.1 / 8.0 / 7.4 / 7.3 / 7.2 / 7.1 / 7.0 / 6.5 / 6.4
历史版本。 PostgreSQL 7.0 已结束支持。 请参阅 当前版本手册.

第 67 章 后端接口

后端接口(BKI)文件是这样一些脚本:它们是运行在特殊"引导"模式下的 Postgres 后端的输入,这种模式使后端能够在数据库系统尚不存在的情况下执行数据库功能。因此 BKI 文件可以用于最初创建数据库系统。initdb 正是使用 BKI 文件来完成这件事:创建数据库系统。不过, initdb 的 BKI 文件是内部生成的。它使用 global1.bki.source 和 local1.template1.bki.source 这两个文件来生成它们,这两个文件可以在 Postgres 的"库"目录中找到。它们作为安装 Postgres 的一部分被安装到那里。这些 .source 文件作为 Postgres 构建过程的一部分,由一个名为 genbki 的构建程序构建。 genbki 接收 Postgres 源文件作为输入,这些源文件同时充当 genbki 的输入,用以构建表以及描述这些表的 C 头文件。

相关信息可以在下列文档中找到: initdb、 createdb,以及 SQL 命令 CREATE DATABASE。

67.1. BKI 文件格式

Postgres 后端按下面的描述解释 BKI 文件。如果 global1.bki.source 文件在手边作为示例,这段说明会更容易理解。(如上面所解释的,这个 .source 文件并不完全是一个 BKI 文件,但你还是能猜出得到的 BKI 文件会是什么样子。)

命令由命令名后跟以空格分隔的参数组成。以 "$" 开头的命令参数会被特殊处理。如果前两个字符是 "$$",那么第一个 "$" 被忽略,该参数随后按正常方式处理。如果 "$" 后面跟的是空格,那么它被当作一个 NULL 值。否则,"$" 后面的字符被解释为一个宏的名字,使该参数被替换为该宏的值。如果这个宏未定义,则是一个错误。

宏用

define macro macro_name = macro_value

定义,用

undefine macro macro_name

取消定义,重新定义使用与 define 相同的语法。

下面是通用命令和宏命令的列表。

报告文档问题

阅读 上游文档. 反馈更正前请先核对 当前版本手册.