mirror of
https://github.com/MariaDB/server.git
synced 2025-08-05 13:16:09 +03:00
Merge branch '11.2' into 11.4
This commit is contained in:
@@ -631,51 +631,47 @@ const char *thd_where(THD *thd)
|
||||
{
|
||||
switch(thd->where) {
|
||||
case THD_WHERE::CHECKING_TRANSFORMED_SUBQUERY:
|
||||
return "checking transformed subquery";
|
||||
break;
|
||||
case THD_WHERE::IN_ALL_ANY_SUBQUERY:
|
||||
return "IN/ALL/ANY subquery";
|
||||
break;
|
||||
return "IN/ALL/ANY";
|
||||
case THD_WHERE::JSON_TABLE_ARGUMENT:
|
||||
return "JSON_TABLE argument";
|
||||
break;
|
||||
case THD_WHERE::DEFAULT_WHERE: // same as FIELD_LIST
|
||||
return "JSON_TABLE";
|
||||
case THD_WHERE::DEFAULT_WHERE:
|
||||
return "SELECT";
|
||||
case THD_WHERE::FIELD_LIST:
|
||||
return "field list";
|
||||
break;
|
||||
case THD_WHERE::PARTITION_FUNCTION:
|
||||
return "partition function";
|
||||
break;
|
||||
return "PARTITION BY";
|
||||
case THD_WHERE::FROM_CLAUSE:
|
||||
return "from clause";
|
||||
break;
|
||||
return "FROM";
|
||||
case THD_WHERE::ON_CLAUSE:
|
||||
return "on clause";
|
||||
break;
|
||||
return "ON";
|
||||
case THD_WHERE::WHERE_CLAUSE:
|
||||
return "where clause";
|
||||
break;
|
||||
case THD_WHERE::CONVERT_CHARSET_CONST:
|
||||
return "convert character set partition constant";
|
||||
break;
|
||||
return "WHERE";
|
||||
case THD_WHERE::SET_LIST:
|
||||
return "SET";
|
||||
case THD_WHERE::INSERT_LIST:
|
||||
return "INSERT INTO";
|
||||
case THD_WHERE::RETURNING:
|
||||
return "RETURNING";
|
||||
case THD_WHERE::UPDATE_CLAUSE:
|
||||
return "UPDATE";
|
||||
case THD_WHERE::VALUES_CLAUSE:
|
||||
return "VALUES";
|
||||
case THD_WHERE::FOR_SYSTEM_TIME:
|
||||
return "FOR SYSTEM_TIME";
|
||||
break;
|
||||
case THD_WHERE::ORDER_CLAUSE:
|
||||
return "order clause";
|
||||
break;
|
||||
return "ORDER BY";
|
||||
case THD_WHERE::HAVING_CLAUSE:
|
||||
return "having clause";
|
||||
break;
|
||||
return "HAVING";
|
||||
case THD_WHERE::GROUP_STATEMENT:
|
||||
return "group statement";
|
||||
break;
|
||||
return "GROUP BY";
|
||||
case THD_WHERE::PROCEDURE_LIST:
|
||||
return "procedure list";
|
||||
break;
|
||||
return "PROCEDURE";
|
||||
case THD_WHERE::CHECK_OPTION:
|
||||
return "check option";
|
||||
break;
|
||||
return "CHECK OPTION";
|
||||
case THD_WHERE::DO_STATEMENT:
|
||||
return "DO";
|
||||
case THD_WHERE::HANDLER_STATEMENT:
|
||||
return "HANDLER ... READ";
|
||||
case THD_WHERE::USE_WHERE_STRING:
|
||||
return thd->where_str;
|
||||
default:
|
||||
@@ -853,6 +849,11 @@ THD::THD(my_thread_id id, bool is_wsrep_applier)
|
||||
query_id= 0;
|
||||
query_name_consts= 0;
|
||||
semisync_info= 0;
|
||||
|
||||
#ifndef DBUG_OFF
|
||||
expected_semi_sync_offs= 0;
|
||||
#endif
|
||||
|
||||
db_charset= global_system_variables.collation_database;
|
||||
bzero((void*) ha_data, sizeof(ha_data));
|
||||
mysys_var=0;
|
||||
@@ -2282,12 +2283,6 @@ void THD::reset_killed()
|
||||
|
||||
void THD::store_globals()
|
||||
{
|
||||
/*
|
||||
Assert that thread_stack is initialized: it's necessary to be able
|
||||
to track stack overrun.
|
||||
*/
|
||||
DBUG_ASSERT(thread_stack);
|
||||
|
||||
set_current_thd(this);
|
||||
/*
|
||||
mysys_var is concurrently readable by a killer thread.
|
||||
@@ -2319,8 +2314,11 @@ void THD::store_globals()
|
||||
os_thread_id= 0;
|
||||
#endif
|
||||
real_id= pthread_self(); // For debugging
|
||||
mysys_var->stack_ends_here= thread_stack + // for consistency, see libevent_thread_proc
|
||||
STACK_DIRECTION * (long)my_thread_stack_size;
|
||||
|
||||
/* Set stack start and stack end */
|
||||
my_get_stack_bounds(&thread_stack, &mysys_var->stack_ends_here,
|
||||
thread_stack, my_thread_stack_size);
|
||||
|
||||
if (net.vio)
|
||||
{
|
||||
net.thd= this;
|
||||
@@ -2332,6 +2330,7 @@ void THD::store_globals()
|
||||
thr_lock_info_init(&lock_info, mysys_var);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
Untie THD from current thread
|
||||
|
||||
@@ -5149,7 +5148,6 @@ TABLE *find_fk_open_table(THD *thd, const char *db, size_t db_len,
|
||||
MYSQL_THD create_thd()
|
||||
{
|
||||
THD *thd= new THD(next_thread_id());
|
||||
thd->thread_stack= (char*) &thd;
|
||||
thd->store_globals();
|
||||
thd->set_command(COM_DAEMON);
|
||||
thd->system_thread= SYSTEM_THREAD_GENERIC;
|
||||
@@ -5229,7 +5227,6 @@ void *thd_attach_thd(MYSQL_THD thd)
|
||||
|
||||
auto save_mysysvar= pthread_getspecific(THR_KEY_mysys);
|
||||
pthread_setspecific(THR_KEY_mysys, thd->mysys_var);
|
||||
thd->thread_stack= (char *) &thd;
|
||||
thd->store_globals();
|
||||
return save_mysysvar;
|
||||
}
|
||||
@@ -5726,6 +5723,10 @@ thd_deadlock_victim_preference(const MYSQL_THD thd1, const MYSQL_THD thd2)
|
||||
return 0;
|
||||
}
|
||||
|
||||
/* Returns whether the thd is slave worker thread */
|
||||
extern "C" bool thd_is_slave(const MYSQL_THD thd) {
|
||||
return thd->rgi_slave;
|
||||
}
|
||||
|
||||
extern "C" int thd_non_transactional_update(const MYSQL_THD thd)
|
||||
{
|
||||
@@ -6116,6 +6117,8 @@ void THD::reset_slow_query_state(Sub_statement_state *backup)
|
||||
}
|
||||
if ((variables.log_slow_verbosity & LOG_SLOW_VERBOSITY_ENGINE))
|
||||
handler_stats.reset();
|
||||
else
|
||||
handler_stats.active= 0;
|
||||
}
|
||||
|
||||
/*
|
||||
@@ -6145,7 +6148,7 @@ void THD::add_slow_query_state(Sub_statement_state *backup)
|
||||
examined_row_count_for_statement+= backup->examined_row_count_for_statement;
|
||||
sent_row_count_for_statement+= backup->sent_row_count_for_statement;
|
||||
}
|
||||
if ((variables.log_slow_verbosity & LOG_SLOW_VERBOSITY_ENGINE))
|
||||
if (handler_stats.active && backup->handler_stats.active)
|
||||
handler_stats.add(&backup->handler_stats);
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user