From ab8984f52d9b99234d23e6fb7b73cf4c12b3ac14 Mon Sep 17 00:00:00 2001 From: Thomas Munro Date: Thu, 15 Nov 2018 17:10:43 +1300 Subject: [PATCH] Further adjustment to random() seed initialization. Per complaint from Tom Lane, don't chomp the timestamp at 32 bits, so we can shift in some of its higher bits. Discussion: https://postgr.es/m/14712.1542253115%40sss.pgh.pa.us --- src/backend/postmaster/postmaster.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/backend/postmaster/postmaster.c b/src/backend/postmaster/postmaster.c index 981a058522..cb49f3255f 100644 --- a/src/backend/postmaster/postmaster.c +++ b/src/backend/postmaster/postmaster.c @@ -2532,9 +2532,9 @@ InitProcessGlobals(void) * in a given time period. Since that would leave only 20 bits of the * timestamp that cycle every ~1 second, also mix in some higher bits. */ - srandom(((unsigned int) MyProcPid) ^ - ((unsigned int) MyStartTimestamp << 12) ^ - ((unsigned int) MyStartTimestamp >> 20)); + srandom(((uint64) MyProcPid) ^ + ((uint64) MyStartTimestamp << 12) ^ + ((uint64) MyStartTimestamp >> 20)); }