|
Видимостть версии записи в пределах стейтмента
|
|||
---|---|---|---|
#18+
Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17.
теперь, если выполнить: Код: plsql 1. 2. 3.
- получим старые значения, а не новые. Если же выполнять двумя последовательными запросами (всё, естестественно, в одной транзакции) - то всё ожидаемо. Не бага ли это? ... |
|||
:
Нравится:
Не нравится:
|
|||
17.10.2016, 17:58 |
|
Видимостть версии записи в пределах стейтмента
|
|||
---|---|---|---|
#18+
серый-серый ник, во-первых сообщи версию FB. А во-вторых что за странная привычка менять таблицу в селективной ХП? ... |
|||
:
Нравится:
Не нравится:
|
|||
17.10.2016, 18:03 |
|
Видимостть версии записи в пределах стейтмента
|
|||
---|---|---|---|
#18+
Симонов Денис, Версия FB естестна текущая, 3.0.1. Привычки - дело лично. Как и отношение к ним. ... |
|||
:
Нравится:
Не нравится:
|
|||
17.10.2016, 18:13 |
|
Видимостть версии записи в пределах стейтмента
|
|||
---|---|---|---|
#18+
серый-серый никНе бага ли это? Фича это: стабильность курсора. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
17.10.2016, 18:18 |
|
Видимостть версии записи в пределах стейтмента
|
|||
---|---|---|---|
#18+
Симонов Денис, Обновился до рассвежайшего снепшот-билда 3.0.2.32617-0. На всякий. Всё тоже самое, без изменений. ... |
|||
:
Нравится:
Не нравится:
|
|||
17.10.2016, 18:25 |
|
Видимостть версии записи в пределах стейтмента
|
|||
---|---|---|---|
#18+
Hello, Серый-серый Ник! You wrote on 17 октября 2016 г. 18:25:44: Серый-серый Ник> Обновился до рассвежайшего снепшот-билда 3.0.2.32617-0. На всякий. Всё тоже самое, без изменений. релизные ноты чти. там есть и это. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
17.10.2016, 18:26 |
|
Видимостть версии записи в пределах стейтмента
|
|||
---|---|---|---|
#18+
Dimitry Sibiryakov, Не всё так просто, вот это работает: Код: plsql 1. 2. 3.
... |
|||
:
Нравится:
Не нравится:
|
|||
17.10.2016, 18:27 |
|
Видимостть версии записи в пределах стейтмента
|
|||
---|---|---|---|
#18+
серый-серый ник, Проверь на 2.5. По идее стабильность курсора скорее всего влияет. JOIN c ХП, которая меняет данные не надо делать никогда, ибо это может привести к непредсказуемым результатам, причём в любой версии. Исключением может быть только работа с GTT внутри ХП. ... |
|||
:
Нравится:
Не нравится:
|
|||
17.10.2016, 18:30 |
|
Видимостть версии записи в пределах стейтмента
|
|||
---|---|---|---|
#18+
серый-серый ник, ещё раз повторюсь не делай так никогда. Сейчас left join с помощью nested loop, потом мало ли оптимизатор подточат и он начнёт выполняться с помощью какого-нибудь hash join и весь твой результат накроется медным тазом. Нельзя в SELECT запросах закладываться на последовательность шагов оптимизатора ... |
|||
:
Нравится:
Не нравится:
|
|||
17.10.2016, 18:37 |
|
Видимостть версии записи в пределах стейтмента
|
|||
---|---|---|---|
#18+
Симонов Денис, на 2.5.6 всё работает ожидаемо. То есть работает :) ... |
|||
:
Нравится:
Не нравится:
|
|||
17.10.2016, 18:54 |
|
Видимостть версии записи в пределах стейтмента
|
|||
---|---|---|---|
#18+
серый-серый ник, ну значит со стабильностью курсора связано. серый-серый никна 2.5.6 всё работает ожидаемо. повторю нельзя такие ожидания строить, потому что работа оптимизатора может поменяться. ... |
|||
:
Нравится:
Не нравится:
|
|||
17.10.2016, 19:03 |
|
Видимостть версии записи в пределах стейтмента
|
|||
---|---|---|---|
#18+
серый-серый никНе всё так просто, вот это работает: А вот это - баг. Пиши в трекер. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
17.10.2016, 19:12 |
|
Видимостть версии записи в пределах стейтмента
|
|||
---|---|---|---|
#18+
Dimitry Sibiryakov, у него в ХП suspend есть, который разрывает сейвпойнт. В этом случае стабильность курсора может не работать и это задокументировано. А вот почему так сработало в первом запросе я не понимаю. Если заглянет Влад, тогда может быть и прояснится. ... |
|||
:
Нравится:
Не нравится:
|
|||
17.10.2016, 19:18 |
|
Видимостть версии записи в пределах стейтмента
|
|||
---|---|---|---|
#18+
Симонов Денисещё раз повторюсь не делай так никогда. Сейчас left join с помощью nested loop, потом мало ли оптимизатор подточат и он начнёт выполняться с помощью какого-нибудь hash join и весь твой результат накроется медным тазом. Нельзя в SELECT запросах закладываться на последовательность шагов оптимизатора Это всё понятно, но никуда даже к тому времени не денутся: 1. латентность сети 2. необходимость клиенту после изменения обновлять данные с сервера. Сейчас думать как оно там будет в светлом будущем смысла не вижу. Но надеюсь будет и тогда возможность указать серверу порядок выполнения. Ну а не будет - в execute block придётся заворачивать. ... |
|||
:
Нравится:
Не нравится:
|
|||
17.10.2016, 20:16 |
|
Видимостть версии записи в пределах стейтмента
|
|||
---|---|---|---|
#18+
серый-серый ник, для приведенного примера вполне достаточно UPDATE ... RETURNING ... |
|||
:
Нравится:
Не нравится:
|
|||
17.10.2016, 20:58 |
|
Видимостть версии записи в пределах стейтмента
|
|||
---|---|---|---|
#18+
Симонов Денис, Совершенно верно. Только пример естественно упрощённый, и только для иллюстрации ситуации. Никто бы в здравом уме не стал городить такой огород для запроса типа update. В нашей системе для каждой таблицы создаётся такая проца, которая только и может изменять саму таблицу. Для разграничения прав и уничтожения пользовательских триггеров как класса. Плюсы и минусы такого подхода - не предмет данного топика. Вопрос же в другом - мы уже вляпались в светлое будущее (3.0 и выше), или таки баг и он поправим? ... |
|||
:
Нравится:
Не нравится:
|
|||
17.10.2016, 23:00 |
|
Видимостть версии записи в пределах стейтмента
|
|||
---|---|---|---|
#18+
серый-серый ник, начиная с 3.0 это ожидаемое поведение. Запрос возвращает содержимое таблицы на момент старта оператора. ... |
|||
:
Нравится:
Не нравится:
|
|||
17.10.2016, 23:08 |
|
Видимостть версии записи в пределах стейтмента
|
|||
---|---|---|---|
#18+
Симонов Денис, Ясно. Значит таки вляпались.... Тогда такой вопрос - вариант: Код: plsql 1. 2.
тоже отныне вне закона? ... |
|||
:
Нравится:
Не нравится:
|
|||
17.10.2016, 23:31 |
|
Видимостть версии записи в пределах стейтмента
|
|||
---|---|---|---|
#18+
серый-серый ник, этот вариант ещё более бредовый чем предыдущий. По идее он не должен работать как ты ожидаешь даже в 2.5. ... |
|||
:
Нравится:
Не нравится:
|
|||
17.10.2016, 23:43 |
|
Видимостть версии записи в пределах стейтмента
|
|||
---|---|---|---|
#18+
серый-серый ник, ты конечно можешь найти способ затащить кота в бассейн, но лучше этого не делать. Легальные способы RETURNING в том числе и на VIEW. ХП возвращающая добавленную/изменённую строку или даже набор строк, тоже самое с помощью EXECUTE BLOCK. Пытаться изменить что либо с помомщью побочных эффектов селективных ХП не правильно. ... |
|||
:
Нравится:
Не нравится:
|
|||
17.10.2016, 23:49 |
|
Видимостть версии записи в пределах стейтмента
|
|||
---|---|---|---|
#18+
Симонов Денису него в ХП suspend есть, который разрывает сейвпойнт. В этом случае стабильность курсора может не работать и это задокументированоПохоже на то. Не проверял. Симонов ДенисА вот почему так сработало в первом запросе я не понимаю.Я тоже не понимаю - что ты тут называешь "первым запросом" и что осталось не понятным ? :) ... |
|||
:
Нравится:
Не нравится:
|
|||
18.10.2016, 22:21 |
|
Видимостть версии записи в пределах стейтмента
|
|||
---|---|---|---|
#18+
hvlad, я про 19791795 Здесь получили старые значения. Значит всё отработало как надо, несмотря на наличие suspend ... |
|||
:
Нравится:
Не нравится:
|
|||
18.10.2016, 22:31 |
|
|
start [/forum/topic.php?fid=40&msg=39328489&tid=1561915]: |
0ms |
get settings: |
9ms |
get forum list: |
13ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
49ms |
get topic data: |
12ms |
get forum data: |
2ms |
get page messages: |
62ms |
get tp. blocked users: |
2ms |
others: | 284ms |
total: | 439ms |
0 / 0 |