From 6c1ecb88fcd482b1fe0c805bd888f140967164d4 Mon Sep 17 00:00:00 2001 From: Richard Guo Date: Thu, 3 Aug 2023 10:18:53 +0800 Subject: [PATCH v1] Fix bogus Asserts in calc_non_nestloop_required_outer --- src/backend/optimizer/util/pathnode.c | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/src/backend/optimizer/util/pathnode.c b/src/backend/optimizer/util/pathnode.c index f123fcb41e..062928288d 100644 --- a/src/backend/optimizer/util/pathnode.c +++ b/src/backend/optimizer/util/pathnode.c @@ -2391,8 +2391,14 @@ calc_non_nestloop_required_outer(Path *outer_path, Path *inner_path) Relids required_outer; /* neither path can require rels from the other */ - Assert(!bms_overlap(outer_paramrels, inner_path->parent->relids)); - Assert(!bms_overlap(inner_paramrels, outer_path->parent->relids)); + Assert(!bms_overlap(outer_paramrels, + inner_path->parent->top_parent_relids ? + inner_path->parent->top_parent_relids : + inner_path->parent->relids)); + Assert(!bms_overlap(inner_paramrels, + outer_path->parent->top_parent_relids ? + outer_path->parent->top_parent_relids : + outer_path->parent->relids)); /* form the union ... */ required_outer = bms_union(outer_paramrels, inner_paramrels); /* we do not need an explicit test for empty; bms_union gets it right */ -- 2.31.0