* Davi Arnaut <Davi.Arnaut@stripped> [09/03/23 21:19]:
> 2746 Davi Arnaut 2009-03-23
> Bug#989: If DROP TABLE while there's an active transaction, wrong binlog order
> WL#4284: Transactional DDL locking
> === modified file 'sql/sql_prepare.cc'
> --- a/sql/sql_prepare.cc 2009-03-18 12:49:07 +0000
> +++ b/sql/sql_prepare.cc 2009-03-23 18:17:10 +0000
> @@ -3147,6 +3147,7 @@ bool Prepared_statement::prepare(const c
> bool error;
> Statement stmt_backup;
> Query_arena *old_stmt_arena;
> + MDL_ticket *mdl_savepoint= NULL;
> DBUG_ENTER("Prepared_statement::prepare");
> /*
> If this is an SQLCOM_PREPARE, we also increase Com_prepare_sql.
> @@ -3205,6 +3206,13 @@ bool Prepared_statement::prepare(const c
> */
> DBUG_ASSERT(thd->change_list.is_empty());
>
> + /*
> + Marker used to release metadata locks acquired while the prepared
> + statement is being checked.
> + */
> + if (thd->in_multi_stmt_transaction())
> + mdl_savepoint= thd->mdl_context.mdl_savepoint();
> +
OK to push.
--