diff options
author | Alvaro Herrera | 2017-06-22 21:12:27 +0000 |
---|---|---|
committer | Alvaro Herrera | 2017-06-22 21:12:27 +0000 |
commit | da2322883b9e50b1aac70a3b6eaf2a4f0e486469 (patch) | |
tree | 5f36d2fac877d81f8168ed6bd206de4438de5550 | |
parent | 82c1507e3067d6d7884e823b09c921f9119dbe6f (diff) |
Fix typos in README.dependencies
There was a logic error in a formula, reported by Atsushi Torokoshi.
Ashutosh Bapat furthermore recommended to change notation for a variable
that was re-using a letter from a previous formula, though his proposed
patch contained a small error in attributing what the new letter is for.
Also, instead of his proposed d' I ended up using e, to avoid confusing
the reader with quotes which are used differently in the explaining
prose.
Bugs appeared in commit 2686ee1b7ccfb9214064d4d2a98ea77382880306.
Reported-by: Atsushi Torikoshi, Ashutosh Bapat
Discussion: https://postgr.es/m/CAFjFpRd03YojT4wyuDcjhCfYuygfWfnt68XGn2CKv=rcjRCtTA@mail.gmail.com
-rw-r--r-- | src/backend/statistics/README.dependencies | 11 |
1 files changed, 6 insertions, 5 deletions
diff --git a/src/backend/statistics/README.dependencies b/src/backend/statistics/README.dependencies index 59f9d57657..702d34e3f8 100644 --- a/src/backend/statistics/README.dependencies +++ b/src/backend/statistics/README.dependencies @@ -79,20 +79,21 @@ to break the consistency. Clause reduction (planner/optimizer) ------------------------------------ -Applying the functional dependencies is fairly simple - given a list of +Applying the functional dependencies is fairly simple: given a list of equality clauses, we compute selectivities of each clause and then use the degree to combine them using this formula P(a=?,b=?) = P(a=?) * (d + (1-d) * P(b=?)) -Where 'd' is the degree of functional dependence (a=>b). +Where 'd' is the degree of functional dependency (a => b). With more than two equality clauses, this process happens recursively. For -example for (a,b,c) we first use (a,b=>c) to break the computation into +example for (a,b,c) we first use (a,b => c) to break the computation into - P(a=?,b=?,c=?) = P(a=?,b=?) * (d + (1-d)*P(b=?)) + P(a=?,b=?,c=?) = P(a=?,b=?) * (e + (1-e) * P(c=?)) -and then apply (a=>b) the same way on P(a=?,b=?). +where 'e' is the degree of functional dependency (a,b => c); then we can +apply (a=>b) the same way on P(a=?,b=?). Consistency of clauses |