MySQL 5.6.14 Source Code Document
|
#include "univ.i"
#include "que0types.h"
#include "usr0types.h"
#include "pars0types.h"
#include "row0types.h"
#include "trx0types.h"
#include "ut0vec.h"
#include "pars0pars.ic"
Go to the source code of this file.
Classes | |
struct | pars_info_t |
struct | pars_user_func_t |
struct | pars_bound_lit_t |
struct | pars_bound_id_t |
struct | pars_res_word_t |
struct | func_node_t |
struct | order_node_t |
struct | proc_node_t |
struct | elsif_node_t |
struct | if_node_t |
struct | while_node_t |
struct | for_node_t |
struct | exit_node_t |
struct | return_node_t |
struct | assign_node_t |
struct | col_assign_node_t |
Macros | |
#define | PARS_INPUT 0 |
#define | PARS_OUTPUT 1 |
#define | PARS_NOT_PARAM 2 |
#define | PARS_FUNC_ARITH 1 |
#define | PARS_FUNC_LOGICAL 2 |
#define | PARS_FUNC_CMP 3 |
#define | PARS_FUNC_PREDEFINED 4 |
#define | PARS_FUNC_AGGREGATE 5 |
#define | PARS_FUNC_OTHER 6 |
Typedefs | |
typedef ibool(* | pars_user_func_cb_t )(void *arg, void *user_arg) |
Functions | |
int | yyparse (void) |
UNIV_INTERN que_t * | pars_sql (pars_info_t *info, const char *str) |
UNIV_INTERN int | pars_get_lex_chars (char *buf, int max_size) |
UNIV_INTERN void | yyerror (const char *s) |
UNIV_INTERN sym_node_t * | pars_variable_declaration (sym_node_t *node, pars_res_word_t *type) |
UNIV_INTERN func_node_t * | pars_func (que_node_t *res_word, que_node_t *arg) |
UNIV_INTERN int | pars_like_rebind (sym_node_t *node, const byte *ptr, ulint len) |
UNIV_INTERN func_node_t * | pars_op (int func, que_node_t *arg1, que_node_t *arg2) |
UNIV_INTERN order_node_t * | pars_order_by (sym_node_t *column, pars_res_word_t *asc) |
UNIV_INTERN sel_node_t * | pars_select_list (que_node_t *select_list, sym_node_t *into_list) |
UNIV_INTERN que_node_t * | pars_cursor_declaration (sym_node_t *sym_node, sel_node_t *select_node) |
UNIV_INTERN que_node_t * | pars_function_declaration (sym_node_t *sym_node) |
UNIV_INTERN sel_node_t * | pars_select_statement (sel_node_t *select_node, sym_node_t *table_list, que_node_t *search_cond, pars_res_word_t *for_update, pars_res_word_t *consistent_read, order_node_t *order_by) |
UNIV_INTERN col_assign_node_t * | pars_column_assignment (sym_node_t *column, que_node_t *exp) |
UNIV_INTERN upd_node_t * | pars_update_statement_start (ibool is_delete, sym_node_t *table_sym, col_assign_node_t *col_assign_list) |
UNIV_INTERN upd_node_t * | pars_update_statement (upd_node_t *node, sym_node_t *cursor_sym, que_node_t *search_cond) |
UNIV_INTERN ins_node_t * | pars_insert_statement (sym_node_t *table_sym, que_node_t *values_list, sel_node_t *select) |
UNIV_INTERN sym_node_t * | pars_parameter_declaration (sym_node_t *node, ulint param_type, pars_res_word_t *type) |
UNIV_INTERN elsif_node_t * | pars_elsif_element (que_node_t *cond, que_node_t *stat_list) |
UNIV_INTERN if_node_t * | pars_if_statement (que_node_t *cond, que_node_t *stat_list, que_node_t *else_part) |
UNIV_INTERN for_node_t * | pars_for_statement (sym_node_t *loop_var, que_node_t *loop_start_limit, que_node_t *loop_end_limit, que_node_t *stat_list) |
UNIV_INTERN while_node_t * | pars_while_statement (que_node_t *cond, que_node_t *stat_list) |
UNIV_INTERN exit_node_t * | pars_exit_statement (void) |
UNIV_INTERN return_node_t * | pars_return_statement (void) |
UNIV_INTERN func_node_t * | pars_procedure_call (que_node_t *res_word, que_node_t *args) |
UNIV_INTERN assign_node_t * | pars_assignment_statement (sym_node_t *var, que_node_t *val) |
UNIV_INTERN fetch_node_t * | pars_fetch_statement (sym_node_t *cursor, sym_node_t *into_list, sym_node_t *user_func) |
UNIV_INTERN open_node_t * | pars_open_statement (ulint type, sym_node_t *cursor) |
UNIV_INTERN row_printf_node_t * | pars_row_printf_statement (sel_node_t *sel_node) |
UNIV_INTERN commit_node_t * | pars_commit_statement (void) |
UNIV_INTERN roll_node_t * | pars_rollback_statement (void) |
UNIV_INTERN sym_node_t * | pars_column_def (sym_node_t *sym_node, pars_res_word_t *type, sym_node_t *len, void *is_unsigned, void *is_not_null) |
UNIV_INTERN tab_node_t * | pars_create_table (sym_node_t *table_sym, sym_node_t *column_defs, sym_node_t *compact, sym_node_t *block_size, void *not_fit_in_memory) |
UNIV_INTERN ind_node_t * | pars_create_index (pars_res_word_t *unique_def, pars_res_word_t *clustered_def, sym_node_t *index_sym, sym_node_t *table_sym, sym_node_t *column_list) |
UNIV_INTERN que_fork_t * | pars_procedure_definition (sym_node_t *sym_node, sym_node_t *param_list, que_node_t *stat_list) |
UNIV_INTERN que_fork_t * | pars_stored_procedure_call (sym_node_t *sym_node) |
UNIV_INTERN que_thr_t * | pars_complete_graph_for_exec (que_node_t *node, trx_t *trx, mem_heap_t *heap) __attribute__((nonnull(2 |
UNIV_INTERN pars_info_t * | pars_info_create (void) |
UNIV_INTERN void | pars_info_free (pars_info_t *info) |
UNIV_INTERN void | pars_info_add_literal (pars_info_t *info, const char *name, const void *address, ulint length, ulint type, ulint prtype) |
UNIV_INTERN void | pars_info_add_str_literal (pars_info_t *info, const char *name, const char *str) |
UNIV_INTERN void | pars_info_bind_literal (pars_info_t *info, const char *name, const void *address, ulint length, ulint type, ulint prtype) |
UNIV_INTERN void | pars_info_bind_varchar_literal (pars_info_t *info, const char *name, const byte *str, ulint str_len) |
UNIV_INTERN void | pars_info_bind_int4_literal (pars_info_t *info, const char *name, const ib_uint32_t *val) |
UNIV_INTERN void | pars_info_bind_int8_literal (pars_info_t *info, const char *name, const ib_uint64_t *val) |
UNIV_INTERN void | pars_info_bind_function (pars_info_t *info, const char *name, pars_user_func_cb_t func, void *arg) |
UNIV_INTERN void | pars_info_bind_id (pars_info_t *info, ibool copy_name, const char *name, const char *id) |
UNIV_INTERN void | pars_info_add_int4_literal (pars_info_t *info, const char *name, lint val) |
UNIV_INTERN void | pars_info_add_ull_literal (pars_info_t *info, const char *name, ib_uint64_t val) |
UNIV_INTERN void | pars_info_bind_ull_literal (pars_info_t *info, const char *name, const ib_uint64_t *val) __attribute__((nonnull)) |
UNIV_INTERN void | pars_info_add_id (pars_info_t *info, const char *name, const char *id) |
UNIV_INTERN pars_bound_lit_t * | pars_info_get_bound_lit (pars_info_t *info, const char *name) |
UNIV_INTERN pars_bound_id_t * | pars_info_get_bound_id (pars_info_t *info, const char *name) |
UNIV_INTERN void | pars_lexer_close (void) |
Variables | |
int | yydebug |
sym_tab_t * | pars_sym_tab_global |
pars_res_word_t | pars_to_char_token |
pars_res_word_t | pars_to_number_token |
pars_res_word_t | pars_to_binary_token |
pars_res_word_t | pars_binary_to_number_token |
pars_res_word_t | pars_substr_token |
pars_res_word_t | pars_replstr_token |
pars_res_word_t | pars_concat_token |
pars_res_word_t | pars_length_token |
pars_res_word_t | pars_instr_token |
pars_res_word_t | pars_sysdate_token |
pars_res_word_t | pars_printf_token |
pars_res_word_t | pars_assert_token |
pars_res_word_t | pars_rnd_token |
pars_res_word_t | pars_rnd_str_token |
pars_res_word_t | pars_count_token |
pars_res_word_t | pars_sum_token |
pars_res_word_t | pars_distinct_token |
pars_res_word_t | pars_binary_token |
pars_res_word_t | pars_blob_token |
pars_res_word_t | pars_int_token |
pars_res_word_t | pars_bigint_token |
pars_res_word_t | pars_char_token |
pars_res_word_t | pars_float_token |
pars_res_word_t | pars_update_token |
pars_res_word_t | pars_asc_token |
pars_res_word_t | pars_desc_token |
pars_res_word_t | pars_open_token |
pars_res_word_t | pars_close_token |
pars_res_word_t | pars_share_token |
pars_res_word_t | pars_unique_token |
pars_res_word_t | pars_clustered_token |
ulint | pars_star_denoter |
UNIV_INTERN que_thr_t | warn_unused_result |
#define PARS_FUNC_AGGREGATE 5 |
COUNT, DISTINCT, SUM
Definition at line 817 of file pars0pars.h.
#define PARS_FUNC_ARITH 1 |
Classes of functions +, -, *, /
Definition at line 813 of file pars0pars.h.
#define PARS_FUNC_CMP 3 |
comparison operators
Definition at line 815 of file pars0pars.h.
#define PARS_FUNC_LOGICAL 2 |
AND, OR, NOT
Definition at line 814 of file pars0pars.h.
#define PARS_FUNC_OTHER 6 |
these are not real functions, e.g., :=
Definition at line 818 of file pars0pars.h.
#define PARS_FUNC_PREDEFINED 4 |
TO_NUMBER, SUBSTR, ...
Definition at line 816 of file pars0pars.h.
typedef ibool(* pars_user_func_cb_t)(void *arg, void *user_arg) |
Type of the user functions. The first argument is always InnoDB-supplied
and varies in type, while 'user_arg' is a user-supplied argument. The meaning of the return type also varies. See the individual use cases, e.g. the FETCH statement, for details on them.
Definition at line 41 of file pars0pars.h.
UNIV_INTERN assign_node_t* pars_assignment_statement | ( | sym_node_t * | var, |
que_node_t * | val | ||
) |
Parses an assignment statement.
Parses an assignment statement.
var | in: variable to assign |
val | in: value to assign |
Definition at line 1710 of file pars0pars.cc.
UNIV_INTERN col_assign_node_t* pars_column_assignment | ( | sym_node_t * | column, |
que_node_t * | exp | ||
) |
Parses a column assignment in an update.
Parses a column assignment in an update.
column | in: column to assign |
exp | in: value to assign |
Definition at line 1154 of file pars0pars.cc.
UNIV_INTERN sym_node_t* pars_column_def | ( | sym_node_t * | sym_node, |
pars_res_word_t * | type, | ||
sym_node_t * | len, | ||
void * | is_unsigned, | ||
void * | is_not_null | ||
) |
Parses a column definition at a table creation.
Parses a column definition at a table creation.
sym_node | in: column node in the symbol table |
type | in: data type |
len | in: length of column, or NULL |
is_unsigned | in: if not NULL, column is of type UNSIGNED. |
is_not_null | in: if not NULL, column is of type NOT NULL. |
Definition at line 1890 of file pars0pars.cc.
UNIV_INTERN commit_node_t* pars_commit_statement | ( | void | ) |
Parses a commit statement.
Definition at line 1868 of file pars0pars.cc.
UNIV_INTERN que_thr_t* pars_complete_graph_for_exec | ( | que_node_t * | node, |
trx_t * | trx, | ||
mem_heap_t * | heap | ||
) |
Completes a query graph by adding query thread and fork nodes above it and prepares the graph for running. The fork created is of type QUE_FORK_MYSQL_INTERFACE.
node | in: root node for an incomplete query graph, or NULL for dummy graph |
trx | in: transaction handle |
heap | in: memory heap from which allocated |
UNIV_INTERN ind_node_t* pars_create_index | ( | pars_res_word_t * | unique_def, |
pars_res_word_t * | clustered_def, | ||
sym_node_t * | index_sym, | ||
sym_node_t * | table_sym, | ||
sym_node_t * | column_list | ||
) |
Parses an index creation operation.
Parses an index creation operation.
unique_def | in: not NULL if a unique index |
clustered_def | in: not NULL if a clustered index |
index_sym | in: index name node in the symbol table |
table_sym | in: table name node in the symbol table |
column_list | in: list of column names |
Definition at line 2028 of file pars0pars.cc.
UNIV_INTERN tab_node_t* pars_create_table | ( | sym_node_t * | table_sym, |
sym_node_t * | column_defs, | ||
sym_node_t * | compact, | ||
sym_node_t * | block_size, | ||
void * | not_fit_in_memory | ||
) |
Parses a table creation operation.
table_sym | in: table name node in the symbol table |
column_defs | in: list of column names |
UNIV_INTERN que_node_t* pars_cursor_declaration | ( | sym_node_t * | sym_node, |
sel_node_t * | select_node | ||
) |
Parses a cursor declaration.
Parses a cursor declaration.
sym_node | in: cursor id node in the symbol table |
select_node | in: select node |
Definition at line 1089 of file pars0pars.cc.
UNIV_INTERN elsif_node_t* pars_elsif_element | ( | que_node_t * | cond, |
que_node_t * | stat_list | ||
) |
Parses an elsif element.
Parses an elsif element.
cond | in: if-condition |
stat_list | in: statement list |
Definition at line 1528 of file pars0pars.cc.
UNIV_INTERN exit_node_t* pars_exit_statement | ( | void | ) |
Parses an exit statement.
Definition at line 1675 of file pars0pars.cc.
UNIV_INTERN fetch_node_t* pars_fetch_statement | ( | sym_node_t * | cursor, |
sym_node_t * | into_list, | ||
sym_node_t * | user_func | ||
) |
Parses a fetch statement. into_list or user_func (but not both) must be non-NULL.
Parses a fetch statement. into_list or user_func (but not both) must be non-NULL.
cursor | in: cursor node |
into_list | in: variables to set, or NULL |
user_func | in: user function name, or NULL |
Definition at line 1759 of file pars0pars.cc.
UNIV_INTERN for_node_t* pars_for_statement | ( | sym_node_t * | loop_var, |
que_node_t * | loop_start_limit, | ||
que_node_t * | loop_end_limit, | ||
que_node_t * | stat_list | ||
) |
Parses a for-loop-statement.
Parses a for-loop-statement.
loop_var | in: loop variable |
loop_start_limit | in: loop start expression |
loop_end_limit | in: loop end expression |
stat_list | in: statement list |
Definition at line 1638 of file pars0pars.cc.
UNIV_INTERN func_node_t* pars_func | ( | que_node_t * | res_word, |
que_node_t * | arg | ||
) |
Parses a function expression.
Parses a function expression.
res_word | in: function name reserved word |
arg | in: first argument in the argument list |
Definition at line 269 of file pars0pars.cc.
UNIV_INTERN que_node_t* pars_function_declaration | ( | sym_node_t * | sym_node | ) |
Parses a function declaration.
Parses a function declaration.
sym_node | in: function id node in the symbol table |
Definition at line 1110 of file pars0pars.cc.
UNIV_INTERN int pars_get_lex_chars | ( | char * | buf, |
int | max_size | ||
) |
Retrieves characters to the lexical analyzer.
Retrieves characters to the lexical analyzer.
buf | in/out: buffer where to copy |
max_size | in: maximum number of characters which fit in the buffer |
Definition at line 2149 of file pars0pars.cc.
UNIV_INTERN if_node_t* pars_if_statement | ( | que_node_t * | cond, |
que_node_t * | stat_list, | ||
que_node_t * | else_part | ||
) |
Parses an if-statement.
Parses an if-statement.
cond | in: if-condition |
stat_list | in: statement list |
else_part | in: else-part statement list or elsif element list |
Definition at line 1555 of file pars0pars.cc.
UNIV_INTERN void pars_info_add_id | ( | pars_info_t * | info, |
const char * | name, | ||
const char * | id | ||
) |
Add bound id. in: id
info | in: info struct |
name | in: name |
UNIV_INTERN void pars_info_add_int4_literal | ( | pars_info_t * | info, |
const char * | name, | ||
lint | val | ||
) |
Equivalent to:
char buf[4]; mach_write_to_4(buf, val); pars_info_add_literal(info, name, buf, 4, DATA_INT, 0);
except that the buffer is dynamically allocated from the info struct's heap. in: value
Equivalent to:
char buf[4]; mach_write_to_4(buf, val); pars_info_add_literal(info, name, buf, 4, DATA_INT, 0);
except that the buffer is dynamically allocated from the info struct's heap.
info | in: info struct |
name | in: name |
val | in: value |
Definition at line 2448 of file pars0pars.cc.
UNIV_INTERN void pars_info_add_literal | ( | pars_info_t * | info, |
const char * | name, | ||
const void * | address, | ||
ulint | length, | ||
ulint | type, | ||
ulint | prtype | ||
) |
Add bound literal. in: precise type, e.g. DATA_UNSIGNED
Add bound literal.
info | in: info struct |
name | in: name |
address | in: address |
length | in: length of data |
type | in: type, e.g. DATA_FIXBINARY |
prtype | in: precise type, e.g. DATA_UNSIGNED |
Definition at line 2330 of file pars0pars.cc.
UNIV_INTERN void pars_info_add_str_literal | ( | pars_info_t * | info, |
const char * | name, | ||
const char * | str | ||
) |
Equivalent to pars_info_add_literal(info, name, str, strlen(str), DATA_VARCHAR, DATA_ENGLISH). in: string
Equivalent to pars_info_add_literal(info, name, str, strlen(str), DATA_VARCHAR, DATA_ENGLISH).
info | in: info struct |
name | in: name |
str | in: string |
Definition at line 2370 of file pars0pars.cc.
UNIV_INTERN void pars_info_add_ull_literal | ( | pars_info_t * | info, |
const char * | name, | ||
ib_uint64_t | val | ||
) |
Equivalent to:
char buf[8]; mach_write_to_8(buf, val); pars_info_add_literal(info, name, buf, 8, DATA_FIXBINARY, 0);
except that the buffer is dynamically allocated from the info struct's heap. in: value
Equivalent to:
char buf[8]; mach_write_to_8(buf, val); pars_info_add_literal(info, name, buf, 8, DATA_FIXBINARY, 0);
except that the buffer is dynamically allocated from the info struct's heap.
info | in: info struct |
name | in: name |
val | in: value |
Definition at line 2524 of file pars0pars.cc.
UNIV_INTERN void pars_info_bind_function | ( | pars_info_t * | info, |
const char * | name, | ||
pars_user_func_cb_t | func, | ||
void * | arg | ||
) |
Add user function. in: user-supplied argument
Add user function.
info | in: info struct |
name | in: function name |
func | in: function address |
arg | in: user-supplied argument |
Definition at line 2568 of file pars0pars.cc.
UNIV_INTERN void pars_info_bind_id | ( | pars_info_t * | info, |
ibool | copy_name, | ||
const char * | name, | ||
const char * | id | ||
) |
Add bound id. in: id
info | in: info struct |
name | in: name |
id | in: id |
Definition at line 2603 of file pars0pars.cc.
UNIV_INTERN void pars_info_bind_int4_literal | ( | pars_info_t * | info, |
const char * | name, | ||
const ib_uint32_t * | val | ||
) |
Equivalent to:
char buf[4]; mach_write_to_4(buf, val); pars_info_add_literal(info, name, buf, 4, DATA_INT, 0);
except that the buffer is dynamically allocated from the info struct's heap. in: value
info | in: info struct |
name | in: name |
Definition at line 2465 of file pars0pars.cc.
UNIV_INTERN void pars_info_bind_int8_literal | ( | pars_info_t * | info, |
const char * | name, | ||
const ib_uint64_t * | val | ||
) |
in: value
info | in: info struct |
name | in: name |
Definition at line 2491 of file pars0pars.cc.
UNIV_INTERN void pars_info_bind_ull_literal | ( | pars_info_t * | info, |
const char * | name, | ||
const ib_uint64_t * | val | ||
) |
If the literal value already exists then it rebinds otherwise it creates a new entry.
info | in: info struct |
name | in: name |
val | in: value |
Definition at line 2542 of file pars0pars.cc.
UNIV_INTERN void pars_info_bind_varchar_literal | ( | pars_info_t * | info, |
const char * | name, | ||
const byte * | str, | ||
ulint | str_len | ||
) |
in: string length
info | in: info struct |
name | in: name |
str | in: string |
str_len | in: string length |
Definition at line 2414 of file pars0pars.cc.
UNIV_INTERN pars_info_t* pars_info_create | ( | void | ) |
Create parser info struct.
Definition at line 2296 of file pars0pars.cc.
UNIV_INTERN void pars_info_free | ( | pars_info_t * | info | ) |
Free info struct and everything it contains. in, own: info struct
Free info struct and everything it contains.
info | in, own: info struct |
Definition at line 2319 of file pars0pars.cc.
UNIV_INTERN pars_bound_id_t* pars_info_get_bound_id | ( | pars_info_t * | info, |
const char * | name | ||
) |
Get bound id with the given name.
info | in: info struct |
Definition at line 2640 of file pars0pars.cc.
UNIV_INTERN pars_bound_lit_t* pars_info_get_bound_lit | ( | pars_info_t * | info, |
const char * | name | ||
) |
Get bound literal with the given name.
Get bound literal with the given name.
info | in: info struct |
name | in: bound literal name to find |
Definition at line 2655 of file pars0pars.cc.
UNIV_INTERN ins_node_t* pars_insert_statement | ( | sym_node_t * | table_sym, |
que_node_t * | values_list, | ||
sel_node_t * | select | ||
) |
Parses an insert statement.
Parses an insert statement.
table_sym | in: table name node |
values_list | in: value expression list or NULL |
select | in: select condition or NULL |
Definition at line 1353 of file pars0pars.cc.
UNIV_INTERN void pars_lexer_close | ( | void | ) |
UNIV_INTERN func_node_t* pars_op | ( | int | func, |
que_node_t * | arg1, | ||
que_node_t * | arg2 | ||
) |
Parses an operator expression.
Parses an operator expression.
func | in: operator token code |
arg1 | in: first argument |
arg2 | in: second argument or NULL for an unary operator |
Definition at line 456 of file pars0pars.cc.
UNIV_INTERN open_node_t* pars_open_statement | ( | ulint | type, |
sym_node_t * | cursor | ||
) |
Parses an open or close cursor statement.
Parses an open or close cursor statement.
type | in: ROW_SEL_OPEN_CURSOR or ROW_SEL_CLOSE_CURSOR |
cursor | in: cursor node |
Definition at line 1813 of file pars0pars.cc.
UNIV_INTERN order_node_t* pars_order_by | ( | sym_node_t * | column, |
pars_res_word_t * | asc | ||
) |
Parses an ORDER BY clause. Order by a single column only is supported.
Parses an ORDER BY clause. Order by a single column only is supported.
column | in: column name |
asc | in: &pars_asc_token or pars_desc_token |
Definition at line 491 of file pars0pars.cc.
UNIV_INTERN sym_node_t* pars_parameter_declaration | ( | sym_node_t * | node, |
ulint | param_type, | ||
pars_res_word_t * | type | ||
) |
Parses a procedure parameter declaration.
Parses a procedure parameter declaration.
node | in: symbol table node allocated for the id of the parameter |
param_type | in: PARS_INPUT or PARS_OUTPUT |
type | in: pointer to a type token |
Definition at line 1485 of file pars0pars.cc.
UNIV_INTERN func_node_t* pars_procedure_call | ( | que_node_t * | res_word, |
que_node_t * | args | ||
) |
Parses a procedure call.
Parses a procedure call.
res_word | in: procedure name reserved word |
args | in: argument list |
Definition at line 1739 of file pars0pars.cc.
UNIV_INTERN que_fork_t* pars_procedure_definition | ( | sym_node_t * | sym_node, |
sym_node_t * | param_list, | ||
que_node_t * | stat_list | ||
) |
Parses a procedure definition.
Parses a procedure definition.
sym_node | in: procedure id node in the symbol table |
param_list | in: parameter declaration list |
stat_list | in: statement list |
Definition at line 2085 of file pars0pars.cc.
UNIV_INTERN return_node_t* pars_return_statement | ( | void | ) |
Parses a return-statement.
Definition at line 1692 of file pars0pars.cc.
UNIV_INTERN roll_node_t* pars_rollback_statement | ( | void | ) |
Parses a rollback statement.
Definition at line 1879 of file pars0pars.cc.
UNIV_INTERN row_printf_node_t* pars_row_printf_statement | ( | sel_node_t * | sel_node | ) |
Parses a row_printf-statement.
Parses a row_printf-statement.
sel_node | in: select node |
Definition at line 1845 of file pars0pars.cc.
UNIV_INTERN sel_node_t* pars_select_list | ( | que_node_t * | select_list, |
sym_node_t * | into_list | ||
) |
Parses a select list; creates a query graph node for the whole SELECT statement.
Parses a select list; creates a query graph node for the whole SELECT statement.
select_list | in: select list |
into_list | in: variables list or NULL |
Definition at line 941 of file pars0pars.cc.
UNIV_INTERN sel_node_t* pars_select_statement | ( | sel_node_t * | select_node, |
sym_node_t * | table_list, | ||
que_node_t * | search_cond, | ||
pars_res_word_t * | for_update, | ||
pars_res_word_t * | lock_shared, | ||
order_node_t * | order_by | ||
) |
Parses a select statement.
Parses a select statement.
select_node | in: select node already containing the select list |
table_list | in: table list |
search_cond | in: search condition or NULL |
for_update | in: NULL or &pars_update_token |
lock_shared | in: NULL or &pars_share_token |
order_by | in: NULL or an order-by node |
Definition at line 1006 of file pars0pars.cc.
UNIV_INTERN que_t* pars_sql | ( | pars_info_t * | info, |
const char * | str | ||
) |
Parses an SQL string returning the query graph.
Parses an SQL string returning the query graph.
info | in: extra information, or NULL |
str | in: SQL string |
Definition at line 2212 of file pars0pars.cc.
UNIV_INTERN que_fork_t* pars_stored_procedure_call | ( | sym_node_t * | sym_node | ) |
Parses a stored procedure call, when this is not within another stored procedure, that is, the client issues a procedure call directly. In MySQL/InnoDB, stored InnoDB procedures are invoked via the parsed procedure tree, not via InnoDB SQL, so this function is not used.
UNIV_INTERN upd_node_t* pars_update_statement | ( | upd_node_t * | node, |
sym_node_t * | cursor_sym, | ||
que_node_t * | search_cond | ||
) |
Parses an update or delete statement.
Parses an update or delete statement.
node | in: update node |
cursor_sym | in: pointer to a cursor entry in the symbol table or NULL |
search_cond | in: search condition or NULL |
Definition at line 1267 of file pars0pars.cc.
UNIV_INTERN upd_node_t* pars_update_statement_start | ( | ibool | is_delete, |
sym_node_t * | table_sym, | ||
col_assign_node_t * | col_assign_list | ||
) |
Parses a delete or update statement start.
Parses a delete or update statement start.
is_delete | in: TRUE if delete |
table_sym | in: table name node |
col_assign_list | in: column assignment list, NULL if delete |
Definition at line 1130 of file pars0pars.cc.
UNIV_INTERN sym_node_t* pars_variable_declaration | ( | sym_node_t * | node, |
pars_res_word_t * | type | ||
) |
Parses a variable declaration.
Parses a variable declaration.
node | in: symbol table node allocated for the id of the variable |
type | in: pointer to a type token |
Definition at line 1464 of file pars0pars.cc.
UNIV_INTERN while_node_t* pars_while_statement | ( | que_node_t * | cond, |
que_node_t * | stat_list | ||
) |
Parses a while-statement.
Parses a while-statement.
cond | in: while-condition |
stat_list | in: statement list |
Definition at line 1609 of file pars0pars.cc.
UNIV_INTERN void yyerror | ( | const char * | s | ) |
Called by yyparse on error. in: error message string
ulint pars_star_denoter |
Global variable used to denote the '*' in SELECT * FROM..
Definition at line 97 of file pars0pars.cc.
int yydebug |
If the following is set TRUE, the parser will emit debugging
information