90#define SYM_CLUST_FIELD_NO 0
92#define SYM_SEC_FIELD_NO 1
A granted metadata lock.
Definition: mdl.h:985
Data dictionary global types.
std::string str(const mysqlrouter::ConfigGenerator::Options::Endpoint &ep)
Definition: config_generator.cc:1081
bool length(const dd::Spatial_reference_system *srs, const Geometry *g1, double *length, bool *null) noexcept
Computes the length of linestrings and multilinestrings.
Definition: length.cc:76
sym_node_t * sym_tab_rebind_lit(sym_node_t *node, const void *address, ulint length)
Definition: pars0sym.cc:261
sym_tab_t * sym_tab_create(mem_heap_t *heap)
Creates a symbol table for a single stored procedure or query.
Definition: pars0sym.cc:49
sym_tab_entry
Types of a symbol table node.
Definition: pars0sym.h:95
@ SYM_COLUMN
database table name
Definition: pars0sym.h:105
@ SYM_PROCEDURE_NAME
stored procedure name
Definition: pars0sym.h:107
@ SYM_TABLE_REF_COUNTED
database table name, ref counted.
Definition: pars0sym.h:102
@ SYM_VAR
declared parameter or local variable of a procedure
Definition: pars0sym.h:97
@ SYM_CURSOR
named cursor
Definition: pars0sym.h:106
@ SYM_TABLE
database table name
Definition: pars0sym.h:104
@ SYM_IMPLICIT_VAR
storage for a intermediate result of a calculation
Definition: pars0sym.h:99
@ SYM_FUNCTION
user function name
Definition: pars0sym.h:109
@ SYM_UNSET
Unset entry.
Definition: pars0sym.h:96
@ SYM_LIT
literal
Definition: pars0sym.h:101
@ SYM_INDEX
database index name
Definition: pars0sym.h:108
sym_node_t * sym_tab_add_null_lit(sym_tab_t *sym_tab)
Adds an SQL null literal to a symbol table.
Definition: pars0sym.cc:300
sym_node_t * sym_tab_add_str_lit(sym_tab_t *sym_tab, const byte *str, ulint len)
Adds an string literal to a symbol table.
Definition: pars0sym.cc:144
void sym_tab_free_private(sym_tab_t *sym_tab)
Frees the memory allocated dynamically AFTER parsing phase for variables etc.
Definition: pars0sym.cc:67
sym_node_t * sym_tab_add_int_lit(sym_tab_t *sym_tab, ulint val)
Adds an integer literal to a symbol table.
Definition: pars0sym.cc:105
sym_node_t * sym_tab_add_bound_lit(sym_tab_t *sym_tab, const char *name, ulint *lit_type)
Add a bound literal to a symbol table.
Definition: pars0sym.cc:185
sym_node_t * sym_tab_add_bound_id(sym_tab_t *sym_tab, const char *name)
Add a bound identifier to a symbol table.
Definition: pars0sym.cc:359
sym_node_t * sym_tab_add_id(sym_tab_t *sym_tab, byte *name, ulint len)
Adds an identifier to a symbol table.
Definition: pars0sym.cc:334
Query graph global types.
Row operation global types.
case opt name
Definition: sslopt-case.h:29
Data structure for a database table.
Definition: dict0mem.h:1909
A predefined function or operator node in a parsing tree; this construct is also used for some non-fu...
Definition: pars0pars.h:497
The info structure stored at the beginning of a heap block.
Definition: mem0mem.h:302
Extra information supplied for pars_sql().
Definition: pars0pars.h:452
Definition: que0types.h:51
Definition: que0que.h:301
A structure for caching column values for prefetched rows.
Definition: row0sel.h:234
Select statement node.
Definition: row0sel.h:329
Symbol table node.
Definition: pars0sym.h:113
sel_node_t * cursor_def
cursor definition select node if a named cursor
Definition: pars0sym.h:183
bool resolved
true if the meaning of a variable or a column has been resolved; for literals this is always true
Definition: pars0sym.h:165
ulint name_len
id name length
Definition: pars0sym.h:173
enum sym_tab_entry token_type
type of the parsed token
Definition: pars0sym.h:170
dict_table_t * table
table definition if a table id or a column id
Definition: pars0sym.h:174
sel_buf_t * prefetch_buf
NULL, or a buffer for cached column values for prefetched rows.
Definition: pars0sym.h:179
MDL_ticket * mdl
Definition: pars0sym.h:197
sym_list
list of symbol nodes
Definition: pars0sym.h:193
sym_node_t * alias
pointer to another symbol table node for which this node is an alias, NULL otherwise
Definition: pars0sym.h:139
ulint field_nos[2]
if a column, in the position SYM_CLUST_FIELD_NO is the field number in the clustered index; in the po...
Definition: pars0sym.h:153
ulint param_type
PARS_INPUT, PARS_OUTPUT, or PARS_NOT_PARAM if not a procedure parameter.
Definition: pars0sym.h:186
col_var_list
list of table columns or a list of input variables for an explicit cursor
Definition: pars0sym.h:145
sym_node_t * like_node
Definition: pars0sym.h:195
sym_tab_t * sym_table
back pointer to the symbol table
Definition: pars0sym.h:190
que_common_t common
node type: QUE_NODE_SYMBOL
Definition: pars0sym.h:114
bool copy_val
true if a column and its value should be copied to dynamic memory when fetched
Definition: pars0sym.h:149
sym_node_t * indirection
pointer to another symbol table node which contains the value for this node, NULL otherwise
Definition: pars0sym.h:134
const char * name
name of an id
Definition: pars0sym.h:172
ulint col_no
column number if a column
Definition: pars0sym.h:177
Symbol table.
Definition: pars0sym.h:203
mem_heap_t * heap
memory heap from which we can allocate space
Definition: pars0sym.h:222
UT_LIST_BASE_NODE_T(sym_node_t, sym_list) sym_list
list of symbol nodes in the symbol table
size_t string_len
SQL string length.
Definition: pars0sym.h:209
int next_char_pos
position of the next character in sql_string to give to the lexical analyzer
Definition: pars0sym.h:211
que_t * query_graph
query graph generated by the parser
Definition: pars0sym.h:204
UT_LIST_BASE_NODE_T_EXTERN(func_node_t, func_node_list) func_node_list
list of function nodes in the parsed query graph
pars_info_t * info
extra information, or NULL
Definition: pars0sym.h:215
const char * sql_string
SQL string to parse.
Definition: pars0sym.h:207
Version control for database, common definitions, and include files.
unsigned long int ulint
Definition: univ.i:406
Users and sessions global types.
#define UT_LIST_NODE_GETTER_DEFINITION(t, m)
A helper for the UT_LIST_BASE_NODE_T_EXTERN which declares a node getter struct which extracts member...
Definition: ut0lst.h:270
#define UT_LIST_NODE_T(t)
Macro used for legacy reasons.
Definition: ut0lst.h:64