Received: from sss.pgh.pa.us (unknown [192.204.191.242]) by postgresql.org (Postfix) with ESMTP id 6EF98475E19 for ; Tue, 9 Jul 2002 09:23:38 -0400 (EDT) Received: from sss2.sss.pgh.pa.us (tgl@localhost [127.0.0.1]) by sss.pgh.pa.us (8.12.5/8.12.5) with ESMTP id g69DN5Al003455; Tue, 9 Jul 2002 09:23:05 -0400 (EDT) To: "Kristian Eide" Cc: pgsql-sql@postgresql.org Subject: Re: Rule WHERE condition problem In-reply-to: <047101c226a7$36fb2da0$6b97f181@speed> References: <047101c226a7$36fb2da0$6b97f181@speed> Comments: In-reply-to "Kristian Eide" message dated "Mon, 08 Jul 2002 19:45:14 +0200" Date: Tue, 09 Jul 2002 09:23:05 -0400 Message-ID: <3454.1026220985@sss.pgh.pa.us> From: Tom Lane X-Archive-Number: 200207/109 X-Sequence-Number: 8488 "Kristian Eide" writes: > ERROR: query rewritten 10 times, may contain cycles > It would seem that my WHERE clause is not checked before the action is run. No, the WHERE clause is essentially transformed into part of the rule query. You can't ever write a rule of the form ON UPDATE TO b DO UPDATE b ... because it *will* be an infinite loop, condition or no condition. Consider using a trigger instead. regards, tom lane