On Tue, Oct 18, 2022 at 5:37 AM Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us> wrote:
> I came across a couple of places in the planner that are checking
> for nonempty havingQual; but since these bits run after
> const-simplification of the HAVING clause, that produces the wrong
> answer for a constant-true HAVING clause (which'll be folded to
> empty). Correct code is to check root->hasHavingQual instead.
+1. root->hasHavingQual is set before we do any expression
preprocessing. It should be the right one to check with.
Thanks
Richard