Re: Using random() in update produces same random value for all

Поиск
Список
Период
Сортировка
От Olleg Samoylov
Тема Re: Using random() in update produces same random value for all
Дата
Msg-id 471561516635427@web43o.yandex.ru
обсуждение исходный текст
Ответ на Using random() in update produces same random value for all  (Alex Magnum <magnum11200@gmail.com>)
Ответы Re: Using random() in update produces same random value for all  (Tom Lane <tgl@sss.pgh.pa.us>)
Список pgsql-general
Yep, interesting.  Checked with PostgreSQL 10.1.
=> select *,random() from generate_series(1,10);
  generate_series |      random
-----------------+-------------------
                1 | 0.308531506918371
                2 | 0.126279713585973
                3 | 0.984668150078505
                4 | 0.884970095474273
                5 | 0.692738385871053
                6 | 0.290897831786424
                7 | 0.914066118188202
                8 | 0.031909613404423
                9 | 0.574441066011786
               10 | 0.631192437838763
(10 rows)
=> select *,(select * from random()) from generate_series(1,10);
  generate_series |       random
-----------------+--------------------
                1 | 0.0718352268449962
                2 | 0.0718352268449962
                3 | 0.0718352268449962
                4 | 0.0718352268449962
                5 | 0.0718352268449962
                6 | 0.0718352268449962
                7 | 0.0718352268449962
                8 | 0.0718352268449962
                9 | 0.0718352268449962
               10 | 0.0718352268449962
(10 rows)
=> select *,(select random()) from generate_series(1,10);
  generate_series |      random
-----------------+-------------------
                1 | 0.848611807450652
                2 | 0.848611807450652
                3 | 0.848611807450652
                4 | 0.848611807450652
                5 | 0.848611807450652
                6 | 0.848611807450652
                7 | 0.848611807450652
                8 | 0.848611807450652
                9 | 0.848611807450652
               10 | 0.848611807450652
(10 rows)


Looked like random() is "volatile", but in subselect it works like "stable".


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

Предыдущее
От: Michael Krüger
Дата:
Сообщение: Slow alter sequence with PG10.1
Следующее
От: Tom Lane
Дата:
Сообщение: Re: Using random() in update produces same random value for all