Re: pgsql: Increase the number of possible random seeds per time period.

Поиск
Список
Период
Сортировка
От Thomas Munro
Тема Re: pgsql: Increase the number of possible random seeds per time period.
Дата
Msg-id CAEepm=1hj-r1Bk_x_jkNnssYeZ+FQi2D_2xjJ-oYwjqtL38Wtw@mail.gmail.com
обсуждение исходный текст
Ответ на Re: pgsql: Increase the number of possible random seeds per time period.  (Tom Lane <tgl@sss.pgh.pa.us>)
Ответы Re: pgsql: Increase the number of possible random seeds per time period.  (Tom Lane <tgl@sss.pgh.pa.us>)
Список pgsql-committers
On Thu, Nov 15, 2018 at 4:38 PM Tom Lane <tgl@sss.pgh.pa.us> wrote:
> Thomas Munro <tmunro@postgresql.org> writes:
> > Increase the number of possible random seeds per time period.
>
> Um, this bit is *not* right:
>
> +           ((unsigned int) MyStartTimestamp >> 20));
>
> You're cutting it down to 32 bits and then right shifting, which
> means you are shifting in a lot of zeroes when you could be shifting
> in something that's not quite as predetermined.  I had in mind to do
> the shifts in uint64 arithmetic and then narrow the final XOR result
> to int (maybe let the compiler do that implicitly).

Will this close the case?

-       srandom(((unsigned int) MyProcPid) ^
-                       ((unsigned int) MyStartTimestamp << 12) ^
-                       ((unsigned int) MyStartTimestamp >> 20));
+       srandom(((uint64) MyProcPid) ^
+                       ((uint64) MyStartTimestamp << 12) ^
+                       ((uint64) MyStartTimestamp >> 20));


--
Thomas Munro
http://www.enterprisedb.com


В списке pgsql-committers по дате отправления:

Предыдущее
От: Tom Lane
Дата:
Сообщение: Re: pgsql: Increase the number of possible random seeds per time period.
Следующее
От: Tom Lane
Дата:
Сообщение: Re: pgsql: Increase the number of possible random seeds per time period.