Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Firebird, InterBase Новый топик    Ответить
 DDL и DML в одной транзакции  [new]
sysdba22
Member

Откуда:
Сообщений: 106
Вопрос к разработчикам. В ФБ4 остается в силе утверждение

автор
So far the [undocumented] practice was that you cannot mix DDL and DML
inside a single transaction.


?
16 сен 17, 16:45    [20800796]     Ответить | Цитировать Сообщить модератору
 Re: DDL и DML в одной транзакции  [new]
Гаджимурадов Рустам
Member

Откуда:
Сообщений: 57687
Это даже в 1.5 не было правдой, без уточнений.

Posted via ActualForum NNTP Server 1.5

16 сен 17, 16:56    [20800805]     Ответить | Цитировать Сообщить модератору
 Re: DDL и DML в одной транзакции  [new]
Старый плюшевый мишка
Member

Откуда:
Сообщений: 258
Гаджимурадов Рустам
Это даже в 1.5 не было правдой, без уточнений.


Я уже не помню в какой версии, не склонен к повторному наступанию на одни и те же грабли, поэтому запомнил раз и навсегда. Создал новое поле, в той же транзакции его проапдейтил, закоммитил. И апдейт прошёл! Но в другое поле.
16 сен 17, 17:32    [20800828]     Ответить | Цитировать Сообщить модератору
 Re: DDL и DML в одной транзакции  [new]
Гаджимурадов Рустам
Member

Откуда:
Сообщений: 57687
Старый плюшевый мишка> Создал новое поле, в той же транзакции его проапдейтил

Ибо нефиг.

Posted via ActualForum NNTP Server 1.5

16 сен 17, 17:44    [20800841]     Ответить | Цитировать Сообщить модератору
 Re: DDL и DML в одной транзакции  [new]
hvlad
Member

Откуда:
Сообщений: 9313
sysdba22
Вопрос к разработчикам. В ФБ4 остается в силе утверждение

автор
So far the [undocumented] practice was that you cannot mix DDL and DML
inside a single transaction.


?
Да
16 сен 17, 18:06    [20800861]     Ответить | Цитировать Сообщить модератору
 Re: DDL и DML в одной транзакции  [new]
sysdba22
Member

Откуда:
Сообщений: 106
Тогда еще вопрос. Если транзакция одна и последовательность такая:

DDL

CommitRetaining

DML

Это нормально?
21 сен 17, 12:11    [20811735]     Ответить | Цитировать Сообщить модератору
 Re: DDL и DML в одной транзакции  [new]
WildSery
Member

Откуда: да, оттуда.
Сообщений: 12925
sysdba22,

CommitRetaining само по себе ненормально
21 сен 17, 12:25    [20811795]     Ответить | Цитировать Сообщить модератору
 Re: DDL и DML в одной транзакции  [new]
hvlad
Member

Откуда:
Сообщений: 9313
sysdba22
Тогда еще вопрос. Если транзакция одна и последовательность такая:

DDL

CommitRetaining

DML

Это нормально?
Это не так плохо, как вообще без коммита между DDL и DML.
Но - зачем ? На что надеемся ? :)
21 сен 17, 12:37    [20811860]     Ответить | Цитировать Сообщить модератору
 Re: DDL и DML в одной транзакции  [new]
sysdba22
Member

Откуда:
Сообщений: 106
Да просто старый код пытаюсь реорганизовать. Он железобетонный конечно, еще во времена Yaffil написанный.
Там формируется лог SQL которые выполняются в монопольном режиме, с переподключениями к БД. Если кто помнит знаменитый object is in use времен Yaffil. Проблема, что когда сложное решение на БД грузится, могут быть тысячи этих команд и весь процесс занимает прилично времени. Вот и думаю, там где возможно избавиться от переподключений и пособирать DML в группы чтобы на одной транзакции отрабатывать.
21 сен 17, 13:27    [20812076]     Ответить | Цитировать Сообщить модератору
 Re: DDL и DML в одной транзакции  [new]
hvlad
Member

Откуда:
Сообщений: 9313
sysdba22,

это всё понятно. Не понятно - зачем commit retaining ?
21 сен 17, 13:34    [20812105]     Ответить | Цитировать Сообщить модератору
 Re: DDL и DML в одной транзакции  [new]
sysdba22
Member

Откуда:
Сообщений: 106
Особенности старого кода. будет переделываться.
21 сен 17, 14:37    [20812429]     Ответить | Цитировать Сообщить модератору
 Re: DDL и DML в одной транзакции  [new]
kdv
Member

Откуда: iBase.ru
Сообщений: 26707
sysdba22,

собственно, CommitRetaining никак к IB/FB/YA или их версиям не привязан, так что его можно без проблем элиминировать.
Видимо, автор того кода чего-то себе в голове представлял насчет CommitRetaining, что не соответствует действительности. Бывает.
21 сен 17, 16:20    [20812995]     Ответить | Цитировать Сообщить модератору
Все форумы / Firebird, InterBase Ответить