Davi, Thanks for the pointers! I'd like to lock an entire database. (I guess I can iterate through the tables in database if that's the only way. [I suppose there might be possible locking issues to deal with ...])
I'll look at the source you recommend ... Weldon wel...@whipple.org On Mon, Oct 18, 2010 at 12:48 PM, Davi Arnaut <davi.arn...@oracle.com> wrote: > On 10/18/10 3:16 PM, Weldon Whipple wrote: >> >> Well, I finished a working prototype that does everything except the >> locking and unlocking of databases. Someone mentioned that it's now >> possible to lock individual tables. Would you--anyone--be willing to >> point me toward places in the 5.5 code that use that >> locking/unlocking? >> > > Do you want to lock the database, or individual tables, or both? Anyway, > take a look at mysql_rm_db as the locking is all very similar. Roughly, the > algorithm of a DROP DATABASE is: > > // Protect against other schema operations > lock_schema_name("db1"); > // Build list of tables in the db1 directory > table_list = .. > // Initialize metadata lock request > table_list->mdl_request.init(MDL_key::TABLE, > table_list->db, > table_list->table_name, MDL_EXCLUSIVE); > // Lock tables > lock_table_names(thd, tables, NULL ...) > // Remove from cache and drop the table... > > The best thing at this point is to study (and debug) a similar statement and > understand how metadata locks work (mdl prefix) or how tables are > open/locked. > > Regards, > > Davi > > -- > MySQL Internals Mailing List > For list archives: http://lists.mysql.com/internals > To unsubscribe: http://lists.mysql.com/internals?unsub=wel...@whipple.org > > _______________________________________________ Mailing list: https://launchpad.net/~maria-discuss Post to : maria-discuss@lists.launchpad.net Unsubscribe : https://launchpad.net/~maria-discuss More help : https://help.launchpad.net/ListHelp