Skip to content
Snippets Groups Projects
Commit da232288 authored by Alvaro Herrera's avatar Alvaro Herrera
Browse files

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 2686ee1b.

Reported-by: Atsushi Torikoshi, Ashutosh Bapat
Discussion: https://postgr.es/m/CAFjFpRd03YojT4wyuDcjhCfYuygfWfnt68XGn2CKv=rcjRCtTA@mail.gmail.com
parent 82c1507e
No related branches found
No related tags found
No related merge requests found
...@@ -79,20 +79,21 @@ to break the consistency. ...@@ -79,20 +79,21 @@ to break the consistency.
Clause reduction (planner/optimizer) 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 equality clauses, we compute selectivities of each clause and then use the
degree to combine them using this formula degree to combine them using this formula
P(a=?,b=?) = P(a=?) * (d + (1-d) * P(b=?)) 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 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 Consistency of clauses
... ...
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment