|
СTE. Разъясните результат запроса.
|
|||
---|---|---|---|
#18+
FB 3.0.0.31898 Запросы Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22.
выдают во всех полях разные значения. Т.е. функция вычисляется при каждом обращении к полю. Так и должно быть? ... |
|||
:
Нравится:
Не нравится:
|
|||
03.07.2015, 14:26 |
|
СTE. Разъясните результат запроса.
|
|||
---|---|---|---|
#18+
Энди Таккер, ну а как? функция всегда должна возвращать одно значение? или как current_timestamp, получать значение при первом обращении в запросе или psql, и при любых повторах выдавать полученное значение? ... |
|||
:
Нравится:
Не нравится:
|
|||
03.07.2015, 14:34 |
|
СTE. Разъясните результат запроса.
|
|||
---|---|---|---|
#18+
Энди Таккер, на 2.5 тоже самое. gen_uuid() не детерминирована. Сделай вот так и будет тебе счастье. Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12.
ну или вот так обверни MAX(gen_uuid()) ... |
|||
:
Нравится:
Не нравится:
|
|||
03.07.2015, 14:38 |
|
СTE. Разъясните результат запроса.
|
|||
---|---|---|---|
#18+
kdvфункция всегда должна возвращать одно значение? Так я к функции вроде бы только один раз обращаюсь. ... |
|||
:
Нравится:
Не нравится:
|
|||
03.07.2015, 14:46 |
|
СTE. Разъясните результат запроса.
|
|||
---|---|---|---|
#18+
Энди ТаккерТак я к функции вроде бы только один раз обращаюсь. ну да, ну да. такая же херня и с UDF. ... |
|||
:
Нравится:
Не нравится:
|
|||
03.07.2015, 14:51 |
|
СTE. Разъясните результат запроса.
|
|||
---|---|---|---|
#18+
Энди Таккер, это тебе так кажется. В данном случае gen_uuid() as UUID в CTE работает как вычисляемый столбец в таблице ... |
|||
:
Нравится:
Не нравится:
|
|||
03.07.2015, 14:52 |
|
СTE. Разъясните результат запроса.
|
|||
---|---|---|---|
#18+
Код: sql 1. 2. 3. 4. 5. 6. 7.
Выдаёт первый раз 4, 3, 2, 1 и при каждом выполнении увеличивает значение G на 4. Код: sql 1. 2. 3. 4. 5. 6. 7. 8.
Выдаёт первый раз 5, 4, 3, 2 Увеличивает значение G на 5. Код: sql 1. 2. 3. 4. 5. 6. 7. 8.
выдаёт: 9, 9, 9, 9 следующий запуск: 18, 18, 18, 18 Каждый раз высчитывается значение функции, которое по смылу должно быть посчитано лишь раз. ... |
|||
:
Нравится:
Не нравится:
|
|||
03.07.2015, 15:02 |
|
СTE. Разъясните результат запроса.
|
|||
---|---|---|---|
#18+
-, поздравляю. вы открыли для себя, как вычисляются функции и значения столбцов в sql. ... |
|||
:
Нравится:
Не нравится:
|
|||
03.07.2015, 15:05 |
|
СTE. Разъясните результат запроса.
|
|||
---|---|---|---|
#18+
И естественное следствие: Код: sql 1. 2.
При G = 0 выдаёт значения "почему-то" в порядке возрастания и "почему-то" начиная с числа 229: 229, 230, 231, ... Неожиданно. ... |
|||
:
Нравится:
Не нравится:
|
|||
03.07.2015, 15:17 |
|
СTE. Разъясните результат запроса.
|
|||
---|---|---|---|
#18+
kdvпоздравляю. вы открыли для себя, как вычисляются функции и значения столбцов в sql. Я просто искренне удивлён что это не баг. ... |
|||
:
Нравится:
Не нравится:
|
|||
03.07.2015, 15:18 |
|
СTE. Разъясните результат запроса.
|
|||
---|---|---|---|
#18+
-, вы еще кэширование для себя откройте. ну там размер пакета tcp, plan sort, select for update, и так далее. Там числа будут другие. Развлекайтесь, в общем. ... |
|||
:
Нравится:
Не нравится:
|
|||
03.07.2015, 15:28 |
|
СTE. Разъясните результат запроса.
|
|||
---|---|---|---|
#18+
кловун снова на арене... Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
03.07.2015, 15:28 |
|
СTE. Разъясните результат запроса.
|
|||
---|---|---|---|
#18+
... |
|||
:
Нравится:
Не нравится:
|
|||
03.07.2015, 15:30 |
|
СTE. Разъясните результат запроса.
|
|||
---|---|---|---|
#18+
... |
|||
:
Нравится:
Не нравится:
|
|||
03.07.2015, 15:30 |
|
СTE. Разъясните результат запроса.
|
|||
---|---|---|---|
#18+
Оказывается если создать вычисляемое поле в таблице и селектнуть его так: Код: sql 1.
, то C тоже будет вычислено по 2 раза на запись, а результат выведен не в том порядке. Это SQL-стандарт сказал что так правильно? ... |
|||
:
Нравится:
Не нравится:
|
|||
03.07.2015, 15:31 |
|
СTE. Разъясните результат запроса.
|
|||
---|---|---|---|
#18+
-, implementation details. ... |
|||
:
Нравится:
Не нравится:
|
|||
03.07.2015, 15:36 |
|
СTE. Разъясните результат запроса.
|
|||
---|---|---|---|
#18+
-, не ищи бага там где его нет ... |
|||
:
Нравится:
Не нравится:
|
|||
03.07.2015, 16:05 |
|
СTE. Разъясните результат запроса.
|
|||
---|---|---|---|
#18+
Ваня Сусанин> я тоже Я сначала было думал, что это ты, прикалываешься. Потом пригляделся - нет, подумал, что Вовчик, гад. Потом ещё пригляделся - нет, это вообще кто-то новый. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
03.07.2015, 16:06 |
|
СTE. Разъясните результат запроса.
|
|||
---|---|---|---|
#18+
Симонов Денис> не ищи бага там где его нет Пусть, пусть ищет. Только пусть ищет в каком-нибудь одном топике, а-то утомил. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
03.07.2015, 16:06 |
|
СTE. Разъясните результат запроса.
|
|||
---|---|---|---|
#18+
Ваня Сусанин-Я просто искренне удивлён что это не баг.я тоже удивлялся , но потом привык ) Дай бог чтобы когда-нибудь это было исправлено. И когда исправивших спросят, почему они это исправили, то чтобы они искренне ответили: "потому что пользователи нам указали что им так не логично, и мы, встав на их место и посмотрев их глазами, увидели что оно на самом деле не логично, и решили исправить". ... |
|||
:
Нравится:
Не нравится:
|
|||
03.07.2015, 16:11 |
|
СTE. Разъясните результат запроса.
|
|||
---|---|---|---|
#18+
-, у тебя какое-то неверное представление о вычисляемых столбцах. Он не материализуется во время выборки. Вычисляемый столбец здесь по сути это ссылка на его выражение не более того. Избежать этого можно только для детерминированных функций. Но существуют они только в Fb3 и только как PSQL функции. Да ещё там детерминированность работает (возможно пока) только если эта функция без параметра. ... |
|||
:
Нравится:
Не нравится:
|
|||
03.07.2015, 16:12 |
|
СTE. Разъясните результат запроса.
|
|||
---|---|---|---|
#18+
Гаджимурадов РустамЯ сначала было думал, что это ты, прикалываешься.гы... делать мне нечего, что ле ? тем более по теме, которую "проходил" несколько лет взад... :-) BTW, 2 Денис : а чего ты не добавил замечания про rand() & gen_uuid() в доку (что они перевычисляются при каждом упоминании, а также выносятся из сортировки) ? Этот вопрос вспыхивает тут (хотя и нечасто), может есть смысл в доку вставить сиё ? ... |
|||
:
Нравится:
Не нравится:
|
|||
03.07.2015, 16:14 |
|
СTE. Разъясните результат запроса.
|
|||
---|---|---|---|
#18+
- НЕ Дай бог чтобы когда-нибудь это было исправлено.Поправел. Нельзя это исправлять, ибо наверняка уже полно прикладного кода, который опирается как раз на такое поведение! ... |
|||
:
Нравится:
Не нравится:
|
|||
03.07.2015, 16:19 |
|
СTE. Разъясните результат запроса.
|
|||
---|---|---|---|
#18+
Ваня Сусанин> гы... делать мне нечего, что ле ? Так ты горазд. Как в прибаутке. Ваня Сусанин> тем более по теме, которую "проходил" несколько лет взад... :-) Я ж не про эту тему. Минус-то уже несколько месяцев мельтешит. Ваня Сусанин> наверняка уже полно прикладного кода, который опирается как раз на такое поведение! Едва ли, на это хрен заложишься и оперешься, потому что все подобные поведения нефиксированы и нерегламентированы* (а большинство даже и недокументированы, IIRC). Разве что на какие-то конкретные частные случаи, но я щас даже с ходу не вспомню на какие именно и как они могут быть полезны. Но что не надо трогать карточный домик - согласен. P.S. * помню, один и тот же запрос "легким мановением руки" сжирал то 2 вызова за итерацию, то 3, то 4. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
03.07.2015, 16:31 |
|
СTE. Разъясните результат запроса.
|
|||
---|---|---|---|
#18+
Симонов Денису тебя какое-то неверное представление о вычисляемых столбцах. Он не материализуется во время выборки.Так kdv же объяснил, что это потому что такая реализация. Т.е. оно так не потому что так типа правильно, а потому что так реализовано. Если бы реализация не вычисляла лишнего, то мы бы получали то что ожидаем. ... |
|||
:
Нравится:
Не нравится:
|
|||
03.07.2015, 16:31 |
|
|
start [/forum/topic.php?fid=40&msg=38999077&tid=1562737]: |
0ms |
get settings: |
8ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
45ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
56ms |
get tp. blocked users: |
1ms |
others: | 13ms |
total: | 157ms |
0 / 0 |