![]()  | 
  
    MySQL 8.0.44
    
   Source Code Documentation 
   | 
 
handlerton is a singleton structure - one instance per storage engine - to provide access to storage engine functionality that works on the "global" level (unlike handler class that works on a per-table basis). More...
#include <handler.h>
handlerton is a singleton structure - one instance per storage engine - to provide access to storage engine functionality that works on the "global" level (unlike handler class that works on a per-table basis).
usually handlerton instance is defined statically in ha_xxx.cc as
static handlerton { ... } xxx_hton;
savepoint_*, prepare, recover, and *_by_xid pointers can be 0.
| acl_notify_t handlerton::acl_notify | 
| alter_tablespace_t handlerton::alter_tablespace | 
| binlog_func_t handlerton::binlog_func | 
| binlog_log_query_t handlerton::binlog_log_query | 
| check_fk_column_compat_t handlerton::check_fk_column_compat | 
| Clone_interface_t handlerton::clone_interface | 
Clone data transfer interfaces.
| close_connection_t handlerton::close_connection | 
| collect_hton_log_info_t handlerton::collect_hton_log_info | 
| commit_t handlerton::commit | 
| commit_by_xid_t handlerton::commit_by_xid | 
| compare_secondary_engine_cost_t handlerton::compare_secondary_engine_cost | 
Pointer to a function that estimates the cost of executing a join in a secondary storage engine.
| create_t handlerton::create | 
| void* handlerton::data | 
Location for engines to keep personal structures.
| enum legacy_db_type handlerton::db_type | 
Historical number used for frm file to determine the correct storage engine.
This is going away and new engines will just use "name" for this.
| ddse_dict_init_t handlerton::ddse_dict_init | 
| dict_cache_reset_t handlerton::dict_cache_reset | 
| dict_cache_reset_tables_and_tablespaces_t handlerton::dict_cache_reset_tables_and_tablespaces | 
| dict_get_server_version_t handlerton::dict_get_server_version | 
| dict_init_t handlerton::dict_init | 
| dict_recover_t handlerton::dict_recover | 
| dict_register_dd_table_id_t handlerton::dict_register_dd_table_id | 
| dict_set_server_version_t handlerton::dict_set_server_version | 
| discover_t handlerton::discover | 
| drop_database_t handlerton::drop_database | 
| const char** handlerton::file_extensions | 
Null-ended array of file extensions that exist for the storage engine.
Used by frm_error() and the default handler::rename_table and delete_table methods in handler.cc.
For engines that have two file name extensions (separate meta/index file and data file), the order of elements is relevant. First element of engine file name extensions array should be meta/index file extension. Second element - data file extension. This order is assumed by prepare_for_repair() when REPAIR TABLE ... USE_FRM is issued.
For engines that don't have files, file_extensions is NULL.
Currently, the following alternatives are used:
| fill_is_table_t handlerton::fill_is_table | 
| find_files_t handlerton::find_files | 
| finish_upgrade_t handlerton::finish_upgrade | 
| LEX_CSTRING handlerton::fk_name_suffix | 
Suffix for auto-generated foreign key names for tables using this storage engine.
If such suffix is specified by SE then its generated foreign key names follow (table name)(SE-specific FK name suffix)(FK number) pattern. Length of such suffix should not exceed MAX_FK_NAME_SUFFIX_LENGTH bytes. If no suffix is specified then FK_NAME_DEFAULT_SUFFIX is used as default.
| uint32 handlerton::flags {0} | 
Global handler flags.
| flush_logs_t handlerton::flush_logs | 
| uint32 handlerton::foreign_keys_flags | 
Flags describing details of foreign key support by storage engine.
| get_cost_constants_t handlerton::get_cost_constants | 
| get_index_column_cardinality_t handlerton::get_index_column_cardinality | 
| get_secondary_engine_offload_or_exec_fail_reason_t handlerton::get_secondary_engine_offload_or_exec_fail_reason | 
Pointer to a function that returns the query offload or exec failure reason as a string given a thread context (representing the query) when the offloaded query failed in a secondary storage engine.
| get_table_statistics_t handlerton::get_table_statistics | 
| get_tablespace_t handlerton::get_tablespace | 
| get_tablespace_filename_ext_t handlerton::get_tablespace_filename_ext | 
| get_tablespace_statistics_t handlerton::get_tablespace_statistics | 
| get_tablespace_type_t handlerton::get_tablespace_type | 
| get_tablespace_type_by_name_t handlerton::get_tablespace_type_by_name | 
| is_dict_readonly_t handlerton::is_dict_readonly | 
| is_reserved_db_name_t handlerton::is_reserved_db_name | 
| is_supported_system_table_t handlerton::is_supported_system_table | 
| is_valid_tablespace_name_t handlerton::is_valid_tablespace_name | 
| kill_connection_t handlerton::kill_connection | 
| uint32 handlerton::license | 
Flag for Engine License.
| lock_hton_log_t handlerton::lock_hton_log | 
| notify_alter_table_t handlerton::notify_alter_table | 
| notify_exclusive_mdl_t handlerton::notify_exclusive_mdl | 
| notify_rename_table_t handlerton::notify_rename_table | 
| notify_truncate_table_t handlerton::notify_truncate_table | 
| optimize_secondary_engine_t handlerton::optimize_secondary_engine | 
Pointer to a function that optimizes the current statement for execution on the secondary storage engine represented by this handlerton.
| Page_track_t handlerton::page_track | 
Page tracking interface.
| panic_t handlerton::panic | 
| partition_flags_t handlerton::partition_flags | 
| post_ddl_t handlerton::post_ddl | 
| post_recover_t handlerton::post_recover | 
| pre_dd_shutdown_t handlerton::pre_dd_shutdown | 
| prepare_t handlerton::prepare | 
| prepare_secondary_engine_t handlerton::prepare_secondary_engine | 
Pointer to a function that prepares a secondary engine for executing a statement.
| push_to_engine_t handlerton::push_to_engine | 
| recover_t handlerton::recover | 
| recover_prepared_in_tc_t handlerton::recover_prepared_in_tc | 
| redo_log_set_state_t handlerton::redo_log_set_state | 
| replace_native_transaction_in_thd_t handlerton::replace_native_transaction_in_thd | 
| rm_tmp_tables_t handlerton::rm_tmp_tables | 
| rollback_t handlerton::rollback | 
| rollback_by_xid_t handlerton::rollback_by_xid | 
| rotate_encryption_master_key_t handlerton::rotate_encryption_master_key | 
| uint handlerton::savepoint_offset | 
To store per-savepoint data storage engine is provided with an area of a requested size (0 is ok here).
savepoint_offset must be initialized statically to the size of the needed memory to store per-savepoint information. After xxx_init it is changed to be an offset to savepoint storage area and need not be used by storage engine. see binlog_hton and binlog_savepoint_set/rollback for an example.
| savepoint_release_t handlerton::savepoint_release | 
| savepoint_rollback_t handlerton::savepoint_rollback | 
| savepoint_rollback_can_release_mdl_t handlerton::savepoint_rollback_can_release_mdl | 
| savepoint_set_t handlerton::savepoint_set | 
| sdi_create_t handlerton::sdi_create | 
| sdi_delete_t handlerton::sdi_delete | 
| sdi_drop_t handlerton::sdi_drop | 
| sdi_get_t handlerton::sdi_get | 
| sdi_get_keys_t handlerton::sdi_get_keys | 
| sdi_set_t handlerton::sdi_set | 
| se_after_commit_t handlerton::se_after_commit | 
| se_before_commit_t handlerton::se_before_commit | 
| se_before_rollback_t handlerton::se_before_rollback | 
| SecondaryEngineFlags handlerton::secondary_engine_flags | 
Bitmap which contains the supported join types and other flags for a secondary storage engine when used with the hypergraph join optimizer.
If it is empty, it means that the secondary engine does not support the hypergraph join optimizer.
| secondary_engine_modify_access_path_cost_t handlerton::secondary_engine_modify_access_path_cost | 
Pointer to a function that evaluates the cost of executing an access path in a secondary storage engine.
| set_prepared_in_tc_t handlerton::set_prepared_in_tc | 
| set_prepared_in_tc_by_xid_t handlerton::set_prepared_in_tc_by_xid | 
| set_secondary_engine_offload_fail_reason_t handlerton::set_secondary_engine_offload_fail_reason | 
Pointer to a function that sets the offload failure reason as a string for a thread context (representing the query) when the offloaded query failed in a secondary storage engine.
| show_status_t handlerton::show_status | 
| uint handlerton::slot | 
Each storage engine has it's own memory area (actually a pointer) in the thd, for storing per-connection information.
It is accessed as
thd->ha_data[xxx_hton.slot]
slot number is initialized by MySQL after xxx_init() is called.
| start_consistent_snapshot_t handlerton::start_consistent_snapshot | 
| SHOW_COMP_OPTION handlerton::state | 
Historical marker for if the engine is available or not.
| table_exists_in_engine_t handlerton::table_exists_in_engine | 
| unlock_hton_log_t handlerton::unlock_hton_log | 
| upgrade_logs_t handlerton::upgrade_logs | 
| upgrade_space_version_t handlerton::upgrade_space_version | 
| upgrade_tablespace_t handlerton::upgrade_tablespace |