PostgreSQL 支持强大的规则系统,用于定义视图和模糊视图更新。最初,PostgreSQL 规则系统包含两种实现方式。
第一种实现方式采用行级处理,并深入到执行器中。每当访问单个行时,就会调用规则系统。该实现方式在 1995 年被移除,当时 Berkeley Postgres 项目的最后一个官方版本被转换为 Postgres95。
规则系统的第二种实现方式是一种称为查询重写的技术。重写系统是一个存在于解析器阶段和规划器/优化器之间的模块。该技术至今仍在使用。
查询重写器在 第 39 章 中有详细讨论,因此此处不再赘述。我们只指出重写器的输入和输出都是查询树,也就是说,树的表示形式或语义细节级别没有改变。重写可以被视为一种宏展开形式。
如果您在文档中发现任何不正确、与您实际使用该功能不符或需要进一步说明的内容,请使用 此表格 报告文档问题。