51.4. PostgreSQL 规则系统

PostgreSQL 支持功能强大的* rule 系统来指定 views 和模糊的 view updates *。最初,PostgreSQL 规则系统由两个实现组成:

  • 第一个使用行级处理工作,并在* executor *中深入实现。每当访问单个行时,就会调用规则系统。在 1995 年,伯克利 Postgres 项目的最后一个正式版本转换为 Postgres95 后,该实现被删除。

  • 规则系统的第二种实现是称为查询重写的技术。 * rewrite system 是一个模块,位于 parser stage planner/optimizer *之间。该技术仍在实施。

Chapter 41中对查询重写器进行了详细讨论,因此在此无需赘述。我们只会指出重写器的 Importing 和输出都是查询树,也就是说,树中语义细节的表示或级别没有变化。可以将重写视为宏扩展的一种形式。