[COMMITTERS] pgsql: Fix FK-based join selectivity estimation for semi/antijoins.

Поиск
Список
Период
Сортировка
От Tom Lane
Тема [COMMITTERS] pgsql: Fix FK-based join selectivity estimation for semi/antijoins.
Дата
Msg-id E1cILbN-00032i-GD@gemulon.postgresql.org
обсуждение исходный текст
Список pgsql-committers
Fix FK-based join selectivity estimation for semi/antijoins.

This case wasn't thought through sufficiently in commit 100340e2d.
It's true that the FK proves that every outer row has a match in the
inner table, but we forgot that some of the inner rows might be filtered
away by WHERE conditions located within the semijoin's RHS.

If the RHS is just one table, we can reasonably take the semijoin
selectivity as equal to the fraction of the referenced table's rows
that are expected to survive its restriction clauses.

If the RHS is a join, it's not clear how much of the referenced table
might get through the join, so fall back to the same rule we were
already using for other outer-join cases: use the minimum of the
regular per-clause selectivity estimates.  This gives the same result
as if we hadn't considered the FK at all when there's a single FK
column, but it should still help for multi-column FKs, which is the
case that 100340e2d is really meant to help with.

Back-patch to 9.6 where the previous commit came in.

Discussion: https://postgr.es/m/16149.1481835103@sss.pgh.pa.us

Branch
------
master

Details
-------
http://git.postgresql.org/pg/commitdiff/7fa93eec4e0c9c3e801e3c51aa4bae3a38aaa218

Modified Files
--------------
src/backend/optimizer/path/costsize.c | 72 ++++++++++++++++++++++++++---------
1 file changed, 53 insertions(+), 19 deletions(-)


В списке pgsql-committers по дате отправления:

Предыдущее
От: Peter Eisentraut
Дата:
Сообщение: [COMMITTERS] pgsql: doc: Remove some trailing whitespace
Следующее
От: Tom Lane
Дата:
Сообщение: [COMMITTERS] pgsql: In contrib/uuid-ossp,#include headers needed for ntohl() and nt