MySQL 9.1.0
Source Code Documentation
|
Sql_cmd_analyze_table represents the ANALYZE TABLE statement. More...
#include <sql_admin.h>
Public Types | |
enum class | Histogram_command { NONE , UPDATE_HISTOGRAM , DROP_HISTOGRAM } |
Specifies which (if any) of the commands UPDATE HISTOGRAM or DROP HISTOGRAM that is specified after ANALYZE TABLE tbl. More... | |
Public Member Functions | |
Sql_cmd_analyze_table (THD *thd, Alter_info *alter_info, Histogram_command histogram_command, int histogram_buckets, LEX_STRING data, bool histogram_auto_update) | |
Constructor, used to represent a ANALYZE TABLE statement. More... | |
bool | execute (THD *thd) override |
Execute this SQL statement. More... | |
enum_sql_command | sql_command_code () const override |
Return the command code for this statement. More... | |
bool | set_histogram_fields (List< String > *fields) |
Set which fields to (try and) create/update or delete histogram statistics for. More... | |
Public Member Functions inherited from Sql_cmd_ddl_table | |
Sql_cmd_ddl_table (Alter_info *alter_info) | |
~Sql_cmd_ddl_table () override=0 | |
Public Member Functions inherited from Sql_cmd_ddl | |
enum enum_sql_cmd_type | sql_cmd_type () const override |
Public Member Functions inherited from Sql_cmd | |
bool | needs_explicit_preparation () const |
bool | is_regular () const |
bool | is_prepared () const |
virtual bool | prepare (THD *) |
Prepare this SQL statement. More... | |
virtual bool | reprepare_on_execute_required () const |
Some SQL commands currently require re-preparation on re-execution of a prepared statement or stored procedure. More... | |
virtual void | cleanup (THD *) |
Command-specific reinitialization before execution of prepared statement. More... | |
void | set_owner (Prepared_statement *stmt) |
Set the owning prepared statement. More... | |
Prepared_statement * | owner () const |
Get the owning prepared statement. More... | |
void | set_as_part_of_sp () |
Mark statement as part of procedure. More... | |
bool | is_part_of_sp () const |
virtual bool | is_single_table_plan () const |
virtual bool | accept (THD *, Select_lex_visitor *) |
virtual const MYSQL_LEX_CSTRING * | eligible_secondary_storage_engine (THD *) const |
Is this statement of a type and on a form that makes it eligible for execution in a secondary storage engine? More... | |
virtual bool | is_bulk_load () const |
virtual bool | are_dynamic_parameters_allowed () const |
void | disable_secondary_storage_engine () |
Disable use of secondary storage engines in this statement. More... | |
void | enable_secondary_storage_engine () |
bool | secondary_storage_engine_disabled () const |
Has use of secondary storage engines been disabled for this statement? More... | |
void | use_secondary_storage_engine (const handlerton *hton) |
Mark the current statement as using a secondary storage engine. More... | |
bool | using_secondary_storage_engine () const |
Is this statement using a secondary storage engine? More... | |
const handlerton * | secondary_engine () const |
Get the handlerton of the secondary engine that is used for executing this statement, or nullptr if a secondary engine is not used. More... | |
void | set_optional_transform_prepared (bool value) |
bool | is_optional_transform_prepared () |
Private Types | |
using | columns_set = std::set< String *, Column_name_comparator, Mem_root_allocator< String * > > |
Private Member Functions | |
Histogram_command | get_histogram_command () const |
int | get_histogram_buckets () const |
LEX_STRING | get_histogram_data_string () const |
bool | get_histogram_auto_update () const |
const columns_set & | get_histogram_fields () const |
bool | send_histogram_results (THD *thd, const histograms::results_map &results, const Table_ref *table) |
Send the result of histogram operations back to the client as a result set. More... | |
bool | update_histogram (THD *thd, Table_ref *table, histograms::results_map &results) |
Update one or more histograms. More... | |
bool | drop_histogram (THD *thd, Table_ref *table, histograms::results_map &results) |
Drops one or more histograms. More... | |
bool | handle_histogram_command (THD *thd, Table_ref *table) |
Dispatches the histogram command (DROP or UPDATE) and commits or rollbacks the changes depending on success or failure. More... | |
bool | handle_histogram_command_inner (THD *thd, Table_ref *table, histograms::results_map &results) |
Private Attributes | |
Histogram_command | m_histogram_command = Histogram_command::NONE |
Which histogram command (if any) is specified. More... | |
columns_set | m_histogram_fields |
The fields specified by the user in UPDATE/DROP HISTOGRAM. More... | |
int | m_histogram_buckets |
The number of buckets specified by the user in UPDATE HISTOGRAM. More... | |
const LEX_STRING | m_data |
The histogram json literal for update. More... | |
bool | m_histogram_auto_update |
True if AUTO UPDATE was specified by the user in UPDATE HISTOGRAM. More... | |
Additional Inherited Members | |
Protected Member Functions inherited from Sql_cmd | |
Sql_cmd () | |
virtual | ~Sql_cmd () |
void | set_prepared () |
Set this statement as prepared. More... | |
Protected Attributes inherited from Sql_cmd_ddl_table | |
Alter_info *const | m_alter_info |
Sql_cmd_analyze_table represents the ANALYZE TABLE statement.
Also this class is a base class for Sql_cmd_alter_table_analyze_partition which represents the ALTER TABLE ... ANALYZE PARTITION statement.
|
private |
|
strong |
Sql_cmd_analyze_table::Sql_cmd_analyze_table | ( | THD * | thd, |
Alter_info * | alter_info, | ||
Histogram_command | histogram_command, | ||
int | histogram_buckets, | ||
LEX_STRING | data, | ||
bool | histogram_auto_update | ||
) |
Constructor, used to represent a ANALYZE TABLE statement.
|
private |
Drops one or more histograms.
This is invoked by running the command "ANALYZE TABLE tbl DROP HISTOGRAM ON col1, col2;". Note that the function expects exactly one table to be specified, but multiple columns can be specified.
thd | Thread handler. |
table | The table specified in ANALYZE TABLE |
results | A map where the results of the operations will be stored. |
|
overridevirtual |
Execute this SQL statement.
thd | the current thread. |
Implements Sql_cmd.
Reimplemented in Sql_cmd_alter_table_analyze_partition.
|
inlineprivate |
|
inlineprivate |
|
inlineprivate |
|
inlineprivate |
|
inlineprivate |
Dispatches the histogram command (DROP or UPDATE) and commits or rollbacks the changes depending on success or failure.
If histograms were modified we update the current snapshot of the table's histograms on the TABLE_SHARE.
After the histogram command has been handled we check whether a fatal error was encountered:
thd | Thread handler. |
table | The table specified in ANALYZE TABLE |
|
private |
|
private |
Send the result of histogram operations back to the client as a result set.
thd | Thread handle. |
results | The messages to send back to the client. |
table | The table the operations was performed on. |
Set which fields to (try and) create/update or delete histogram statistics for.
|
inlineoverridevirtual |
Return the command code for this statement.
Implements Sql_cmd.
Reimplemented in Sql_cmd_alter_table_analyze_partition.
|
private |
Update one or more histograms.
This is invoked by running the command "ANALYZE TABLE tbl UPDATE HISTOGRAM ON col1, col2 WITH n BUCKETS". Note that the function expects exactly one table to be specified, but multiple columns can be specified.
thd | Thread handler. |
table | The table specified in ANALYZE TABLE |
results | A map where the results of the operations will be stored. |
|
private |
The histogram json literal for update.
|
private |
True if AUTO UPDATE was specified by the user in UPDATE HISTOGRAM.
|
private |
The number of buckets specified by the user in UPDATE HISTOGRAM.
|
private |
Which histogram command (if any) is specified.
|
private |
The fields specified by the user in UPDATE/DROP HISTOGRAM.