Re: Is this an oversight in reparameterizing Memoize path?

Tom Lane <tgl@sss.pgh.pa.us>

From: Tom Lane <tgl@sss.pgh.pa.us>
To: Richard Guo <guofenglinux@gmail.com>
Cc: PostgreSQL-development <pgsql-hackers@postgresql.org>
Date: 2022-12-02T15:13:30Z
Lists: pgsql-hackers
Richard Guo <guofenglinux@gmail.com> writes:
> When reviewing other patch I noticed there might be an oversight for
> MemoizePath in reparameterize_path.  In reparameterize_path we are
> supposed to increase the path's parameterization to required_outer.
> However, AFAICS for MemoizePath we just re-create the same path thus its
> parameterization does not get increased.

Yeah, that sure looks wrong.  At minimum we should be recursively
fixing the subpath.  (It looks like doing that and re-calling
create_memoize_path might be sufficient.)

According to [1] our code coverage for reparameterize_path is just
awful.  MemoizePath in reparameterize_pathlist_by_child isn't
tested either ...

			regards, tom lane

[1] https://coverage.postgresql.org/src/backend/optimizer/util/pathnode.c.gcov.html



Commits

  1. Fix broken MemoizePath support in reparameterize_path().