pgsql: Fix cardinality estimates for parallel joins.
Robert Haas <rhaas@postgresql.org>
From: Robert Haas <rhaas@postgresql.org>
To: pgsql-committers@postgresql.org
Date: 2017-01-13T18:37:58Z
Lists: pgsql-hackers
Fix cardinality estimates for parallel joins. For a partial path, the cardinality estimate needs to reflect the number of rows we think each worker will see, rather than the total number of rows; otherwise, costing will go wrong. The previous coding got this completely wrong for parallel joins. Unfortunately, this change may destabilize plans for users of 9.6 who have enabled parallel query, but since 9.6 is still fairly new I'm hoping expectations won't be too settled yet. Also, this is really a brown-paper-bag bug, so leaving it unfixed for the entire lifetime of 9.6 seems unwise. Related reports (whose import I initially failed to recognize) by Tomas Vondra and Tom Lane. Discussion: http://postgr.es/m/CA+TgmoaDxZ5z5Kw_oCQoymNxNoVaTCXzPaODcOuao=CzK8dMZw@mail.gmail.com Branch ------ REL9_6_STABLE Details ------- http://git.postgresql.org/pg/commitdiff/2d443ae1b0121e15265864d2b2143509fa70e8e4 Modified Files -------------- src/backend/optimizer/path/costsize.c | 74 +++++++++++++++++++++++------------ 1 file changed, 48 insertions(+), 26 deletions(-)
Commits
-
Fix failure to use clamp_row_est() for parallel joins.
- 5feb78ae885c 9.6.3 landed
- 1ea60ad602f9 10.0 landed
-
Fix cardinality estimates for parallel joins.
- 2d443ae1b012 9.6.2 cited