AlexeyDsov/onphp-framework — pull request #1 by AlexeyDsov (2011-11-13 14:31:05+00:00)
Title: Вложенный транзакции и savepoint'ы

Issue, что бы видеть полный diff изменений и ссылаться на него.

Задачи:
* Исследовать возможность в различных базах использовать savepoint'ы
* Реализовать на savepoint'ах, там где они работают, возможность делать вложенные транзакции

Документация по savepoint'ам:

http://www.postgresql.org/docs/8.4/static/sql-savepoint.html
http://dev.mysql.com/doc/refman/5.0/en/savepoint.html
http://www.sqlite.org/lang_savepoint.html

Исследовано:
* При генерации mysql базы данных нужно каким-то образом генерить innodb базу, а не myisam как это происходит сейчас - иначе транзакции в mysql вообще ни в каком виде не поддерживаются.
* Текущая версия sqlite используемая в onPHP не понимает savepoint'ы. Видимо нужно сделать для этого отдельный адаптер

Что надо сделать:
* Возможно вынести как-то работу с транзакциями в отдельный класс, что бы упростить код класса DB
* DB надо добавить свойства - поддерживает она транзакции или нет
* DB надо добавить свойства - поддерживает она savepoint'ы или нет
* Должна быть настройка для DB - поддерживать или механизм вложенных транзакций на savepoint'ах

Что сейчас сделано:
* Модифицирован класс DB для работы в savepoint'ами и вложенными транзакциями
* Изменен класс CreateTableQuery **hack**'ом что бы при генерации mysql баз создавал их на движке innodb вместо дефолтного
* Написаны тесты для тестирвания работы вложенных транзакций и просто транзакций.