| From: | Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us> |
|---|---|
| To: | Richard Guo <guofenglinux(at)gmail(dot)com> |
| Cc: | PostgreSQL-development <pgsql-hackers(at)postgresql(dot)org> |
| Subject: | Re: MemoizePath fails to work for partitionwise join |
| Date: | 2022-12-05 17:42:57 |
| Message-ID: | 3321672.1670262177@sss.pgh.pa.us |
| Views: | Whole Thread | Raw Message | Download mbox | Resend email |
| Thread: | |
| Lists: | pgsql-hackers |
Richard Guo <guofenglinux(at)gmail(dot)com> writes:
> The fix is straightforward, just to use outerrel->top_parent if it is
> not null and leave the reparameterization work to try_nestloop_path. In
> addition, I believe when reparameterizing MemoizePath we need to adjust
> its param_exprs too.
Right you are. I'd noticed the apparent omission in
reparameterize_path_by_child, but figured that we'd need a test case to
find any other holes before it'd be worth fixing. Thanks for finding
a usable test case.
One small problem is that top_parent doesn't exist in the back branches,
so I had to substitute a much uglier lookup in order to make this work
there. I'm surprised that we got away without top_parent for this long
TBH, but anyway this fix validates the wisdom of 2f17b5701.
So, pushed with some cosmetic adjustments and the modified back-branch
code.
regards, tom lane
| From | Date | Subject | |
|---|---|---|---|
| Next Message | Tom Lane | 2022-12-05 17:44:47 | Re: Error-safe user functions |
| Previous Message | Alvaro Herrera | 2022-12-05 17:42:31 | Re: Error-safe user functions |