MySQL 8.0.42
Source Code Documentation
dd::upgrade::anonymous_namespace{server.cc} Namespace Reference

Classes

class  MySQL_check
 
class  Server_option_guard
 
class  Sql_fun_error_handler
 

Functions

bool ignore_error_and_execute (THD *thd, const char *query_ptr)
 
static bool upgrade_firewall (THD *thd)
 upgrades Firewall stored procedures More...
 
bool fix_sys_schema (THD *thd)
 
bool fix_mysql_tables (THD *thd)
 
bool upgrade_help_tables (THD *thd)
 
static void create_upgrade_file ()
 
static bool get_shared_tablespace_names (THD *thd, std::set< dd::String_type > *shared_spaces)
 
static bool check_table_funs (THD *thd, std::unique_ptr< Schema > &schema, Upgrade_error_counter *error_count)
 Check table definitions for SQL functions. More...
 
static bool check_tables (THD *thd, std::unique_ptr< Schema > &schema, const std::set< dd::String_type > *shared_spaces, Upgrade_error_counter *error_count)
 
static bool check_events (THD *thd, std::unique_ptr< Schema > &schema, Upgrade_error_counter *error_count)
 
static bool check_routines (THD *thd, std::unique_ptr< Schema > &schema, Upgrade_error_counter *error_count)
 
static bool check_views (THD *thd, std::unique_ptr< Schema > &schema, Upgrade_error_counter *error_count)
 

Variables

static std::vector< uintignored_errors
 

Function Documentation

◆ check_events()

static bool dd::upgrade::anonymous_namespace{server.cc}::check_events ( THD thd,
std::unique_ptr< Schema > &  schema,
Upgrade_error_counter error_count 
)
static

◆ check_routines()

static bool dd::upgrade::anonymous_namespace{server.cc}::check_routines ( THD thd,
std::unique_ptr< Schema > &  schema,
Upgrade_error_counter error_count 
)
static

◆ check_table_funs()

static bool dd::upgrade::anonymous_namespace{server.cc}::check_table_funs ( THD thd,
std::unique_ptr< Schema > &  schema,
Upgrade_error_counter error_count 
)
static

Check table definitions for SQL functions.

Sometimes, improving a SQL function's behaviour or diagnostics may result in an error being thrown in situations where this wasn't the case. If that call is part of a table's definition, the error will be thrown during the opening of the table, which will then fail.

This is something the user will generally want to know before putting an upgraded database into production. Therefore, we inspect all user tables that (potentially) have SQL functions in DEFAULT clauses, PARTITIONing, virtual columns, or indexes. Any such table we try to open. This may take a while, but it is preferable to not being aware of breakage.

Parameters
thdThe THD to use.
schemaThe schema whose tables to examine.
error_countCount of errors (total for all check functions).
Returns
false True if too many errors were detected, false otherwise.

◆ check_tables()

static bool dd::upgrade::anonymous_namespace{server.cc}::check_tables ( THD thd,
std::unique_ptr< Schema > &  schema,
const std::set< dd::String_type > *  shared_spaces,
Upgrade_error_counter error_count 
)
static

◆ check_views()

static bool dd::upgrade::anonymous_namespace{server.cc}::check_views ( THD thd,
std::unique_ptr< Schema > &  schema,
Upgrade_error_counter error_count 
)
static

◆ create_upgrade_file()

static void dd::upgrade::anonymous_namespace{server.cc}::create_upgrade_file ( )
static

◆ fix_mysql_tables()

bool dd::upgrade::anonymous_namespace{server.cc}::fix_mysql_tables ( THD thd)

◆ fix_sys_schema()

bool dd::upgrade::anonymous_namespace{server.cc}::fix_sys_schema ( THD thd)

◆ get_shared_tablespace_names()

static bool dd::upgrade::anonymous_namespace{server.cc}::get_shared_tablespace_names ( THD thd,
std::set< dd::String_type > *  shared_spaces 
)
static

◆ ignore_error_and_execute()

bool dd::upgrade::anonymous_namespace{server.cc}::ignore_error_and_execute ( THD thd,
const char *  query_ptr 
)

◆ upgrade_firewall()

static bool dd::upgrade::anonymous_namespace{server.cc}::upgrade_firewall ( THD thd)
static

upgrades Firewall stored procedures

◆ upgrade_help_tables()

bool dd::upgrade::anonymous_namespace{server.cc}::upgrade_help_tables ( THD thd)

Variable Documentation

◆ ignored_errors

std::vector<uint> dd::upgrade::anonymous_namespace{server.cc}::ignored_errors
static
Initial value:
{
ER_DUP_FIELDNAME, ER_DUP_KEYNAME, ER_BAD_FIELD_ERROR,
ER_COL_COUNT_DOESNT_MATCH_PLEASE_UPDATE_V2, ER_DUP_ENTRY}