MySQL 9.3.0
Source Code Documentation
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Modules Pages Concepts
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, bool print_err=true)
 
static bool reinstall_firewall_procedures (THD *thd, const char *drop_query, const char *fw_proc[])
 This function will create the firewall's stored procedures. More...
 
static bool upgrade_firewall_procedures (THD *thd)
 This function will check and create the firewall's stored procedures. More...
 
static bool switch_to_firewall_schema (THD *thd, std::string &fw_schema)
 This function will switch to the schema which is pointed by the mysql-firewall-database variable by executing USE. More...
 
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 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)
 
static void remove_legacy_upgrade_info_file ()
 

Variables

static std::vector< uint > ignored_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

◆ 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,
bool  print_err = true 
)

◆ reinstall_firewall_procedures()

static bool dd::upgrade::anonymous_namespace{server.cc}::reinstall_firewall_procedures ( THD thd,
const char *  drop_query,
const char *  fw_proc[] 
)
static

This function will create the firewall's stored procedures.

Parameters
[in]thdthread context
[in]drop_queryDROP statement to drop procedure
[in]fw_procstored procedure's SQL definition
Return values
falseexecution of query successful
trueexecution of query failed

◆ remove_legacy_upgrade_info_file()

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

◆ switch_to_firewall_schema()

static bool dd::upgrade::anonymous_namespace{server.cc}::switch_to_firewall_schema ( THD thd,
std::string &  fw_schema 
)
static

This function will switch to the schema which is pointed by the mysql-firewall-database variable by executing USE.

Parameters
[in]thdthread context
[out]fw_schemavalue of mysql-firewall-database
Return values
falseexecution of USE successful
trueexecution of USE failed

◆ upgrade_firewall()

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

upgrades Firewall stored procedures

◆ upgrade_firewall_procedures()

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

This function will check and create the firewall's stored procedures.

Parameters
[in]thdthread context
Return values
falseexecution of query successful
trueexecution of query failed

◆ 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}