23 #include <drizzled/session.h>
24 #include <drizzled/lock.h>
25 #include <drizzled/statement/drop_table.h>
27 #include <drizzled/sql_lex.h>
57 static bool rm_table(Session *session, TableList *tables,
bool if_exists,
bool drop_temporary)
59 bool need_start_waiting=
false;
63 if (not drop_temporary)
65 if (not (need_start_waiting= not session->wait_if_global_read_lock(
false,
true)))
74 bool error= rm_table_part2(session, tables, if_exists, drop_temporary);
76 if (need_start_waiting)
78 session->startWaitingGlobalReadLock();
92 TableList *all_tables= lex().query_tables;
93 assert(first_table == all_tables && first_table != 0);
95 if (not drop_temporary)
97 if (session().inTransaction())
99 my_error(ER_TRANSACTIONAL_DDL_NOT_SUPPORTED, MYF(0));
104 return rm_table(&session(), first_table, drop_if_exists, drop_temporary);