Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_CBC_SHA384:256) (Exim 4.89) (envelope-from ) id 1f2AUw-0002e3-OR for pgsql-committers@arkaria.postgresql.org; Sat, 31 Mar 2018 07:00:22 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.89) (envelope-from ) id 1f2AUv-00066P-4j for pgsql-committers@arkaria.postgresql.org; Sat, 31 Mar 2018 07:00:21 +0000 Received: from magus.postgresql.org ([2a02:c0:301:0:ffff::29]) by malur.postgresql.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_CBC_SHA384:256) (Exim 4.89) (envelope-from ) id 1f2AUu-00065m-Vn for pgsql-committers@lists.postgresql.org; Sat, 31 Mar 2018 07:00:21 +0000 Received: from [77.158.173.139] (helo=cascavel.ensmp.fr) by magus.postgresql.org with esmtp (Exim 4.89) (envelope-from ) id 1f2AUn-0005Ey-BY for pgsql-committers@lists.postgresql.org; Sat, 31 Mar 2018 07:00:19 +0000 Received: from cri.ensmp.fr (161.200.219.88.rev.sfr.net [88.219.200.161]) (authenticated bits=0) by cascavel.ensmp.fr (8.15.2/8.15.2/JMMC-22/Oct/2013) with ESMTPSA id w2V7023L020367 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NO); Sat, 31 Mar 2018 09:00:06 +0200 Date: Sat, 31 Mar 2018 09:00:02 +0200 (CEST) From: Fabien COELHO X-X-Sender: fabien@lancre To: Tom Lane cc: Teodor Sigaev , pgsql-committers@lists.postgresql.org Subject: Re: pgsql: Set random seed for pgbench. In-Reply-To: <32390.1522464534@sss.pgh.pa.us> Message-ID: References: <32390.1522464534@sss.pgh.pa.us> User-Agent: Alpine 2.20 (DEB 67 2015-01-07) MIME-Version: 1.0 Content-Type: multipart/mixed; BOUNDARY="8323329-1455640341-1522479606=:23311" X-Miltered: at cascavel.ensmp.fr with ID 5ABF31F2.000 by Joe's j-chkmail (http : // j-chkmail dot ensmp dot fr)! X-j-chkmail-Auth: USER-ID coelho X-j-chkmail-Enveloppe: 5ABF31F2.000 from 161.200.219.88.rev.sfr.net/161.200.219.88.rev.sfr.net/88.219.200.161/cri.ensmp.fr/ X-Host-Lookup-Failed: Reverse DNS lookup failed for 77.158.173.139 (deferred) List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Precedence: bulk This message is in MIME format. The first part should be readable text, while the remaining parts are likely unreadable without MIME-aware tools. --8323329-1455640341-1522479606=:23311 Content-Type: text/plain; format=flowed; charset=US-ASCII Hello Tom, >> Set random seed for pgbench. > > So this patch has ignored the possibility of not having pg_strong_random. I assumed that pg_strong_random is always available, but may fail with an error if a strong random source is not available, in which case the error message should be enough for the user to figure out that they cannot use the 'rand' value and must rely on 'time' or an integer. The error message can be improved in this case. > That's moving the portability goalposts in a way that I do not find > acceptable for such a marginal feature. What behavior do you think we > should have for platforms without that --- accept the seed=rand option > but then error out, or not recognize the option at all? The first option is currently implemented and documented, and seems fine. > BTW, I also note that the patch is constructing error messages from > sentence fragments, which is verboten per translatability policy. > While that's perhaps not too important as long as we don't have message > translations for pgbench, it still seems like something to fix now not > later. The elements of the structure could be translatable independently: one part says there is an error, the other provides the context in which this error was triggered. This could be made a little clearer by using parentheses for instance. Otherwise to comply with translability policy the function can be made to return a bool and then the caller show the context. In the attached, I improved the error message on 'rand' error and printed the error context outside of the function. Thanks for the review. -- Fabien. --8323329-1455640341-1522479606=:23311 Content-Type: text/plain; name=pgbench-seed-fix-1.patch Content-Transfer-Encoding: BASE64 Content-ID: Content-Description: Content-Disposition: attachment; filename=pgbench-seed-fix-1.patch ZGlmZiAtLWdpdCBhL3NyYy9iaW4vcGdiZW5jaC9wZ2JlbmNoLmMgYi9zcmMv YmluL3BnYmVuY2gvcGdiZW5jaC5jDQppbmRleCA4NTI5ZTdkLi44YWE0NjJi IDEwMDY0NA0KLS0tIGEvc3JjL2Jpbi9wZ2JlbmNoL3BnYmVuY2guYw0KKysr IGIvc3JjL2Jpbi9wZ2JlbmNoL3BnYmVuY2guYw0KQEAgLTQ2NjksOCArNDY2 OSw4IEBAIHByaW50UmVzdWx0cyhUU3RhdGUgKnRocmVhZHMsIFN0YXRzRGF0 YSAqdG90YWwsIGluc3RyX3RpbWUgdG90YWxfdGltZSwNCiB9DQogDQogLyog Y2FsbCBzcmFuZG9tIGJhc2VkIG9uIHNvbWUgc2VlZC4gTlVMTCB0cmlnZ2Vy cyB0aGUgZGVmYXVsdCBiZWhhdmlvci4gKi8NCi1zdGF0aWMgdm9pZA0KLXNl dF9yYW5kb21fc2VlZChjb25zdCBjaGFyICpzZWVkLCBjb25zdCBjaGFyICpv cmlnaW4pDQorc3RhdGljIGJvb2wNCitzZXRfcmFuZG9tX3NlZWQoY29uc3Qg Y2hhciAqc2VlZCkNCiB7DQogCS8qIHNyYW5kb20gZXhwZWN0cyBhbiB1bnNp Z25lZCBpbnQgKi8NCiAJdW5zaWduZWQgaW50IGlzZWVkOw0KQEAgLTQ2ODcs OCArNDY4NywxMCBAQCBzZXRfcmFuZG9tX3NlZWQoY29uc3QgY2hhciAqc2Vl ZCwgY29uc3QgY2hhciAqb3JpZ2luKQ0KIAkJLyogdXNlIHNvbWUgInN0cm9u ZyIgcmFuZG9tIHNvdXJjZSAqLw0KIAkJaWYgKCFwZ19zdHJvbmdfcmFuZG9t KCZpc2VlZCwgc2l6ZW9mKGlzZWVkKSkpDQogCQl7DQotCQkJZnByaW50Zihz dGRlcnIsICJjYW5ub3Qgc2VlZCByYW5kb20gZnJvbSBhIHN0cm9uZyBzb3Vy Y2VcbiIpOw0KLQkJCWV4aXQoMSk7DQorCQkJZnByaW50ZihzdGRlcnIsDQor CQkJCQkiY2Fubm90IHNlZWQgcmFuZG9tIGZyb20gYSBzdHJvbmcgc291cmNl LCBub25lIGF2YWlsYWJsZTogIg0KKwkJCQkJInVzZSAndGltZScgb3IgYW4g dW5zaWduZWQgaW50ZWdlciB2YWx1ZS5cbiIpOw0KKwkJCXJldHVybiBmYWxz ZTsNCiAJCX0NCiAJfQ0KIAllbHNlDQpAQCAtNDY5OCw5ICs0NzAwLDkgQEAg c2V0X3JhbmRvbV9zZWVkKGNvbnN0IGNoYXIgKnNlZWQsIGNvbnN0IGNoYXIg Km9yaWdpbikNCiAJCWlmIChzc2NhbmYoc2VlZCwgIiV1JWMiLCAmaXNlZWQs ICZnYXJiYWdlKSAhPSAxKQ0KIAkJew0KIAkJCWZwcmludGYoc3RkZXJyLA0K LQkJCQkJImVycm9yIHdoaWxlIHNjYW5uaW5nICclcycgZnJvbSAlcywgZXhw ZWN0aW5nIGFuIHVuc2lnbmVkIGludGVnZXIsICd0aW1lJyBvciAncmFuZCdc biIsDQotCQkJCQlzZWVkLCBvcmlnaW4pOw0KLQkJCWV4aXQoMSk7DQorCQkJ CQkiZXJyb3Igd2hpbGUgc2Nhbm5pbmcgJyVzJywgZXhwZWN0aW5nIGFuIHVu c2lnbmVkIGludGVnZXIsICd0aW1lJyBvciAncmFuZCdcbiIsDQorCQkJCQlz ZWVkKTsNCisJCQlyZXR1cm4gZmFsc2U7DQogCQl9DQogCX0NCiANCkBAIC00 NzA5LDYgKzQ3MTEsNyBAQCBzZXRfcmFuZG9tX3NlZWQoY29uc3QgY2hhciAq c2VlZCwgY29uc3QgY2hhciAqb3JpZ2luKQ0KIAlzcmFuZG9tKGlzZWVkKTsN CiAJLyogbm8gcHJlY2lzaW9uIGxvc3M6IDMyIGJpdCB1bnNpZ25lZCBpbnQg Y2FzdCB0byA2NCBiaXQgaW50ICovDQogCXJhbmRvbV9zZWVkID0gaXNlZWQ7 DQorCXJldHVybiB0cnVlOw0KIH0NCiANCiANCkBAIC00ODIzLDcgKzQ4MjYs MTEgQEAgbWFpbihpbnQgYXJnYywgY2hhciAqKmFyZ3YpDQogCW1lbXNldChz dGF0ZSwgMCwgc2l6ZW9mKENTdGF0ZSkpOw0KIA0KIAkvKiBzZXQgcmFuZG9t IHNlZWQgZWFybHksIGJlY2F1c2UgaXQgbWF5IGJlIHVzZWQgd2hpbGUgcGFy c2luZyBzY3JpcHRzLiAqLw0KLQlzZXRfcmFuZG9tX3NlZWQoZ2V0ZW52KCJQ R0JFTkNIX1JBTkRPTV9TRUVEIiksICJQR0JFTkNIX1JBTkRPTV9TRUVEIGVu dmlyb25tZW50IHZhcmlhYmxlIik7DQorCWlmICghc2V0X3JhbmRvbV9zZWVk KGdldGVudigiUEdCRU5DSF9SQU5ET01fU0VFRCIpKSkNCisJew0KKwkJZnBy aW50ZihzdGRlcnIsICJlcnJvciB3aGlsZSBzZXR0aW5nIHJhbmRvbSBzZWVk IGZyb20gUEdCRU5DSF9SQU5ET01fU0VFRCBlbnZpcm9ubWVudCB2YXJpYWJs ZSIpOw0KKwkJZXhpdCgxKTsNCisJfQ0KIA0KIAl3aGlsZSAoKGMgPSBnZXRv cHRfbG9uZyhhcmdjLCBhcmd2LCAiaUk6aDpudnA6ZHFiOlNOYzpqOkNyczp0 OlQ6VTpsZjpEOkY6TTpQOlI6TDoiLCBsb25nX29wdGlvbnMsICZvcHRpbmRl eCkpICE9IC0xKQ0KIAl7DQpAQCAtNTA5OSw3ICs1MTA2LDExIEBAIG1haW4o aW50IGFyZ2MsIGNoYXIgKiphcmd2KQ0KIAkJCQlicmVhazsNCiAJCQljYXNl IDk6CQkJCS8qIHJhbmRvbS1zZWVkICovDQogCQkJCWJlbmNobWFya2luZ19v cHRpb25fc2V0ID0gdHJ1ZTsNCi0JCQkJc2V0X3JhbmRvbV9zZWVkKG9wdGFy ZywgIi0tcmFuZG9tLXNlZWQgb3B0aW9uIik7DQorCQkJCWlmICghc2V0X3Jh bmRvbV9zZWVkKG9wdGFyZykpDQorCQkJCXsNCisJCQkJCWZwcmludGYoc3Rk ZXJyLCAiZXJyb3Igd2hpbGUgc2V0dGluZyByYW5kb20gc2VlZCBmcm9tIC0t cmFuZG9tLXNlZWQgb3B0aW9uIik7DQorCQkJCQlleGl0KDEpOw0KKwkJCQl9 DQogCQkJCWJyZWFrOw0KIAkJCWRlZmF1bHQ6DQogCQkJCWZwcmludGYoc3Rk ZXJyLCBfKCJUcnkgXCIlcyAtLWhlbHBcIiBmb3IgbW9yZSBpbmZvcm1hdGlv bi5cbiIpLCBwcm9nbmFtZSk7DQpkaWZmIC0tZ2l0IGEvc3JjL2Jpbi9wZ2Jl bmNoL3QvMDAyX3BnYmVuY2hfbm9fc2VydmVyLnBsIGIvc3JjL2Jpbi9wZ2Jl bmNoL3QvMDAyX3BnYmVuY2hfbm9fc2VydmVyLnBsDQppbmRleCA2ODJiYzIy Li44YTNjNGJlIDEwMDY0NA0KLS0tIGEvc3JjL2Jpbi9wZ2JlbmNoL3QvMDAy X3BnYmVuY2hfbm9fc2VydmVyLnBsDQorKysgYi9zcmMvYmluL3BnYmVuY2gv dC8wMDJfcGdiZW5jaF9ub19zZXJ2ZXIucGwNCkBAIC0xMTEsNyArMTExLDgg QEAgbXkgQG9wdGlvbnMgPSAoDQogCQlbcXJ7dW5yZWNvZ25pemVkIGluaXRp YWxpemF0aW9uIHN0ZXB9LA0KIAkJIHFye2FsbG93ZWQgc3RlcHMgYXJlfSBd IF0sDQogCVsgJ2JhZCByYW5kb20gc2VlZCcsICctLXJhbmRvbS1zZWVkPW9u ZScsDQotCQlbcXJ7ZXJyb3Igd2hpbGUgc2Nhbm5pbmcgJ29uZScgZnJvbSAt LXJhbmRvbS1zZWVkIG9wdGlvbiwgZXhwZWN0aW5nIGFuIHVuc2lnbmVkIGlu dGVnZXJ9IF0gXSwNCisJCVtxcntlcnJvciB3aGlsZSBzY2FubmluZyAnb25l JywgZXhwZWN0aW5nIGFuIHVuc2lnbmVkIGludGVnZXJ9LA0KKwkJIHFye2Vy cm9yIHdoaWxlIHNldHRpbmcgcmFuZG9tIHNlZWQgZnJvbSAtLXJhbmRvbS1z ZWVkIG9wdGlvbn0gXSBdLA0KIA0KIAkjIGxvZ2luZyBzdWItb3B0aW9ucw0K IAlbICAgJ3NhbXBsaW5nID0+IGxvZycsICctLXNhbXBsaW5nLXJhdGU9MC4w MScsDQo= --8323329-1455640341-1522479606=:23311--