PostgreSQL支持一个强大的 规则系统用于支持视图说明和模糊不清的视图更新。本来PostgreSQL规则系统由两种实现组成:
第一种利用行级处理工作,并且被实现于执行器深层。当单独一行被访问时规则系统被调用。这种实现在1995年被移除,那时最后一个Berkeley Postgres项目的官方发布被转换为Postgres95。
第二种规则系统的实现是一种称为查询重写的技术。重写系统是一个存在于分析器阶段和规划器/优化器之间的模块。这种技术也被实现了。
更多关于查询重写器的讨论可见第 41 章,因此没有必要在这里涉及这些内容。我们将仅指出重写器的输入和输出都是查询树,即在树的表现形式或语义细节层次上都没有改变。重写可以被看成是某种形式的宏扩展。