Re: Assert failure of the cross-check for nullingrels
Richard Guo <guofenglinux@gmail.com>
From: Richard Guo <guofenglinux@gmail.com>
To: Tom Lane <tgl@sss.pgh.pa.us>
Cc: PostgreSQL-development <pgsql-hackers@postgresql.org>
Date: 2023-05-18T06:47:42Z
Lists: pgsql-hackers
On Thu, May 18, 2023 at 3:42 AM Tom Lane <tgl@sss.pgh.pa.us> wrote:
> ... BTW, something I'd considered in an earlier attempt at fixing this
> was to change clause_is_computable_at's API to pass the clause's
> RestrictInfo not just the clause_relids, along the lines of
>
> @@ -541,9 +547,10 @@ extract_actual_join_clauses(List *restrictinfo_list,
> */
> bool
> clause_is_computable_at(PlannerInfo *root,
> - Relids clause_relids,
> + RestrictInfo *rinfo,
> Relids eval_relids)
> {
> + Relids clause_relids = rinfo->clause_relids;
> ListCell *lc;
>
> /* Nothing to do if no outer joins have been performed yet. */
>
> with corresponding simplifications at the call sites. That was with
> a view to examining has_clone/is_clone inside this function. My
> current proposal doesn't require that, but I'm somewhat tempted
> to make this API change anyway for future-proofing purposes.
> Thoughts?
This change looks good to me.
Thanks
Richard
Commits
-
In clause_is_computable_at(), test required_relids for clone clauses.
- b9c755a2f625 16.0 landed
-
Tweak API of new function clause_is_computable_at().
- 8a2523ff3540 16.0 landed