Please find attached an updated version "v13" for this patch.
I have (I hope) significanlty improved the documentation, including not so
helpful mathematical explanation about the actual meaning of the threshold
value. If a native English speaker could check the documentation, it would
be nice!
I have improved the implementation of the exponential distribution so as
to avoid a loop, which allows to lift the minimum threshold value
constraint, and the exponential pgbench summary displays decile and
first/last percent drawing probabilities. However, the same simplification
cannot be applied on the gaussian distribution part which must rely on a
loop, thus needs a minimal threshold for performance. I have also checked
(see the 4 attached scripts) the actual distribution against the computed
probabilities.
I disagree with the suggestion to remove the included gaussian &
exponential tests variants, because (1) it would mean removing the
specific summaries as well, which are essential to help feel how the
feature works; (2) the corresponding code in the source is rather
straightforward; (3) the tests correspond to the schema and data created
with -i, so it makes sense that they are stored in pgbench; (4) in order
for this feature to be used, it is best that it is available directly and
simply from pgbench, and not to be thought for elsewhere.
If this is a commit blocker, then the embedded script will have to be
removed, but I really think that they add a significant value to pgbench
and its "non uniform" features because they make it easy to test.
If Mitsumasa-san aggrees with these proposed changes, I would suggest to
apply this patch.
--
Fabien