Hi,
chances are that when you support multiple engines, all of them will
never support transactional DDL. So for consistency it is probably best
that the server autocommits all DDL transactions. So this can be one
suggestion:
- Let server autocommit the DDL transaction unless the engine commits
itself.
- Have a per-engine option to support transactional DDL (non-default).
- Throw an exception if a DDL statement is issued when you have an open
transaction. (The open transaction will otherwise be committed
un-intentionally).
Roy
Brian Aker wrote:
Hi!
On Dec 8, 2008, at 12:36 PM, Jay Pipes wrote:
I am looking at cleaning up the API so that an engine will be able to
do transactional DDL (assuming it can handle it). This piece of
behavior is going to cause this to become... messy.
Your statement is confusing. *What* will become messy? The
replication code? The handler code? Something else?
If we want to have engines that support transactional DDL, having some
engine silently commit, and others continue with the transaction is messy.
Current behaviour is a known limitation of MySQL, but there is no
reason not to try and fix this. For DDL to be transactional, the .frm
files need to go bye-bye (since these introduce a need for 2 phase
commit). If InnoDB, or PBXT, is used as the data dictionary, then
perhaps it will be possible to wrap DDL transactions in the engine's
transactional behaviour.
Funny that Stewart is fixing this :)
The question is, should we, or should we not, be silently committing if
a piece of DDL is called?
Cheers,
-Brian
--
_______________________________________________________
Brian "Krow" Aker, brian at tangent.org
Seattle, Washington
http://krow.net/ <-- Me
http://tangent.org/ <-- Software
_______________________________________________________
You can't grep a dead tree.
_______________________________________________
Mailing list: https://launchpad.net/~drizzle-discuss
Post to : [email protected]
Unsubscribe : https://launchpad.net/~drizzle-discuss
More help : https://help.launchpad.net/ListHelp
_______________________________________________
Mailing list: https://launchpad.net/~drizzle-discuss
Post to : [email protected]
Unsubscribe : https://launchpad.net/~drizzle-discuss
More help : https://help.launchpad.net/ListHelp