X-Original-To: pgsql-sql-postgresql.org@localhost.postgresql.org Received: from localhost (unknown [200.46.204.2]) by svr1.postgresql.org (Postfix) with ESMTP id D6FE9D1D82E for ; Fri, 13 Feb 2004 16:08:52 +0000 (GMT) Received: from svr1.postgresql.org ([200.46.204.71]) by localhost (neptune.hub.org [200.46.204.2]) (amavisd-new, port 10024) with ESMTP id 30231-09 for ; Fri, 13 Feb 2004 12:08:52 -0400 (AST) Received: from megazone.bigpanda.com (megazone.bigpanda.com [64.147.171.210]) by svr1.postgresql.org (Postfix) with ESMTP id 1D9E6D1D3A4 for ; Fri, 13 Feb 2004 12:08:40 -0400 (AST) Received: by megazone.bigpanda.com (Postfix, from userid 1001) id 36612353EF; Fri, 13 Feb 2004 08:08:41 -0800 (PST) Received: from localhost (localhost [127.0.0.1]) by megazone.bigpanda.com (Postfix) with ESMTP id 34C39353E7; Fri, 13 Feb 2004 08:08:41 -0800 (PST) Date: Fri, 13 Feb 2004 08:08:41 -0800 (PST) From: Stephan Szabo To: Tom Lane Cc: Rod Taylor , ow , pgsql-sql@postgresql.org Subject: Re: 7.4 - FK constraint performance In-Reply-To: <2662.1076687804@sss.pgh.pa.us> Message-ID: <20040213080628.E21355@megazone.bigpanda.com> References: <20040213010341.95282.qmail@web60801.mail.yahoo.com> <25808.1076634636@sss.pgh.pa.us> <1076640825.10896.12.camel@jester> <27443.1076646336@sss.pgh.pa.us> <20040213065530.M19832@megazone.bigpanda.com> <2455.1076686047@sss.pgh.pa.us> <20040213073852.K20792@megazone.bigpanda.com> <2662.1076687804@sss.pgh.pa.us> MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII X-Virus-Scanned: by amavisd-new at postgresql.org X-Archive-Number: 200402/152 X-Sequence-Number: 16843 On Fri, 13 Feb 2004, Tom Lane wrote: > Stephan Szabo writes: > > On Fri, 13 Feb 2004, Tom Lane wrote: > >> I was looking at that last night. It seems like we could add a LIMIT at > >> least in some contexts. In the case at hand, we're just going to error > >> out immediately if we find a matching row, and so there's no need for > >> FOR UPDATE, is there? > > > I think there still is, because a not yet committed transaction could have > > deleted them all in which case I think the correct behavior is to wait and > > if that transaction commits allow the action and if it rolls back to > > error. > > Good point. Okay, we can't put in a LIMIT. But we could still hack the > planner to prefer a fast-start plan by passing an out-of-band tuple > fraction, for those RI plans where it's appropriate. That would not > affect correctness. Right, I can try to look through the stuff you pointed at in the previous message over the weekend. > >> However, I'm not sure it would help the OP anyway. With the stats he > >> had, the planner would still take a seqscan, because it's going to > >> expect that it can find a match by probing the first ten or so rows of > >> the first page. With anything close to the normal cost parameters, > >> that's going to look more expensive than an index probe. > > s/more expensive/less expensive/ ... need more caffeine obviously ... Me too apparently, since I knew what you were saying and agreed despite the wording.