mirror of
https://github.com/MariaDB/server.git
synced 2026-05-07 07:35:32 +02:00
merge from mysql-5.1-innodb to mysql-5.5-innodb.
This commit is contained in:
commit
d96b0e5801
1 changed files with 14 additions and 9 deletions
|
|
@ -2813,15 +2813,6 @@ row_truncate_table_for_mysql(
|
|||
|
||||
trx->table_id = table->id;
|
||||
|
||||
/* Lock all index trees for this table, as we will
|
||||
truncate the table/index and possibly change their metadata.
|
||||
All DML/DDL are blocked by table level lock, with
|
||||
a few exceptions such as queries into information schema
|
||||
about the table, MySQL could try to access index stats
|
||||
for this kind of query, we need to use index locks to
|
||||
sync up */
|
||||
dict_table_x_lock_indexes(table);
|
||||
|
||||
if (table->space && !table->dir_path_of_temp_table) {
|
||||
/* Discard and create the single-table tablespace. */
|
||||
ulint space = table->space;
|
||||
|
|
@ -2834,6 +2825,11 @@ row_truncate_table_for_mysql(
|
|||
|
||||
dict_hdr_get_new_id(NULL, NULL, &space);
|
||||
|
||||
/* Lock all index trees for this table. We must
|
||||
do so after dict_hdr_get_new_id() to preserve
|
||||
the latch order */
|
||||
dict_table_x_lock_indexes(table);
|
||||
|
||||
if (space == ULINT_UNDEFINED
|
||||
|| fil_create_new_single_table_tablespace(
|
||||
space, table->name, FALSE, flags,
|
||||
|
|
@ -2867,6 +2863,15 @@ row_truncate_table_for_mysql(
|
|||
FIL_IBD_FILE_INITIAL_SIZE, &mtr);
|
||||
mtr_commit(&mtr);
|
||||
}
|
||||
} else {
|
||||
/* Lock all index trees for this table, as we will
|
||||
truncate the table/index and possibly change their metadata.
|
||||
All DML/DDL are blocked by table level lock, with
|
||||
a few exceptions such as queries into information schema
|
||||
about the table, MySQL could try to access index stats
|
||||
for this kind of query, we need to use index locks to
|
||||
sync up */
|
||||
dict_table_x_lock_indexes(table);
|
||||
}
|
||||
|
||||
/* scan SYS_INDEXES for all indexes of the table */
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue