Re: failed to build any 5-way joins
От | Tom Lane |
---|---|
Тема | Re: failed to build any 5-way joins |
Дата | |
Msg-id | 28102.1071675143@sss.pgh.pa.us обсуждение исходный текст |
Ответ на | failed to build any 5-way joins ("Alessandro Depase" <alessandro.depase@libero.it>) |
Список | pgsql-sql |
"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 по дате отправления: