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

📄 que0que.ic

📁 这是linux下运行的mysql软件包,可用于linux 下安装 php + mysql + apach 的网络配置
💻 IC
字号:
/******************************************************Query graph(c) 1996 Innobase OyCreated 5/27/1996 Heikki Tuuri*******************************************************/#include "usr0sess.h"/***************************************************************************Gets the trx of a query thread. */UNIV_INLINEtrx_t*thr_get_trx(/*========*/	que_thr_t*	thr)	/* in: query thread */{	ut_ad(thr);	return(thr->graph->trx);}/***************************************************************************Gets the first thr in a fork. */UNIV_INLINEque_thr_t*que_fork_get_first_thr(/*===================*/	que_fork_t*	fork) 	/* in: query fork */{	return(UT_LIST_GET_FIRST(fork->thrs));}/***************************************************************************Gets the child node of the first thr in a fork. */UNIV_INLINEque_node_t*que_fork_get_child(/*===============*/	que_fork_t*	fork) 	/* in: query fork */{	que_thr_t*	thr;	thr = UT_LIST_GET_FIRST(fork->thrs);	return(thr->child);}/***************************************************************************Gets the type of a graph node. */UNIV_INLINEulintque_node_get_type(/*==============*/	que_node_t*	node)	/* in: graph node */{	ut_ad(node);	return(((que_common_t*)node)->type);}/***************************************************************************Gets pointer to the value dfield of a graph node. */UNIV_INLINEdfield_t*que_node_get_val(/*=============*/	que_node_t*	node)	/* in: graph node */{	ut_ad(node);	return(&(((que_common_t*)node)->val));}/***************************************************************************Gets the value buffer size of a graph node. */UNIV_INLINEulintque_node_get_val_buf_size(/*======================*/				/* out: val buffer size, not defined if				val.data == NULL in node */	que_node_t*	node)	/* in: graph node */{	ut_ad(node);	return(((que_common_t*)node)->val_buf_size);}/***************************************************************************Sets the value buffer size of a graph node. */UNIV_INLINEvoidque_node_set_val_buf_size(/*======================*/	que_node_t*	node,	/* in: graph node */	ulint		size)	/* in: size */{	ut_ad(node);	((que_common_t*)node)->val_buf_size = size;}/***************************************************************************Sets the parent of a graph node. */UNIV_INLINEvoidque_node_set_parent(/*================*/	que_node_t*	node,	/* in: graph node */	que_node_t*	parent)	/* in: parent */{	ut_ad(node);	((que_common_t*)node)->parent = parent;}/***************************************************************************Gets pointer to the value data type field of a graph node. */UNIV_INLINEdtype_t*que_node_get_data_type(/*===================*/	que_node_t*	node)	/* in: graph node */{	ut_ad(node);	return(&(((que_common_t*)node)->val.type));}/*************************************************************************Catenates a query graph node to a list of them, possible empty list. */UNIV_INLINEque_node_t*que_node_list_add_last(/*===================*/					/* out: one-way list of nodes */	que_node_t*	node_list,	/* in: node list, or NULL */	que_node_t*	node)		/* in: node */{	que_common_t*	cnode;	que_common_t*	cnode2;	cnode = node;		cnode->brother = NULL;	if (node_list == NULL) {		return(node);	}	cnode2 = node_list;		while (cnode2->brother != NULL) {		cnode2 = cnode2->brother;	}	cnode2->brother = node;	return(node_list);}/*************************************************************************Gets the next list node in a list of query graph nodes. */UNIV_INLINEque_node_t*que_node_get_next(/*==============*/				/* out: next node in a list of nodes */	que_node_t*	node)	/* in: node in a list */{	return(((que_common_t*)node)->brother);}/*************************************************************************Gets a query graph node list length. */UNIV_INLINEulintque_node_list_get_len(/*==================*/					/* out: length, for NULL list 0 */	que_node_t*	node_list)	/* in: node list, or NULL */{	que_common_t*	cnode;	ulint		len;	cnode = node_list;	len = 0;		while (cnode != NULL) {		len++;		cnode = cnode->brother;	}	return(len);}/*************************************************************************Gets the parent node of a query graph node. */UNIV_INLINEque_node_t*que_node_get_parent(/*================*/				/* out: parent node or NULL */	que_node_t*	node)	/* in: node */{	return(((que_common_t*)node)->parent);}/**************************************************************************Checks if graph, trx, or session is in a state where the query thread shouldbe stopped. */UNIV_INLINEiboolque_thr_peek_stop(/*==============*/				/* out: TRUE if should be stopped; NOTE that				if the peek is made without reserving the				kernel mutex, then another peek with the				mutex reserved is necessary before deciding				the actual stopping */	que_thr_t*	thr)	/* in: query thread */{	trx_t*	trx;	que_t*	graph;	graph = thr->graph;	trx = graph->trx;		if (graph->state != QUE_FORK_ACTIVE	    || trx->que_state == TRX_QUE_LOCK_WAIT	    || (UT_LIST_GET_LEN(trx->signals) > 0				&& trx->que_state == TRX_QUE_RUNNING)) {		return(TRUE);	}	return(FALSE);}/***************************************************************************Returns TRUE if the query graph is for a SELECT statement. */UNIV_INLINEiboolque_graph_is_select(/*================*/					/* out: TRUE if a select */	que_t*		graph)		/* in: graph */{	if (graph->fork_type == QUE_FORK_SELECT_SCROLL			|| graph->fork_type == QUE_FORK_SELECT_NON_SCROLL) {	    	return(TRUE);	}	return(FALSE);}

⌨️ 快捷键说明

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