1
0
mirror of https://github.com/MariaDB/server.git synced 2025-07-30 16:24:05 +03:00

Merge tag '11.4' into 11.6

MariaDB 11.4.4 release
This commit is contained in:
Oleksandr Byelkin
2024-11-08 07:17:00 +01:00
743 changed files with 10281 additions and 4508 deletions

View File

@ -2915,13 +2915,19 @@ enum class THD_WHERE
DEFAULT_WHERE,
ON_CLAUSE,
WHERE_CLAUSE,
CONVERT_CHARSET_CONST,
SET_LIST,
INSERT_LIST,
VALUES_CLAUSE,
UPDATE_CLAUSE,
RETURNING,
FOR_SYSTEM_TIME,
ORDER_CLAUSE,
HAVING_CLAUSE,
GROUP_STATEMENT,
PROCEDURE_LIST,
CHECK_OPTION,
DO_STATEMENT,
HANDLER_STATEMENT,
USE_WHERE_STRING, // ugh, a compromise for vcol...
};
@ -3055,7 +3061,7 @@ public:
A pointer to the stack frame of handle_one_connection(),
which is called first in the thread for handling a client
*/
char *thread_stack;
void *thread_stack;
/**
Currently selected catalog.
@ -3151,6 +3157,17 @@ public:
/* Needed by MariaDB semi sync replication */
Trans_binlog_info *semisync_info;
#ifndef DBUG_OFF
/*
If Active_tranx is missing an entry for a transaction which is planning to
await an ACK, this ensures that the reason is because semi-sync was turned
off then on in-between the binlogging of the transaction, and before it had
started waiting for the ACK.
*/
ulong expected_semi_sync_offs;
#endif
/* If this is a semisync slave connection. */
bool semi_sync_slave;
/* Several threads may share this thd. Used with parallel repair */
@ -4165,6 +4182,10 @@ public:
void free_connection();
void reset_for_reuse();
void store_globals();
void reset_stack()
{
thread_stack= 0;
}
void reset_globals();
bool trace_started()
{
@ -4791,14 +4812,19 @@ public:
return !stmt_arena->is_conventional();
}
void register_item_tree_change(Item **place)
{
/* TODO: check for OOM condition here */
if (is_item_tree_change_register_required())
nocheck_register_item_tree_change(place, *place, mem_root);
}
void change_item_tree(Item **place, Item *new_value)
{
DBUG_ENTER("THD::change_item_tree");
DBUG_PRINT("enter", ("Register: %p (%p) <- %p",
*place, place, new_value));
/* TODO: check for OOM condition here */
if (is_item_tree_change_register_required())
nocheck_register_item_tree_change(place, *place, mem_root);
register_item_tree_change(place);
*place= new_value;
DBUG_VOID_RETURN;
}
@ -6000,10 +6026,18 @@ public:
lex= backup_lex;
}
bool should_collect_handler_stats() const
bool should_collect_handler_stats()
{
return ((variables.log_slow_verbosity & LOG_SLOW_VERBOSITY_ENGINE) ||
userstat_running || lex->analyze_stmt);
/*
We update handler_stats.active to ensure that we have the same
value across the whole statement.
This function is only called from TABLE::init() so the value will
be the same for the whole statement.
*/
handler_stats.active=
((variables.log_slow_verbosity & LOG_SLOW_VERBOSITY_ENGINE) ||
userstat_running || lex->analyze_stmt);
return handler_stats.active;
}
/* Return true if we should create a note when an unusable key is found */
@ -6761,6 +6795,7 @@ public:
aggregate functions as normal functions.
*/
bool precomputed_group_by;
bool group_concat;
bool force_copy_fields;
/*
If TRUE, create_tmp_field called from create_tmp_table will convert
@ -6779,7 +6814,7 @@ public:
group_length(0), group_null_parts(0),
using_outer_summary_function(0),
schema_table(0), materialized_subquery(0), force_not_null_cols(0),
precomputed_group_by(0),
precomputed_group_by(0), group_concat(0),
force_copy_fields(0), bit_fields_as_long(0), skip_create_table(0)
{
init();
@ -7808,6 +7843,11 @@ public:
DDL statement that may be subject to error filtering.
*/
#define CF_WSREP_MAY_IGNORE_ERRORS (1U << 24)
/**
Basic DML statements that create writeset.
*/
#define CF_WSREP_BASIC_DML (1u << 25)
#endif /* WITH_WSREP */