PostgreSQL 为以下内容规范支持强大的规则系统:视图和模糊视图更新。最初,PostgreSQL 规则系统由两种实现方式组成
第一种使用行级处理,并深埋在执行器内部实现。每当访问单行时,都会调用规则系统。1995 年,Berkeley Postgres 项目的最后一个官方版本演变为Postgres95 时,这一实现便被移除。
规则系统的第二种实现是一种称为查询重写的技术。重写系统是存在于解析阶段和规划器/优化器之间的模块。该技术至今仍继续实现。
查询改写器在 第 39 章 中得到了详尽的讨论,因此无需在此讨论。我们只会指出,查询改写器的输入和输出均是查询树,也就是说,树中的表示形式或语义细节层并没有发生变化。可以将改写视为一种宏展开形式。