![]() |
MySQL 9.2.0
Source Code Documentation
|
#include <sql_union.h>
Public Member Functions | |
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 () 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 create_table, Query_term_set_op *op=nullptr) |
Create a temporary table to store the result of a query expression (used, among others, when materializing a UNION DISTINCT). More... | |
uint | get_hidden_field_count () const |
bool | skip_create_table () const |
void | set_limit (ha_rows limit_rows) override |
Set an effective LIMIT for the number of rows coming out of a materialized temporary table used for implementing INTERSECT or EXCEPT: informs TableScanIterator::TableScanIterator how many rows to read from the materialized table. More... | |
![]() | |
Query_result_interceptor () | |
uint | field_count (const mem_root_deque< Item * > &) const override |
bool | send_result_set_metadata (THD *, const mem_root_deque< Item * > &, uint) override |
![]() | |
Query_result () | |
virtual | ~Query_result ()=default |
virtual bool | needs_file_privilege () const |
virtual bool | export_result_to_object_storage () const |
Returns true if the data has to be exported to object store. More... | |
virtual bool | change_query_result (THD *, Query_result *) |
Change wrapped Query_result. More... | |
virtual bool | need_explain_interceptor () const |
virtual bool | start_execution (THD *) |
Prepare for execution of the query expression or DML statement. More... | |
virtual bool | create_table_for_query_block (THD *) |
Create table, only needed to support CREATE TABLE ... SELECT. More... | |
virtual bool | check_supports_cursor () const |
Check if this query result set supports cursors. More... | |
virtual void | abort_result_set (THD *) |
virtual bool | use_protocol_adapter () const |
virtual bool | use_protocol_wrapper () const |
virtual Server_side_cursor * | cursor () const |
Public Attributes | |
TABLE * | table |
![]() | |
ha_rows | estimated_rowcount |
Number of records estimated in this result. More... | |
double | estimated_cost |
Cost to execute the subquery which produces this result. More... | |
Protected Attributes | |
Temp_table_param | tmp_table_param |
![]() | |
Query_expression * | unit |
Friends | |
class | Common_table_expr |
bool | Table_ref::create_materialized_table (THD *thd) |
bool | Table_ref::optimize_derived (THD *thd) |
|
inline |
|
inlineoverridevirtual |
Cleanup after this execution.
Completes the execution and resets object before next execution of a prepared statement/stored procedure.
Reimplemented from Query_result.
bool Query_result_union::create_result_table | ( | THD * | thd_arg, |
const mem_root_deque< Item * > & | column_types, | ||
bool | is_union_distinct, | ||
ulonglong | options, | ||
const char * | table_alias, | ||
bool | create_table, | ||
Query_term_set_op * | op = nullptr |
||
) |
Create a temporary table to store the result of a query expression (used, among others, when materializing a UNION DISTINCT).
thd_arg | thread handle |
column_types | a list of items used to define columns of the temporary table |
is_union_distinct | if set, the temporary table will eliminate duplicates on insert |
options | create options |
table_alias | name of the temporary table |
create_table | If false, a table handler will not be created when creating the result table. |
op | If we are creating a result table for a set operation, op should contain the relevant set operation's query term. In other cases, op should be nullptr. |
Create a temporary table that is used to store the result of a UNION, derived table, or a materialized cursor.
|
virtual |
Reimplemented in Query_result_union_direct.
|
inline |
|
inlinevirtual |
Do prepare() if preparation has been postponed until column type information is computed (used by Query_result_union_direct).
thd | Thread handle |
types | Column types |
Reimplemented in Query_result_union_direct.
|
overridevirtual |
Perform preparation specific to the query expression or DML statement.
Reimplemented from Query_result.
|
overridevirtual |
Reset and empty the temporary table that stores the materialized query result.
Reimplemented from Query_result.
|
overridevirtual |
Implements Query_result.
|
overridevirtual |
Implements Query_result.
|
overridevirtual |
Set an effective LIMIT for the number of rows coming out of a materialized temporary table used for implementing INTERSECT or EXCEPT: informs TableScanIterator::TableScanIterator how many rows to read from the materialized table.
For UNION and simple tables the limitation is enforced earlier, at materialize time, but this is not possible for INTERSECT and EXCEPT due to the use of cardinality counters.
limit_rows | the effective limit, or HA_POS_ERROR if none. |
Reimplemented from Query_result.
|
inline |
|
friend |
|
friend |
|
friend |
TABLE* Query_result_union::table |
|
protected |