MySQL 9.1.0
Source Code Documentation
Sql_cmd_truncate_table Class Reference

Sql_cmd_truncate_table represents the TRUNCATE statement. More...

#include <sql_truncate.h>

Inheritance diagram for Sql_cmd_truncate_table:
[legend]

Public Member Functions

 Sql_cmd_truncate_table ()=default
 Constructor, used to represent a TRUNCATE statement. More...
 
 ~Sql_cmd_truncate_table () override=default
 
bool execute (THD *) override
 Execute a TRUNCATE statement at runtime. More...
 
enum_sql_command sql_command_code () const override
 Return the command code for this statement. More...
 
- 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_statementowner () 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_CSTRINGeligible_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 handlertonsecondary_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 Member Functions

bool lock_table (THD *, Table_ref *)
 
void truncate_base (THD *, Table_ref *)
 Optimized delete of all rows by doing a full generate of the base (non-temporary) table. More...
 
void truncate_temporary (THD *, Table_ref *)
 Optimized delete of all rows by doing a full generate of the temporary table. More...
 
void end_transaction (THD *, bool, bool)
 Completes transaction by attempting to binlog and commit if truncate has been successful so far. More...
 
void cleanup_base (THD *, const handlerton *)
 Performs cleanup actions after truncate of a normal (non-temporary) table. More...
 
void cleanup_temporary (THD *, handlerton *, const Table_ref &, Up_table *, const std::string &)
 Reopens a temporary table after truncate if supported. More...
 

Private Attributes

MDL_ticketm_ticket_downgrade = nullptr
 Set if a lock must be downgraded after truncate is done. More...
 
bool m_error = true
 Track error status from functions called. 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...
 

Detailed Description

Sql_cmd_truncate_table represents the TRUNCATE statement.

Constructor & Destructor Documentation

◆ Sql_cmd_truncate_table()

Sql_cmd_truncate_table::Sql_cmd_truncate_table ( )
default

Constructor, used to represent a TRUNCATE statement.

◆ ~Sql_cmd_truncate_table()

Sql_cmd_truncate_table::~Sql_cmd_truncate_table ( )
overridedefault

Member Function Documentation

◆ cleanup_base()

void Sql_cmd_truncate_table::cleanup_base ( THD thd,
const handlerton hton 
)
private

Performs cleanup actions after truncate of a normal (non-temporary) table.

Calls post_ddl hook, reopens locked tables in locked_tables mode and possibly downgrades a temporarily upgraded MDL.

◆ cleanup_temporary()

void Sql_cmd_truncate_table::cleanup_temporary ( THD thd,
handlerton hton,
const Table_ref table_ref,
Up_table tdef_holder_ptr,
const std::string &  saved_path 
)
private

Reopens a temporary table after truncate if supported.

Deletes table and flags error if unuccessful.

◆ end_transaction()

void Sql_cmd_truncate_table::end_transaction ( THD thd,
bool  binlog_stmt,
bool  binlog_is_trans 
)
private

Completes transaction by attempting to binlog and commit if truncate has been successful so far.

Rolls back if truncate has already failed, or if binlogging or commit fails.

◆ execute()

bool Sql_cmd_truncate_table::execute ( THD thd)
overridevirtual

Execute a TRUNCATE statement at runtime.

Parameters
thdThe current thread.
Returns
false on success.

Implements Sql_cmd.

◆ lock_table()

bool Sql_cmd_truncate_table::lock_table ( THD thd,
Table_ref table_ref 
)
private

◆ sql_command_code()

enum_sql_command Sql_cmd_truncate_table::sql_command_code ( ) const
inlineoverridevirtual

Return the command code for this statement.

Implements Sql_cmd.

◆ truncate_base()

void Sql_cmd_truncate_table::truncate_base ( THD thd,
Table_ref table_ref 
)
private

Optimized delete of all rows by doing a full generate of the base (non-temporary) table.

Remarks
Will work even if the .MYI and .MYD files are destroyed. In other words, it works as long as the .FRM is intact and the engine supports re-create.
Parameters
thdThread context.
table_refTable list element for the table to be truncated.

◆ truncate_temporary()

void Sql_cmd_truncate_table::truncate_temporary ( THD thd,
Table_ref table_ref 
)
private

Optimized delete of all rows by doing a full generate of the temporary table.

Remarks
Will work even if the .MYI and .MYD files are destroyed. In other words, it works as long as the .FRM is intact and the engine supports re-create.
Parameters
thdThread context.
table_refTable list element for the table to be truncated.

Member Data Documentation

◆ m_error

bool Sql_cmd_truncate_table::m_error = true
private

Track error status from functions called.

◆ m_ticket_downgrade

MDL_ticket* Sql_cmd_truncate_table::m_ticket_downgrade = nullptr
private

Set if a lock must be downgraded after truncate is done.


The documentation for this class was generated from the following files: