Extend join-selectivity API (oprjoin interface) so that join type is
Tom Lane <tgl@sss.pgh.pa.us>
Extend join-selectivity API (oprjoin interface) so that join type is passed to join selectivity estimators. Make use of this in eqjoinsel to derive non-bogus selectivity for IN clauses. Further tweaking of cost estimation for IN. initdb forced because of pg_proc.h changes.
Files
| Path | Change | +/− |
|---|---|---|
| doc/src/sgml/indexcost.sgml | modified | +3 −2 |
| src/backend/catalog/pg_operator.c | modified | +4 −3 |
| src/backend/optimizer/path/clausesel.c | modified | +25 −13 |
| src/backend/optimizer/path/costsize.c | modified | +73 −52 |
| src/backend/optimizer/path/indxpath.c | modified | +6 −2 |
| src/backend/optimizer/plan/subselect.c | modified | +2 −2 |
| src/backend/optimizer/util/plancat.c | modified | +7 −6 |
| src/backend/utils/adt/selfuncs.c | modified | +57 −18 |
| src/include/catalog/catversion.h | modified | +2 −2 |
| src/include/catalog/pg_proc.h | modified | +16 −16 |
| src/include/optimizer/cost.h | modified | +10 −7 |
| src/include/optimizer/plancat.h | modified | +4 −3 |
| src/include/utils/selfuncs.h | modified | +2 −2 |
| src/test/regress/expected/opr_sanity.out | modified | +4 −3 |
| src/test/regress/expected/subselect.out | modified | +2 −2 |
| src/test/regress/sql/opr_sanity.sql | modified | +4 −3 |