1
0
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:
Oleksandr Byelkin
2024-10-30 09:24:04 +01:00
734 changed files with 10187 additions and 4442 deletions

View File

@@ -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);
}