Use a hopefully-more-reliable method of detecting default selectivity
Tom Lane <tgl@sss.pgh.pa.us>
Use a hopefully-more-reliable method of detecting default selectivity estimates when combining the estimates for a range query. As pointed out by Miquel van Smoorenburg, the existing check for an impossible combined result would quite possibly fail to detect one default and one non-default input. It seems better to use the default range query estimate in such cases. To do so, add a check for an estimate of exactly DEFAULT_INEQ_SEL. This is a bit ugly because it introduces additional coupling between clauselist_selectivity and scalarltsel/scalargtsel, but it's not like there wasn't plenty already...
Files
| Path | Change | +/− |
|---|---|---|
| src/backend/optimizer/path/clausesel.c | modified | +45 −30 |
| src/backend/utils/adt/selfuncs.c | modified | +1 −40 |
| src/include/utils/selfuncs.h | modified | +44 −1 |