MySQL  8.0.19
Source Code Documentation
QEP_operation Class Referenceabstract

QEP_operation is an interface class for operations in query execution plan. More...

#include <sql_executor.h>

Inheritance diagram for QEP_operation:
JOIN_CACHE QEP_tmp_table JOIN_CACHE_BKA JOIN_CACHE_BNL

Public Types

enum  enum_op_type { OT_CACHE, OT_TMP_TABLE }
 

Public Member Functions

 QEP_operation ()
 
 QEP_operation (QEP_TAB *qep_tab_arg)
 
virtual ~QEP_operation ()
 
virtual enum_op_type type ()=0
 
virtual int init ()
 Initialize operation's internal state. More...
 
virtual enum_nested_loop_state put_record ()=0
 Put a new record into the operation's buffer. More...
 
virtual enum_nested_loop_state end_send ()=0
 Finalize records sending. More...
 
virtual void mem_free ()
 Internal state cleanup. More...
 

Public Attributes

QEP_TABqep_tab
 For JOIN_CACHE : Table to be joined with the partial join records from the cache For JOIN_TMP_BUFFER : join_tab of tmp table. More...
 

Detailed Description

QEP_operation is an interface class for operations in query execution plan.

Currently following operations are implemented: JOIN_CACHE - caches partial join result and joins with attached table QEP_tmp_table - materializes join result in attached table

An operation's life cycle is as follows: .) it is initialized on the init() call .) accumulates records one by one when put_record() is called. .) finalize record sending when end_send() is called. .) free all internal buffers on the free() call.

Each operation is attached to a join_tab, to which exactly depends on the operation type: JOIN_CACHE is attached to the table following the table being cached, QEP_tmp_buffer is attached to a tmp table.

Member Enumeration Documentation

◆ enum_op_type

Enumerator
OT_CACHE 
OT_TMP_TABLE 

Constructor & Destructor Documentation

◆ QEP_operation() [1/2]

QEP_operation::QEP_operation ( )
inline

◆ QEP_operation() [2/2]

QEP_operation::QEP_operation ( QEP_TAB qep_tab_arg)
inline

◆ ~QEP_operation()

virtual QEP_operation::~QEP_operation ( )
inlinevirtual

Member Function Documentation

◆ end_send()

virtual enum_nested_loop_state QEP_operation::end_send ( )
pure virtual

Finalize records sending.

Implemented in JOIN_CACHE, and QEP_tmp_table.

◆ init()

virtual int QEP_operation::init ( )
inlinevirtual

Initialize operation's internal state.

Called once per query execution.

Reimplemented in JOIN_CACHE, JOIN_CACHE_BKA, and JOIN_CACHE_BNL.

◆ mem_free()

virtual void QEP_operation::mem_free ( )
inlinevirtual

Internal state cleanup.

Reimplemented in JOIN_CACHE.

◆ put_record()

virtual enum_nested_loop_state QEP_operation::put_record ( )
pure virtual

Put a new record into the operation's buffer.

Returns
return one of enum_nested_loop_state values.

Implemented in JOIN_CACHE, and QEP_tmp_table.

◆ type()

virtual enum_op_type QEP_operation::type ( )
pure virtual

Implemented in JOIN_CACHE, and QEP_tmp_table.

Member Data Documentation

◆ qep_tab

QEP_TAB* QEP_operation::qep_tab

For JOIN_CACHE : Table to be joined with the partial join records from the cache For JOIN_TMP_BUFFER : join_tab of tmp table.


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