![]() |
MySQL 8.0.43
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 |