Kovalenko Dmitry wrote:
Родился вопрос. А в стандарте SQL (99) вроде как прописано понятие точек сохранения (SAVEPOINT).
Так точно.
А прописано ли в нем что делать с точкой B в таком случае? 1. savepoint A; 2. savepoint B; 3. savepoint A; 4. в этой точке у нас savepoint B (по-стандарту) существует или нет?
Стандарт лишь говорит, что должен удалиться старый сейвпойнт А и создаться новый с тем же именем.
в IB savepoint "B" будет изничтожен
Судя по всему, IB неявно выполняет RELEASE SAVEPOINT A (который по стандарту уничтожает все сейвпойнты от А до настоящего времени), в то время как FB выполняет наше расширение: RELEASE SAVEPOINT A ONLY, которое удаляет только данный сейвпойнт. Отсюда и разница.
Я считаю наше поведение правильным. -- Дмитрий Еманов

