| From: | David Rowley <dgrowleyml(at)gmail(dot)com> |
|---|---|
| To: | xianliang(dot)ji(at)esgyn(dot)cn |
| Cc: | pgsql-bugs(at)lists(dot)postgresql(dot)org, Wang Xiao-Zhong <xiaozhong(dot)wang(at)esgyn(dot)cn>, Guo Heng <heng(dot)guo(at)esgyn(dot)cn> |
| Subject: | Re: Optimizer failed to generate plan |
| Date: | 2023-02-13 11:40:30 |
| Message-ID: | CAApHDvq=MvEosOWazo45YFTkmuOD0qv1_Tz4dvcgem2aDraaDA@mail.gmail.com |
| Views: | Whole Thread | Raw Message | Download mbox | Resend email |
| Thread: | |
| Lists: | pgsql-bugs |
On Tue, 14 Feb 2023 at 00:18, <xianliang(dot)ji(at)esgyn(dot)cn> wrote:
> postgres=# select a.*,b.* from EMP a FULL JOIN DEPT b on
> a.deptno=b.deptno OR upper(ename)='BLAKE' where a.job='MANAGER' OR
> b.dname='SALES';
> ERROR: FULL JOIN is only supported with merge-joinable or hash-joinable
It's not a bug. The problem is the join condition has OR conditions
and we can do a full Hash or Merge join for joins like that.
I'm a bit unclear on what you need exactly, but maybe you could get it
by repeating the query once for each branch of the OR and then
performing a UNION ALL.
David
| From | Date | Subject | |
|---|---|---|---|
| Next Message | Alexander Lakhin | 2023-02-13 12:00:00 | Re: array_agg(DISTINCT) caused a segmentation fault |
| Previous Message | David Rowley | 2023-02-13 10:41:06 | Re: array_agg(DISTINCT) caused a segmentation fault |