X-Original-To: pgsql-sql-postgresql.org@postgresql.org Received: from localhost (mx1.hub.org [200.46.208.251]) by postgresql.org (Postfix) with ESMTP id 6EF6D9FB24A for ; Tue, 19 Sep 2006 17:36:31 -0300 (ADT) Received: from postgresql.org ([200.46.204.71]) by localhost (mx1.hub.org [200.46.208.251]) (amavisd-new, port 10024) with ESMTP id 30154-04-2 for ; Tue, 19 Sep 2006 17:36:22 -0300 (ADT) X-Greylist: domain auto-whitelisted by SQLgrey- Received: from web37907.mail.mud.yahoo.com (web37907.mail.mud.yahoo.com [209.191.91.169]) by postgresql.org (Postfix) with SMTP id 3F7049FB273 for ; Tue, 19 Sep 2006 17:36:23 -0300 (ADT) Received: (qmail 25612 invoked by uid 60001); 19 Sep 2006 20:36:21 -0000 DomainKey-Signature: a=rsa-sha1; q=dns; c=nofws; s=s1024; d=yahoo.com; h=Message-ID:Received:Date:From:Reply-To:Subject:To:Cc:In-Reply-To:MIME-Version:Content-Type; b=ewTzyHe72ysk95IVrbpDXxwiwZu0fvtSivtZZR2rh/2rX7seS/5QExexIZ3j5cs2Gt3hl+Opc51YtJ9+Wyp4kdS5WVfafYK3VO/rmsvtiu6wnDrzX8yLXKeH03Z7BikuZ5BkYLNBl+NqkqU1i3vwY4gu9XEETr8n1V1Pm/YI0kw= ; Message-ID: <20060919203621.25610.qmail@web37907.mail.mud.yahoo.com> Received: from [216.173.173.66] by web37907.mail.mud.yahoo.com via HTTP; Tue, 19 Sep 2006 13:36:21 PDT Date: Tue, 19 Sep 2006 13:36:21 -0700 (PDT) From: CG Reply-To: CG Subject: Re: Nested loops are killing throughput To: Tom Lane Cc: pgsql-sql@postgresql.org In-Reply-To: <15725.1158693309@sss.pgh.pa.us> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii X-Virus-Scanned: Maia Mailguard 1.0.1 X-Spam-Status: No, hits=3.355 tagged_above=0 required=5 tests=DNS_FROM_RFC_ABUSE, DNS_FROM_RFC_POST, DNS_FROM_RFC_WHOIS X-Spam-Level: *** X-Archive-Number: 200609/135 X-Sequence-Number: 26346 >Is that the one off gborg? It's broken because the equality function is >marked volatile, and so the planner is afraid to try to use it for >merging or hashing. (It's also not marked strict, which means you can >trivially crash the backend by passing it a null ...) It is the one from gborg. That's good to know. So to fix, I should alter the supporting functions and set the ones that should not be VOLATILE to IMMUTABLE (newid() should be VOLATILE and that's about it) and set them to STRICT as well. I haven't had a problem with it crashing my backend in the three years we've been using it, but I'd rather not take any chances. I know the hacker list has been batting back and forth the idea of a built-in UUID type. I'll be interested to see if you end up with a standard UUID type, a fixed field type with multiple generators for differing levels of paranoia, or the status quo. CG