X-Original-To: pgsql-sql-postgresql.org@localhost.postgresql.org Received: from localhost (neptune.hub.org [200.46.204.2]) by svr1.postgresql.org (Postfix) with ESMTP id AC99AD1B531 for ; Wed, 17 Dec 2003 16:04:51 +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 44429-10 for ; Wed, 17 Dec 2003 12:04:20 -0400 (AST) Received: from vsmtp3alice.tin.it (vsmtp3.tin.it [212.216.176.223]) by svr1.postgresql.org (Postfix) with ESMTP id 29BFED1CC78 for ; Wed, 17 Dec 2003 12:04:19 -0400 (AST) Received: from dedalus1 (80.182.50.231) by vsmtp3alice.tin.it (7.0.019) id 3FE031F200005842; Wed, 17 Dec 2003 17:04:10 +0100 Message-ID: <003701c3c4b7$6952a8f0$0200a8c0@dedalus1> From: "Alessandro Depase" To: "Tom Lane" Cc: References: <001e01c3c3ca$4c0c4af0$0200a8c0@dedalus1> <28102.1071675143@sss.pgh.pa.us> Subject: Re: failed to build any 5-way joins Date: Wed, 17 Dec 2003 17:04:11 +0100 MIME-Version: 1.0 Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: 7bit X-Priority: 3 X-MSMail-Priority: Normal X-Mailer: Microsoft Outlook Express 6.00.2800.1158 X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2800.1165 X-Virus-Scanned: by amavisd-new at postgresql.org X-Archive-Number: 200312/124 X-Sequence-Number: 16290 Thanks Tom, but I think I can wait, being possible to use the exists clause and not having, at the moment a big database. When there will be the less-drastic fix you refer to, I will use it and change my query. Thanks again. Bye Alessandro Depase ----- Original Message ----- From: "Tom Lane" To: "Alessandro Depase" Cc: Sent: Wednesday, December 17, 2003 4:32 PM Subject: Re: [SQL] failed to build any 5-way joins > "Alessandro Depase" writes: > > select * > > from info where parent_infoid is null=20 > > and fieldtypeid in (select fieldtypeid from users_auth_groups uag1, field_a= > > uth fa where userid =3D 8 and fa.groupid =3D uag1.groupid)=20 > > and main_infoid in (select ic.infoid from info_category ic, category_auth c= > > a, users_auth_groups uag2=20 > > where ic.categoryid =3D ca.categoryid and uag2.userid =3D 8 and uag2.grou= > > pid =3D ca.groupid and read_write =3D 'W')=20 > > Hmm. It's right, there's no way to construct a sub-plan that joins just > that number of relations, because of the constraint that the IN > sub-selects have to be fully formed before we can do IN processing. > > A brute force solution is to just remove the error cross-check in > src/backend/optimizer/path/joinrels.c: > > if (result_rels == NIL) > elog(ERROR, "failed to build any %d-way joins", level); > > I'll probably install some less-drastic fix for 7.4.1, but if you need a > solution right now, that will get you going. > > regards, tom lane > >