My Project
Public Member Functions | Protected Member Functions | Protected Attributes
explain_send Class Reference

List of all members.

Public Member Functions

 explain_send (select_result_interceptor *interceptor_arg)

Protected Member Functions

virtual int prepare (List< Item > &list, SELECT_LEX_UNIT *u)
virtual int prepare2 (void)
virtual bool initialize_tables (JOIN *join)
virtual void cleanup ()

Protected Attributes

bool prepared
 prepare() is done
bool prepared2
 prepare2() is done
bool initialized
 initialize_tables() is done
select_result_interceptor * interceptor

Detailed Description

EXPLAIN functionality for insert_select, multi_update and multi_delete

This class objects substitute insert_select, multi_update and multi_delete data interceptor objects to implement EXPLAIN for INSERT, REPLACE and multi-table UPDATE and DELETE queries. explain_send class object initializes tables like insert_select, multi_update or multi_delete data interceptor do, but it suppress table data modification by the underlying interceptor object. Thus, we can use explain_send object in the context of EXPLAIN INSERT/ REPLACE/UPDATE/DELETE query like we use select_send in the context of EXPLAIN SELECT command: 1) in presence of lex->describe flag we pass explain_send object to the mysql_select() function, 2) it call prepare(), prepare2() and initialize_tables() functions to mark modified tables etc.

Member Data Documentation

select_result_interceptor* explain_send::interceptor [protected]

Pointer to underlying insert_select, multi_update or multi_delete object

The documentation for this class was generated from the following file:
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines