mirror of
https://github.com/postgres/postgres.git
synced 2025-07-27 12:41:57 +03:00
Collect and use multi-column dependency stats
Follow on patch in the multi-variate statistics patch series.
CREATE STATISTICS s1 WITH (dependencies) ON (a, b) FROM t;
ANALYZE;
will collect dependency stats on (a, b) and then use the measured
dependency in subsequent query planning.
Commit 7b504eb282
added
CREATE STATISTICS with n-distinct coefficients. These are now
specified using the mutually exclusive option WITH (ndistinct).
Author: Tomas Vondra, David Rowley
Reviewed-by: Kyotaro HORIGUCHI, Álvaro Herrera, Dean Rasheed, Robert Haas
and many other comments and contributions
Discussion: https://postgr.es/m/56f40b20-c464-fad2-ff39-06b668fac47c@2ndquadrant.com
This commit is contained in:
@ -591,6 +591,7 @@ postgresGetForeignRelSize(PlannerInfo *root,
|
||||
fpinfo->local_conds,
|
||||
baserel->relid,
|
||||
JOIN_INNER,
|
||||
NULL,
|
||||
NULL);
|
||||
|
||||
cost_qual_eval(&fpinfo->local_conds_cost, fpinfo->local_conds, root);
|
||||
@ -2572,6 +2573,7 @@ estimate_path_cost_size(PlannerInfo *root,
|
||||
local_param_join_conds,
|
||||
foreignrel->relid,
|
||||
JOIN_INNER,
|
||||
NULL,
|
||||
NULL);
|
||||
local_sel *= fpinfo->local_conds_sel;
|
||||
|
||||
@ -4455,6 +4457,7 @@ postgresGetForeignJoinPaths(PlannerInfo *root,
|
||||
fpinfo->local_conds,
|
||||
0,
|
||||
JOIN_INNER,
|
||||
NULL,
|
||||
NULL);
|
||||
cost_qual_eval(&fpinfo->local_conds_cost, fpinfo->local_conds, root);
|
||||
|
||||
@ -4465,7 +4468,7 @@ postgresGetForeignJoinPaths(PlannerInfo *root,
|
||||
if (!fpinfo->use_remote_estimate)
|
||||
fpinfo->joinclause_sel = clauselist_selectivity(root, fpinfo->joinclauses,
|
||||
0, fpinfo->jointype,
|
||||
extra->sjinfo);
|
||||
extra->sjinfo, NULL);
|
||||
|
||||
/* Estimate costs for bare join relation */
|
||||
estimate_path_cost_size(root, joinrel, NIL, NIL, &rows,
|
||||
|
Reference in New Issue
Block a user