⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 pars0pars.h

📁 这是linux下运行的mysql软件包,可用于linux 下安装 php + mysql + apach 的网络配置
💻 H
📖 第 1 页 / 共 2 页
字号:
/******************************************************SQL parser(c) 1996 Innobase OyCreated 11/19/1996 Heikki Tuuri*******************************************************/#ifndef pars0pars_h#define pars0pars_h#include "univ.i"#include "que0types.h"#include "usr0types.h"#include "pars0types.h"#include "row0types.h"#include "trx0types.h"extern int	yydebug;/* If the following is set TRUE, the lexer will print the SQL stringas it tokenizes it */#ifdef UNIV_SQL_DEBUGextern ibool	pars_print_lexed;#endif /* UNIV_SQL_DEBUG *//* Global variable used while parsing a single procedure or query : the code isNOT re-entrant */extern sym_tab_t*	pars_sym_tab_global;extern pars_res_word_t	pars_to_char_token;extern pars_res_word_t	pars_to_number_token;extern pars_res_word_t	pars_to_binary_token;extern pars_res_word_t	pars_binary_to_number_token;extern pars_res_word_t	pars_substr_token;extern pars_res_word_t	pars_replstr_token;extern pars_res_word_t	pars_concat_token;extern pars_res_word_t	pars_length_token;extern pars_res_word_t	pars_instr_token;extern pars_res_word_t	pars_sysdate_token;extern pars_res_word_t	pars_printf_token;extern pars_res_word_t	pars_assert_token;extern pars_res_word_t	pars_rnd_token;extern pars_res_word_t	pars_rnd_str_token;extern pars_res_word_t	pars_count_token;extern pars_res_word_t	pars_sum_token;extern pars_res_word_t	pars_distinct_token;extern pars_res_word_t	pars_int_token;extern pars_res_word_t	pars_char_token;extern pars_res_word_t	pars_float_token;extern pars_res_word_t	pars_update_token;extern pars_res_word_t	pars_asc_token;extern pars_res_word_t	pars_desc_token;extern pars_res_word_t	pars_open_token;extern pars_res_word_t	pars_close_token;extern pars_res_word_t	pars_consistent_token;extern pars_res_word_t	pars_unique_token;extern pars_res_word_t	pars_clustered_token;extern ulint		pars_star_denoter;	/* Procedure parameter types */#define PARS_INPUT	0#define PARS_OUTPUT	1#define PARS_NOT_PARAM	2intyyparse(void);/*****************************************************************Parses an SQL string returning the query graph. */que_t*pars_sql(/*=====*/				/* out, own: the query graph */	const char*	str);	/* in: SQL string *//*****************************************************************Retrieves characters to the lexical analyzer. */voidpars_get_lex_chars(/*===============*/	char*	buf,		/* in/out: buffer where to copy */	int*	result,		/* out: number of characters copied or EOF */	int	max_size);	/* in: maximum number of characters which fit				in the buffer *//*****************************************************************Called by yyparse on error. */voidyyerror(/*====*/	const char*	s);	/* in: error message string *//*************************************************************************Parses a variable declaration. */sym_node_t*pars_variable_declaration(/*======================*/				/* out, own: symbol table node of type				SYM_VAR */	sym_node_t*	node,	/* in: symbol table node allocated for the				id of the variable */	pars_res_word_t* type);	/* in: pointer to a type token *//*************************************************************************Parses a function expression. */func_node_t*pars_func(/*======*/				/* out, own: function node in a query tree */	que_node_t* 	res_word,/* in: function name reserved word */	que_node_t*	arg);	/* in: first argument in the argument list *//*************************************************************************Parses an operator expression. */func_node_t*pars_op(/*====*/				/* out, own: function node in a query tree */	int		func,	/* in: operator token code */	que_node_t*	arg1,	/* in: first argument */	que_node_t*	arg2);	/* in: second argument or NULL for an unary				operator *//*************************************************************************Parses an ORDER BY clause. Order by a single column only is supported. */order_node_t*pars_order_by(/*==========*/				/* out, own: order-by node in a query tree */	sym_node_t*	column,	/* in: column name */	pars_res_word_t* asc);	/* in: &pars_asc_token or pars_desc_token *//*************************************************************************Parses a select list; creates a query graph node for the whole SELECTstatement. */sel_node_t*pars_select_list(/*=============*/					/* out, own: select node in a query					tree */	que_node_t*	select_list,	/* in: select list */	sym_node_t*	into_list);	/* in: variables list or NULL *//*************************************************************************Parses a cursor declaration. */que_node_t*pars_cursor_declaration(/*====================*/					/* out: sym_node */	sym_node_t*	sym_node,	/* in: cursor id node in the symbol					table */	sel_node_t*	select_node);	/* in: select node *//*************************************************************************Parses a select statement. */sel_node_t*pars_select_statement(/*==================*/					/* out, own: select node in a query					tree */	sel_node_t*	select_node,	/* in: select node already containing					the select list */	sym_node_t*	table_list,	/* in: table list */	que_node_t*	search_cond,	/* in: search condition or NULL */	pars_res_word_t* for_update,	/* in: NULL or &pars_update_token */	pars_res_word_t* consistent_read,/* in: NULL or						&pars_consistent_token */	order_node_t*	order_by);	/* in: NULL or an order-by node *//*************************************************************************Parses a column assignment in an update. */col_assign_node_t*pars_column_assignment(/*===================*/				/* out: column assignment node */	sym_node_t*	column,	/* in: column to assign */	que_node_t*	exp);	/* in: value to assign *//*************************************************************************Parses a delete or update statement start. */upd_node_t*pars_update_statement_start(/*========================*/					/* out, own: update node in a query					tree */	ibool		is_delete,	/* in: TRUE if delete */	sym_node_t*	table_sym,	/* in: table name node */	col_assign_node_t* col_assign_list);/* in: column assignment list, NULL					if delete */	/*************************************************************************Parses an update or delete statement. */upd_node_t*pars_update_statement(/*==================*/					/* out, own: update node in a query					tree */	upd_node_t*	node,		/* in: update node */	sym_node_t*	cursor_sym,	/* in: pointer to a cursor entry in					the symbol table or NULL */	que_node_t*	search_cond);	/* in: search condition or NULL *//*************************************************************************Parses an insert statement. */ins_node_t*pars_insert_statement(/*==================*/					/* out, own: update node in a query					tree */	sym_node_t*	table_sym,	/* in: table name node */	que_node_t* 	values_list,	/* in: value expression list or NULL */	sel_node_t*	select);	/* in: select condition or NULL *//*************************************************************************Parses a procedure parameter declaration. */sym_node_t*pars_parameter_declaration(/*=======================*/				/* out, own: symbol table node of type				SYM_VAR */	sym_node_t*	node,	/* in: symbol table node allocated for the				id of the parameter */	ulint		param_type,				/* in: PARS_INPUT or PARS_OUTPUT */	pars_res_word_t* type);	/* in: pointer to a type token *//*************************************************************************Parses an elsif element. */elsif_node_t*pars_elsif_element(/*===============*/					/* out: elsif node */	que_node_t*	cond,		/* in: if-condition */	que_node_t*	stat_list);	/* in: statement list *//*************************************************************************Parses an if-statement. */if_node_t*pars_if_statement(/*==============*/					/* out: if-statement node */	que_node_t*	cond,		/* in: if-condition */	que_node_t*	stat_list,	/* in: statement list */	que_node_t*	else_part);	/* in: else-part statement list *//*************************************************************************Parses a for-loop-statement. */for_node_t*pars_for_statement(/*===============*/					/* out: for-statement node */	sym_node_t*	loop_var,	/* in: loop variable */	que_node_t*	loop_start_limit,/* in: loop start expression */	que_node_t*	loop_end_limit,	/* in: loop end expression */	que_node_t*	stat_list);	/* in: statement list *//*************************************************************************Parses a while-statement. */while_node_t*pars_while_statement(

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -