| InnoDB Plugin
    1.0
    | 
#include <row0sel.h>

| Data Fields | |
| que_common_t | common | 
| enum sel_node_state | state | 
| que_node_t * | select_list | 
| sym_node_t * | into_list | 
| sym_node_t * | table_list | 
| ibool | asc | 
| ibool | set_x_locks | 
| ulint | row_lock_mode | 
| ulint | n_tables | 
| ulint | fetch_table | 
| plan_t * | plans | 
| que_node_t * | search_cond | 
| read_view_t * | read_view | 
| ibool | consistent_read | 
| order_node_t * | order_by | 
| ibool | is_aggregate | 
| ibool | aggregate_already_fetched | 
| ibool | can_get_updated | 
| sym_node_t * | explicit_cursor | 
| ut_list_base< sym_node_t > | copy_variables | 
Select statement node
| ibool sel_node_t::aggregate_already_fetched | 
TRUE if the aggregate row has already been fetched for the current cursor
| ibool sel_node_t::asc | 
TRUE if the rows should be fetched in an ascending order
| ibool sel_node_t::can_get_updated | 
this is TRUE if the select is in a single-table explicit cursor which can get updated within the stored procedure, or in a searched update or delete; NOTE that to determine of an explicit cursor if it can get updated, the parser checks from a stored procedure if it contains positioned update or delete statements
| que_common_t sel_node_t::common | 
node type: QUE_NODE_SELECT
| ibool sel_node_t::consistent_read | 
TRUE if the select is a consistent, non-locking read
| ut_list_base< sym_node_t > sel_node_t::copy_variables | 
variables whose values we have to copy when an explicit cursor is opened, so that they do not change between fetches
| sym_node_t* sel_node_t::explicit_cursor | 
not NULL if an explicit cursor
| ulint sel_node_t::fetch_table | 
number of the next table to access in the join
| sym_node_t* sel_node_t::into_list | 
variables list or NULL
| ibool sel_node_t::is_aggregate | 
TRUE if the select list consists of aggregate functions
| ulint sel_node_t::n_tables | 
number of tables
| order_node_t* sel_node_t::order_by | 
order by column definition, or NULL
| plan_t* sel_node_t::plans | 
array of n_tables many plan nodes containing the search plan and the search data structures
| read_view_t* sel_node_t::read_view | 
if the query is a non-locking consistent read, its read view is placed here, otherwise NULL
| ulint sel_node_t::row_lock_mode | 
LOCK_X or LOCK_S
| que_node_t* sel_node_t::search_cond | 
search condition
| que_node_t* sel_node_t::select_list | 
select list
| ibool sel_node_t::set_x_locks | 
TRUE if the cursor is for update or delete, which means that a row x-lock should be placed on the cursor row
| enum sel_node_state sel_node_t::state | 
node state
| sym_node_t* sel_node_t::table_list | 
table list
 1.8.1.2
 1.8.1.2