Extend code that deduces implied equality clauses to detect whether a
Tom Lane <tgl@sss.pgh.pa.us>
Extend code that deduces implied equality clauses to detect whether a clause being added to a particular restriction-clause list is redundant with those already in the list. This avoids useless work at runtime, and (perhaps more importantly) keeps the selectivity estimation routines from generating too-small estimates of numbers of output rows. Also some minor improvements in OPTIMIZER_DEBUG displays.
Files
| Path | Change | +/− |
|---|---|---|
| src/backend/nodes/print.c | modified | +34 −2 |
| src/backend/optimizer/path/allpaths.c | modified | +85 −69 |
| src/backend/optimizer/path/joinrels.c | modified | +5 −1 |
| src/backend/optimizer/path/pathkeys.c | modified | +2 −2 |
| src/backend/optimizer/plan/initsplan.c | modified | +134 −17 |
| src/backend/optimizer/plan/planner.c | modified | +4 −1 |
| src/backend/optimizer/README | modified | +17 −0 |
| src/backend/optimizer/util/relnode.c | modified | +85 −17 |
| src/include/optimizer/paths.h | modified | +7 −1 |