On Sun, Jul 26, 2015 at 6:37 PM, Fabien COELHO <coe...@cri.ensmp.fr> wrote: > > Hello Heikki, > >>> As soon as we add more functions, the way they are documented needs to be >>> reworked too; we'll need to add a table in the manual to list them. >> >> >> Here is a v8 with "abs", "min", "max", "random", "gaussian" et >> "exponential". >> >> [...] >> >> There is no real doc, WIP... > > > Here is a v9 with a doc. The implicit typing of expressions is improved. > > I also added two debug functions which allow to show intermediate integer > (idebug) or double (ddebug). > > \set i idebug(random(1, 10)) > > will print the random value and assign it to i. > > > I updated the defaut scripts, which seems to speed up meta command > evaluations. The initial version does less than 2 million evals per second: > > sh> cat before.sql > \set naccounts 100000 * :scale > \setrandom aid 1 :naccounts > > sh> ./pgbench -T 3 -P 1 -f before.sql > [...] > tps = 1899004.793098 (excluding connections establishing) > > > The updated version does more than 3 million evals per second: > > sh> cat after.sql > \set aid random(1, 100000 * :scale) > > sh> ./pgbench -T 3 -P 1 -f after.sql > [...] > tps = 3143168.813690 (excluding connections establishing) > > > Suggestion: > > A possibility would be to remove altogether the \setrandom stuff as the > functionality is available through \set, maybe with an error message to > advise about using \set with one of the random functions. That would remove > about 200 ugly locs... > > Another option would be to translate the setrandom stuff into a \set > expression, that would maybe save 100 locs for the eval, but keep and expand > a little the "manual" parser part.
I have moved this patch to the next CF. -- Michael -- Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-hackers