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.
|
Список | 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 по дате отправления: