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

Reply via email to