Skip to content

Commit ff68b25

Browse files
committed
Remove troublesome Asserts in cost_mergejoin().
While logically correct, these two Asserts could fail depending on the vagaries of floating-point arithmetic. In particular, on machines with floating-point registers wider than standard "double" values, it was possible for the compiler to compare a rounded-to-double value already stored in memory with an unrounded long double value still in a register. Given the preceding checks, these assertions aren't adding much, so let's just get rid of them rather than try to find a compiler-proof fix. Per report from Pavel Stehule. Given the lack of previous complaints, and the fact that only developers would be likely to trip over it, I'm only going to change this in HEAD, even though the code has been like this for a long time.
1 parent 89e850e commit ff68b25

File tree

1 file changed

+0
-3
lines changed

1 file changed

+0
-3
lines changed

src/backend/optimizer/path/costsize.c

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1933,9 +1933,6 @@ cost_mergejoin(MergePath *path, PlannerInfo *root, SpecialJoinInfo *sjinfo)
19331933
outerendsel = outer_rows / outer_path_rows;
19341934
innerendsel = inner_rows / inner_path_rows;
19351935

1936-
Assert(outerstartsel <= outerendsel);
1937-
Assert(innerstartsel <= innerendsel);
1938-
19391936
/* cost of source data */
19401937

19411938
if (outersortkeys) /* do we need to sort outer? */

0 commit comments

Comments
 (0)
pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy