I wrote: > David Rowley <dgrowle...@gmail.com> writes: >> I've ended up leaving the NaN checks in the join costing functions. >> There was no case mentioned in [1] that showed how we hit that >> reported test case, so I'm not really confident enough to know I'm not >> just reintroducing the same problem again by removing that. The path >> row estimate that had the NaN might not have been through >> clamp_row_est(). Many don't.
> Hmm, I will try to find some time tomorrow to reconstruct that. I'm confused now, because the v2 patch does remove those isnan calls? I rechecked the archives, and I agree that there's no data about exactly how we could have gotten a NaN here. My guess though is infinity-times-zero in some earlier relation size estimate. So hopefully the clamp to 1e100 will make that impossible, or if it doesn't then clamp_row_est() should still prevent a NaN from propagating to the next level up. I'm good with the v2 patch. regards, tom lane