Re: Assertion failure with LEFT JOINs among >500 relations
От | Tom Lane |
---|---|
Тема | Re: Assertion failure with LEFT JOINs among >500 relations |
Дата | |
Msg-id | 2664789.1602201555@sss.pgh.pa.us обсуждение исходный текст |
Ответ на | Re: Assertion failure with LEFT JOINs among >500 relations (David Rowley <dgrowleyml@gmail.com>) |
Ответы |
Re: Assertion failure with LEFT JOINs among >500 relations
|
Список | pgsql-hackers |
David Rowley <dgrowleyml@gmail.com> writes: > I admit it's annoying to add cycles to clamp_row_est() for such insane cases. I poked at this a bit more closely, and noted that the actual problem is that when we do this: outer_skip_rows = rint(outer_path_rows * outerstartsel); we have outer_path_rows = inf, outerstartsel = 0, and of course inf times zero is NaN. So we end up asserting "NaN <= Inf", not "Inf <= Inf" (which wouldn't have caused a problem). If we did want to do something here, I'd consider something like if (isnan(outer_skip_rows)) outer_skip_rows = 0; if (isnan(inner_skip_rows)) inner_skip_rows = 0; (We shouldn't need that for outer_rows/inner_rows, since the endsel values can't be 0.) Messing with clamp_row_est would be a much more indirect way of fixing it, as well as having more widespread effects. In the end though, I'm still not terribly excited about this. regards, tom lane
В списке pgsql-hackers по дате отправления: