Re: MemoizePath fails to work for partitionwise join

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: Raw Message | Whole Thread | 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

In response to

Responses

Browse pgsql-hackers by date

  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