0%

SELECT_LEX

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
ptype select_lex->context                
type = struct Name_resolution_context {
Name_resolution_context *outer_context;
Name_resolution_context *next_context;
TABLE_LIST *table_list;
TABLE_LIST *first_name_resolution_table;
TABLE_LIST *last_name_resolution_table;
SELECT_LEX *select_lex;
bool view_error_handler;
TABLE_LIST *view_error_handler_arg;
bool resolve_in_select_list;
Security_context *security_ctx;
public:
Name_resolution_context(void);
void init(void);
void resolve_in_table_list_only(TABLE_LIST *);
}

SELECT_LEX

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
class SELECT_LEX  :
{
private:
SELECT_LEX *next;
SELECT_LEX **prev;
SELECT_LEX_UNIT *master;
SELECT_LEX_UNIT *slave;
SELECT_LEX *link_next;
SELECT_LEX **link_prev;
Query_result *m_query_result;
ulonglong m_base_options;
ulonglong m_active_options;
public:
uint8 uncacheable;
bool skip_local_transforms;
sub_select_type linkage;
bool no_table_names_allowed;
Name_resolution_context context;
Name_resolution_context *first_context;
SELECT_LEX::Resolve_place resolve_place;
TABLE_LIST *resolve_nest;
bool semijoin_disallowed;
char *db;
private:
Item *m_where_cond;
Item *m_having_cond;
public:
Item::cond_result cond_value;
Item::cond_result having_value;
LEX *parent_lex;
olap_type olap;
SQL_I_List<TABLE_LIST> table_list;
SQL_I_List<ORDER> group_list;
Group_list_ptrs *group_list_ptrs;
List<Window> m_windows;
List<Item> item_list;
bool is_item_list_lookup;
int hidden_group_field_count;
List<Item> &fields_list;
List<Item> all_fields;
List<Item> all_inner_ref_fields;
List<Item_func_match> *ftfunc_list;
List<Item_func_match> ftfunc_list_alloc;
JOIN *join;
List<TABLE_LIST> top_join_list;
List<TABLE_LIST> *join_list;
TABLE_LIST *embedding;
List<TABLE_LIST> sj_nests;
TABLE_LIST *leaf_tables;
uint leaf_table_count;
uint derived_table_count;
uint table_func_count;
uint materialized_derived_table_count;
bool has_sj_nests;
uint partitioned_table_count;
SQL_I_List<ORDER> order_list;
Group_list_ptrs *order_list_ptrs;
Item *select_limit;
Item *offset_limit;
Ref_item_array base_ref_items;
uint select_n_having_items;
uint cond_count;
uint between_count;
uint max_equal_elems;
uint select_n_where_fields;
enum_parsing_context parsing_place;
uint in_sum_expr;
bool with_sum_func;
uint n_sum_items;
uint n_child_sum_items;
uint select_number;
int nest_level;
Item_sum *inner_sum_func_list;
uint with_wild;
bool braces;
bool having_fix_field;
bool group_fix_field;
List<Item_outer_ref> inner_refs_list;
bool explicit_limit;
bool subquery_in_having;
bool first_execution;
bool sj_pullout_done;
bool exclude_from_table_unique_test;
bool allow_merge_derived;
TABLE_LIST *recursive_reference;
SELECT_LEX_UNIT *recursive_dummy_unit;
table_map select_list_tables;
table_map outer_join;
Opt_hints_qb *opt_hints_qb;

TABLE_LIST *end_lateral_table;
bool is_parallel_unsafe;
StringBuffer<1024> printed_query_before_pqplan;
private:
bool m_agg_func_used;
bool m_json_agg_func_used;
bool m_empty_query;
static const char *type_str[8];
Mem_root_array<Item_exists_subselect*> *sj_candidates;
public:
int hidden_order_field_count;

Item * where_cond(void) const;
void set_where_cond(Item *);
Item * having_cond(void) const;
void set_having_cond(Item *);
void set_query_result(Query_result *);
Query_result * query_result(void) const;
bool change_query_result(Query_result_interceptor *, Query_result_interceptor *);
void set_base_options(ulonglong);
void add_base_options(ulonglong);
void remove_base_options(ulonglong);
}

LEX