The Rule System
Chapter 13. The Rule System
- Table of Contents
- 13.1. Introduction
- 13.2. What is a Query Tree?
- 13.3. Views and the Rule System
- 13.3.1. Implementation of Views in PostgreSQL
- 13.3.2. How SELECT Rules Work
- 13.3.3. View Rules in Non-SELECT Statements
- 13.3.4. The Power of Views in PostgreSQL
- 13.3.5. What about updating a view?
- 13.4. Rules on INSERT, UPDATE and DELETE
- 13.4.1. Differences from View Rules
- 13.4.2. How These Rules Work
- 13.4.3. Cooperation with Views
- 13.5. Rules and Permissions
- 13.6. Rules and Command Status
- 13.7. Rules versus Triggers
Author: Written by Jan Wieck. Updates for 7.1 by Tom Lane.
13.1. Introduction
Production rule systems are conceptually simple, but there are many subtle points involved in actually using them. Some of these points and the theoretical foundations of the PostgreSQL rule system can be found in On Rules, Procedures, Caching and Views in Database Systems.
Some other database systems define active database rules. These are usually stored procedures and triggers and are implemented in PostgreSQL as functions and triggers.
The query rewrite rule system (the rule system from now on) is totally different from stored procedures and triggers. It modifies queries to take rules into consideration, and then passes the modified query to the query planner for planning and execution. It is very powerful, and can be used for many things such as query language procedures, views, and versions. The power of this rule system is discussed in A Unified Framework for Version Modeling Using Production Rules in a Database System as well as On Rules, Procedures, Caching and Views in Database Systems.