| My Project
   
    | 
| 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 | 
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.
| select_result_interceptor* explain_send::interceptor  [protected] | 
Pointer to underlying insert_select, multi_update or multi_delete object
 1.7.6.1
 1.7.6.1