mirror of
https://github.com/MariaDB/server.git
synced 2025-07-30 16:24:05 +03:00
fix test failures in the runtime tree
This commit is contained in:
@ -317,11 +317,13 @@ Log_to_csv_event_handler::Log_to_csv_event_handler()
|
|||||||
/* logger thread always works with mysql database */
|
/* logger thread always works with mysql database */
|
||||||
general_log_thd->db= my_strdup("mysql", MYF(0));
|
general_log_thd->db= my_strdup("mysql", MYF(0));
|
||||||
general_log_thd->db_length= 5;
|
general_log_thd->db_length= 5;
|
||||||
|
general_log.table= 0;
|
||||||
|
|
||||||
slow_log_thd= new THD;
|
slow_log_thd= new THD;
|
||||||
/* logger thread always works with mysql database */
|
/* logger thread always works with mysql database */
|
||||||
slow_log_thd->db= my_strdup("mysql", MYF(0));;
|
slow_log_thd->db= my_strdup("mysql", MYF(0));;
|
||||||
slow_log_thd->db_length= 5;
|
slow_log_thd->db_length= 5;
|
||||||
|
slow_log.table= 0;
|
||||||
/* no privileged thread exists at the moment */
|
/* no privileged thread exists at the moment */
|
||||||
privileged_thread= 0;
|
privileged_thread= 0;
|
||||||
}
|
}
|
||||||
|
@ -4607,11 +4607,11 @@ bool mysql_create_like_table(THD* thd, TABLE_LIST* table,
|
|||||||
char *src_db;
|
char *src_db;
|
||||||
char *src_table= table_ident->table.str;
|
char *src_table= table_ident->table.str;
|
||||||
int err;
|
int err;
|
||||||
bool res= TRUE;
|
bool res= TRUE, unlock_dst_table= FALSE;
|
||||||
enum legacy_db_type not_used;
|
enum legacy_db_type not_used;
|
||||||
HA_CREATE_INFO *create_info;
|
HA_CREATE_INFO *create_info;
|
||||||
|
|
||||||
TABLE_LIST src_tables_list;
|
TABLE_LIST src_tables_list, dst_tables_list;
|
||||||
DBUG_ENTER("mysql_create_like_table");
|
DBUG_ENTER("mysql_create_like_table");
|
||||||
|
|
||||||
if (!(create_info= copy_create_info(lex_create_info)))
|
if (!(create_info= copy_create_info(lex_create_info)))
|
||||||
@ -4794,17 +4794,29 @@ bool mysql_create_like_table(THD* thd, TABLE_LIST* table,
|
|||||||
char buf[2048];
|
char buf[2048];
|
||||||
String query(buf, sizeof(buf), system_charset_info);
|
String query(buf, sizeof(buf), system_charset_info);
|
||||||
query.length(0); // Have to zero it since constructor doesn't
|
query.length(0); // Have to zero it since constructor doesn't
|
||||||
TABLE *table_ptr;
|
uint counter;
|
||||||
int error;
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
Let's open and lock the table: it will be closed (and
|
Here we open the destination table. This is needed for
|
||||||
unlocked) by close_thread_tables() at the end of the
|
store_create_info() to work. The table will be closed
|
||||||
statement anyway.
|
by close_thread_tables() at the end of the statement.
|
||||||
*/
|
*/
|
||||||
if (!(table_ptr= open_ltable(thd, table, TL_READ_NO_INSERT)))
|
if (open_tables(thd, &table, &counter, 0))
|
||||||
goto err;
|
goto err;
|
||||||
|
|
||||||
|
bzero((gptr)&dst_tables_list, sizeof(dst_tables_list));
|
||||||
|
dst_tables_list.db= table->db;
|
||||||
|
dst_tables_list.table_name= table->table_name;
|
||||||
|
|
||||||
|
/*
|
||||||
|
lock destination table name, to make sure that nobody
|
||||||
|
can drop/alter the table while we execute store_create_info()
|
||||||
|
*/
|
||||||
|
if (lock_and_wait_for_table_name(thd, &dst_tables_list))
|
||||||
|
goto err;
|
||||||
|
else
|
||||||
|
unlock_dst_table= TRUE;
|
||||||
|
|
||||||
int result= store_create_info(thd, table, &query, create_info);
|
int result= store_create_info(thd, table, &query, create_info);
|
||||||
|
|
||||||
DBUG_ASSERT(result == 0); // store_create_info() always return 0
|
DBUG_ASSERT(result == 0); // store_create_info() always return 0
|
||||||
@ -4837,6 +4849,12 @@ table_exists:
|
|||||||
my_error(ER_TABLE_EXISTS_ERROR, MYF(0), table_name);
|
my_error(ER_TABLE_EXISTS_ERROR, MYF(0), table_name);
|
||||||
|
|
||||||
err:
|
err:
|
||||||
|
if (unlock_dst_table)
|
||||||
|
{
|
||||||
|
pthread_mutex_lock(&LOCK_open);
|
||||||
|
unlock_table_name(thd, &dst_tables_list);
|
||||||
|
pthread_mutex_unlock(&LOCK_open);
|
||||||
|
}
|
||||||
DBUG_RETURN(res);
|
DBUG_RETURN(res);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user