|
Функция в pg11.2 не запускается с уровнем изоляции serializable
|
|||
---|---|---|---|
#18+
1. При определении функции (между LANGUAGE 'plpgsql' и COST 100) указал: Код: plsql 1.
(пытался Код: plsql 1.
, но при запуске скрипта создания функции выдаётся ошибка: ERROR: SET TRANSACTION ISOLATION LEVEL must be called before any query, что в принципе логично) 2. В файле /etc/postgresql/11/main/postgresql.conf указал: default_transaction_isolation = 'serializable' 3. PG-сервер перезапустил 4. Внутри функции дописал контрольку Код: plsql 1.
5. Вызываю функцию, она отрабатывается. 6. В колонке t1.textval написано: read committed 7. Занавес... Вопрос - как мне сделать так, чтоб эта треклятая функция вызывалась с уровнем изоляции serializable??? документации рыл, инете искал ... |
|||
:
Нравится:
Не нравится:
|
|||
08.03.2019, 19:44 |
|
Функция в pg11.2 не запускается с уровнем изоляции serializable
|
|||
---|---|---|---|
#18+
Наверное, надо сразу после начала транзакции указать требуемый уровень изоляции, о чем PG при каждом шаге влево-вправо сообщает? Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20.
... |
|||
:
Нравится:
Не нравится:
|
|||
08.03.2019, 19:58 |
|
Функция в pg11.2 не запускается с уровнем изоляции serializable
|
|||
---|---|---|---|
#18+
Alexander A. Sak, У меня возможности изменить вызов нет - он осуществляется из другой системы, прогой на Си напрямую к функции. А зачем тогда строчка в конфигурационном файле? Я в ней указал уровень изоляции по умолчанию - может вы знаете почему pg его игнорирует? ... |
|||
:
Нравится:
Не нравится:
|
|||
08.03.2019, 20:06 |
|
Функция в pg11.2 не запускается с уровнем изоляции serializable
|
|||
---|---|---|---|
#18+
Поставил у себя default_transaction_isolation = 'serializable' Теперь функция без явного указания уровня изоляции стала выдавать serializable . Видать, все-таки не игнорирует. Postgres 10.6 на Ubuntu 18.04 LTS. Возможно, прога на Си явно устанавливает уровень изоляции. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.03.2019, 20:49 |
|
Функция в pg11.2 не запускается с уровнем изоляции serializable
|
|||
---|---|---|---|
#18+
Alexander A. Sak, У меня Debian Stretch и PG11.2. Все проверки я делаю локально из pgcli... Пока писал про пгклю подумал - а вдруг! Проверил: и вправду вдруг - в psql всё нормально, в pgcli - 'read commit' На будущее, мало ли что у кого произойдёт: если есть непонятки с транзакциями - разбираться с ними нужно из штатной psql. Потому что pgcli кладёт болт на настройки транзакций. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.03.2019, 21:17 |
|
|
start [/forum/topic.php?fid=53&fpage=43&tid=1995300]: |
0ms |
get settings: |
9ms |
get forum list: |
15ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
40ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
44ms |
get tp. blocked users: |
2ms |
others: | 279ms |
total: | 412ms |
0 / 0 |