Received: from localhost (postgresql.org [64.49.215.8]) by postgresql.org (Postfix) with ESMTP id 6D385476121 for ; Fri, 6 Dec 2002 21:26:05 -0500 (EST) Received: from candle.pha.pa.us (momjian.navpoint.com [207.106.42.251]) by postgresql.org (Postfix) with ESMTP id 602E84769B1 for ; Fri, 6 Dec 2002 21:24:48 -0500 (EST) Received: (from pgman@localhost) by candle.pha.pa.us (8.11.6/8.10.1) id gB72OiM06066; Fri, 6 Dec 2002 21:24:44 -0500 (EST) From: Bruce Momjian Message-Id: <200212070224.gB72OiM06066@candle.pha.pa.us> Subject: Re: Rules/Trigges Trade-offs In-Reply-To: <200212061554.07415.josh@agliodbs.com> To: josh@agliodbs.com Date: Fri, 6 Dec 2002 21:24:44 -0500 (EST) Cc: Jean-Luc Lachance , pgsql-sql X-Mailer: ELM [version 2.4ME+ PL99 (25)] MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Content-Type: text/plain; charset=US-ASCII X-Virus-Scanned: by AMaViS new-20020517 X-Archive-Number: 200212/87 X-Sequence-Number: 10675 Josh Berkus wrote: > > Bruce, > > > > 1) Rules can't use indexes to do their processing, so Rules which query > large > > > secondary tables can be a bad idea (maybe this has changed?) > > > > I don't think this is true. Rewrite is before optimizer so it should be > > optimized just the same. > > I was speaking if the Rule has to do a lookup on a 2nd table in the course of > its processing; it used to be that such a lookup could not use indexes > because Rules are pre-optimizer. This could have changed since 7.1, though. As I remember, the RULE is processed just like an ordinary query. I wasn't aware it was looking up anything. > > > 3) There are no AFTER Rules, making, for example, a rule with a table > check on > > > the new data impractical, so you'd want to use Triggers or Constraints > > > > We have changed ordering in 7.3 where I think INSERT rules are _after_ > > the insert. > > How would that work? What if I want to reject the insert? Uh, good question. I can't remember now what we re-ordered in 7.3, but I thought it had to do with rules. -- Bruce Momjian | http://candle.pha.pa.us pgman@candle.pha.pa.us | (610) 359-1001 + If your life is a hard drive, | 13 Roberts Road + Christ can be your backup. | Newtown Square, Pennsylvania 19073