pgsql: Fix portability problem in pgbench.
От | Tom Lane |
---|---|
Тема | pgsql: Fix portability problem in pgbench. |
Дата | |
Msg-id | E1gmhvB-0006Ei-E9@gemulon.postgresql.org обсуждение исходный текст |
Список | pgsql-committers |
Fix portability problem in pgbench. The pgbench regression test supposed that srandom() with a specific value would result in deterministic output from random(), as required by POSIX. It emerges however that OpenBSD is too smart to be constrained by mere standards, so their random() emits nondeterministic output anyway. While a workaround does exist, what seems like a better fix is to stop relying on the platform's srandom()/random() altogether, so that what you get from --random-seed=N is not merely deterministic but platform independent. Hence, use a separate pg_jrand48() random sequence in place of random(). Also adjust the regression test case that's supposed to detect nondeterminism so that it's more likely to detect it; the original choice of random_zipfian parameter tended to produce the same output all the time even if the underlying behavior wasn't deterministic. In passing, improve pgbench's docs about random_zipfian(). Back-patch to v11 where this code was introduced. Fabien Coelho and Tom Lane Discussion: https://postgr.es/m/4615.1547792324@sss.pgh.pa.us Branch ------ REL_11_STABLE Details ------- https://git.postgresql.org/pg/commitdiff/27d6bc68f98e062a4af625fd5044ba7e23a2003f Modified Files -------------- doc/src/sgml/ref/pgbench.sgml | 19 +++++++--- src/bin/pgbench/pgbench.c | 52 +++++++++++++++++++--------- src/bin/pgbench/t/001_pgbench_with_server.pl | 14 ++++---- 3 files changed, 56 insertions(+), 29 deletions(-)
В списке pgsql-committers по дате отправления: