Re: failed to build any 5-way joins - Mailing list pgsql-sql

From Alessandro Depase
Subject Re: failed to build any 5-way joins
Date
Msg-id 003701c3c4b7$6952a8f0$0200a8c0@dedalus1
Whole thread Raw
In response to failed to build any 5-way joins  ("Alessandro Depase" <alessandro.depase@libero.it>)
List pgsql-sql
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" <tgl@sss.pgh.pa.us>
To: "Alessandro Depase" <alessandro.depase@libero.it>
Cc: <pgsql-sql@postgresql.org>
Sent: Wednesday, December 17, 2003 4:32 PM
Subject: Re: [SQL] failed to build any 5-way joins


> "Alessandro Depase" <alessandro.depase@libero.it> 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
>
>



pgsql-sql by date:

Previous
From: Tom Lane
Date:
Subject: Re: failed to build any 5-way joins
Next
From: mohan@physics.gmu.edu
Date:
Subject: migration between databases and versions