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.