Query_result_materialize – a mediator between a cursor query and the protocol.
More...
|
| Query_result_materialize (Query_result *result_arg) |
|
| ~Query_result_materialize () override |
|
void | set_result (Query_result *result_arg) |
|
bool | check_simple_query_block () const override |
| Check if this query returns a result set and therefore is allowed in cursors and set an error message if it is not the case. More...
|
|
bool | prepare (THD *thd, const mem_root_deque< Item * > &list, Query_expression *u) override |
| Perform preparation specific to the query expression or DML statement. More...
|
|
bool | start_execution (THD *thd) override |
| Prepare for execution of the query expression or DML statement. More...
|
|
bool | send_result_set_metadata (THD *thd, const mem_root_deque< Item * > &list, uint flags) override |
|
void | cleanup (THD *) override |
| Cleanup after this execution. More...
|
|
| Query_result_union () |
|
bool | prepare (THD *thd, const mem_root_deque< Item * > &list, Query_expression *u) override |
| Perform preparation specific to the query expression or DML statement. More...
|
|
virtual bool | postponed_prepare (THD *thd, const mem_root_deque< Item * > &types) |
| Do prepare() if preparation has been postponed until column type information is computed (used by Query_result_union_direct). More...
|
|
bool | send_data (THD *thd, const mem_root_deque< Item * > &items) override |
|
bool | send_eof (THD *thd) override |
|
virtual bool | flush () |
|
void | cleanup (THD *) override |
| Cleanup after this execution. More...
|
|
bool | reset () override |
| Reset and empty the temporary table that stores the materialized query result. More...
|
|
bool | create_result_table (THD *thd, const mem_root_deque< Item * > &column_types, bool is_distinct, ulonglong options, const char *alias, bool bit_fields_as_long, bool create_table) |
| Create a temporary table to store the result of a query expression (used, among others, when materializing a UNION DISTINCT). More...
|
|
const ha_rows * | row_count () const override |
|
uint | get_hidden_field_count () |
|
| Query_result_interceptor () |
|
uint | field_count (const mem_root_deque< Item * > &) const override |
|
bool | is_interceptor () const final |
| Checks if this Query_result intercepts and transforms the result set. More...
|
|
| Query_result () |
|
virtual | ~Query_result ()=default |
|
virtual bool | needs_file_privilege () const |
|
virtual bool | change_query_result (THD *, Query_result *) |
| Change wrapped Query_result. More...
|
|
virtual bool | need_explain_interceptor () const |
|
virtual bool | optimize () |
| Optimize the result processing of a query expression, applicable to data change operation (not simple select queries). More...
|
|
virtual bool | create_table_for_query_block (THD *) |
| Create table, only needed to support CREATE TABLE ... SELECT. More...
|
|
virtual void | send_error (THD *, uint errcode, const char *err) |
|
virtual void | abort_result_set (THD *) |
|
void | begin_dataset () |
|
virtual bool | immediate_update (TABLE_LIST *t) const |
| If this Query_result performs modifications to tables: tells if it modifies the given table's row as it's read (a.k.a. More...
|
|
Query_result_materialize – a mediator between a cursor query and the protocol.
In case we were not able to open a non-materialzed cursor, it creates an internal temporary memory table, and inserts all rows into it. If the table is in the Heap engine and if it reaches maximum Heap table size, it's converted to a disk-based temporary table. Later this table is used to create a Materialized_cursor.
bool Query_result_materialize::start_execution |
( |
THD * |
| ) |
|
|
overridevirtual |
Prepare for execution of the query expression or DML statement.
Generally, this will have an implementation only for outer-most Query_block objects, such as data change statements (for preparation of the target table(s)) or dump statements (for preparation of target file).
- Returns
- false if success, true if error
Reimplemented from Query_result.