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

📄 msqld.h

📁 uClinux下用的数据库
💻 H
字号:
/*** msqld Header File	(Shared between msqld modules)*//************************************************************************* Standard header preamble.  Ensure singular inclusion, setup for** function prototypes and c++ inclusion*/#ifndef MSQLD_H#define MSQLD_H 1#if defined(__STDC__) || defined(__cplusplus)#  define __ANSI_PROTO(x)       x#else#  define __ANSI_PROTO(x)       ()#endif#ifdef __cplusplusextern "C" {#endif/************************************************************************* Macro Definitions*/#define MAX_FIELDS	75		/* Max fields per query */#define	PKT_LEN		(128*1024)	/* Max size of client/server packet */#define MAX_ERR_MSG	200		/* Max len of error msg */#define	OFB_SIZE	(128-sizeof(u_int))/* Size of overflow buffers */#define NUM_INDEX	5		/* Max indices per table */#define MAX_INDEX_WIDTH	10		/* Max fields per index */#define CACHE_FDS	(CACHE_SIZE * (NUM_INDEX + 2))#define VC_HEAD_SIZE	(sizeof(int)+sizeof(u_int))#define	MSQL_IDX_AVL	1#define	EQ_OP		1#define	LT_OP		2#define	GT_OP		3#define	NE_OP		4#define	LE_OP		5#define GE_OP		6#define LIKE_OP		7#define NOT_LIKE_OP	8#define RLIKE_OP	9#define CLIKE_OP	10#define SLIKE_OP	11#define NOT_RLIKE_OP	12#define NOT_CLIKE_OP	13#define NOT_SLIKE_OP	14#define BETWEEN_OP	15#define	NO_BOOL		0#define	AND_BOOL	1#define	OR_BOOL		2#define	MEM_ALIGN	4#define NO_POS          0xFFFFFFFF#define QUIT		1#define	INIT_DB		2#define QUERY		3#define DB_LIST		4#define TABLE_LIST	5#define FIELD_LIST	6#define	CREATE_DB	7#define DROP_DB		8#define RELOAD_ACL	9#define SHUTDOWN	10#define INDEX_LIST	11#define	SERVER_STATS	12#define	SEQ_INFO	13#define	MOVE_DB		14#define	COPY_DB		15#define	EXPORT		16#define	EXPLAIN		17#define NO_REMAP	0#define DATA_REMAP	1#define KEY_REMAP	2#define STACK_REMAP	4#define FULL_REMAP	0xffff#define DEST_CLIENT	1#define DEST_TABLE	2#define	NO_ACCESS	0#define	READ_ACCESS	1#define	WRITE_ACCESS	2#define RW_ACCESS	READ_ACCESS | WRITE_ACCESS#define	IGNORE_IDENT	1#define KEEP_IDENT	0#define	NO_EXPLAIN	0#define	DO_EXPLAIN	1#define	QUERY_FIELDS_ONLY 1#define ALL_FIELDS 2#define MALLOC_BLK      1#define MMAP_BLK        2#define HEADER_SIZE     sizeof(hdr_t)#define SBLK_SIZE       sizeof(sblk_t)#define	BOOL_FALSE	0#define BOOL_TRUE	1#define safeFree(x)	if(x)free(x)/* inlined, unaligned, 4-byte copy */#define bcopy4(s,d) \      ((((unsigned char *)d)[0] = ((unsigned char *)s)[0]), \       (((unsigned char *)d)[1] = ((unsigned char *)s)[1]), \       (((unsigned char *)d)[2] = ((unsigned char *)s)[2]), \       (((unsigned char *)d)[3] = ((unsigned char *)s)[3]))/* inlined, unaligned, 8-byte copy */#define bcopy8(s,d) \      ((((unsigned char *)d)[0] = ((unsigned char *)s)[0]), \       (((unsigned char *)d)[1] = ((unsigned char *)s)[1]), \       (((unsigned char *)d)[2] = ((unsigned char *)s)[2]), \       (((unsigned char *)d)[3] = ((unsigned char *)s)[3]), \       (((unsigned char *)d)[4] = ((unsigned char *)s)[4]), \       (((unsigned char *)d)[5] = ((unsigned char *)s)[5]), \       (((unsigned char *)d)[6] = ((unsigned char *)s)[6]), \       (((unsigned char *)d)[7] = ((unsigned char *)s)[7]))/************************************************************************* Type Definitions*/typedef struct {        unsigned long   high,                        low;} i64_t;typedef struct ident_s {        char    	seg1[NAME_LEN + 1],                	seg2[NAME_LEN + 1];} mIdent_t;typedef struct val_s {        struct val_u {                int     intVal;/* #ifdef HUGE_T */		HUGE_T	int64Val;/* #endif */                u_char  *charVal;                double  realVal;                 mIdent_t *identVal;		void	*byteVal;        } val;        int     	type,                	nullVal,                	dataLen;        char    	precision;} mVal_t;typedef struct tname_s {	char		name[NAME_LEN + 1],			cname[NAME_LEN + 1];	int		done;	struct tname_s 	*next;} mTable_t;typedef struct finfo_ps {	char 		name[NAME_LEN + 1],			outputName[NAME_LEN + 1];	int		functNum,			flist[MAX_FIELDS + 1],			returnType,			functType,			sequence;	struct field_ps	*paramHead,			*paramTail;} mFinfo_t;typedef struct field_ps {			char		table[NAME_LEN + 1],			name[NAME_LEN + 1];	mVal_t 		*value;	mFinfo_t	*function;	int		type,			sysvar,			length,			dataLength,			offset,			null,			flags,			fieldID,			literalParamFlag,			functResultFlag;	u_int		overflow;	void		*entry;	struct field_ps *next;} mField_t;/*** Insert value structures (for single and bulk inserts)*/typedef struct val_list_s {	int		offset;	mVal_t 		*value;	struct val_list_s *next;} mValList_t;/* ** Where clause list element */typedef struct cond_s {				char		table[NAME_LEN + 1],			name[NAME_LEN + 1];	int     	clist[MAX_FIELDS];	/* only used in the head */	mVal_t 		*value,			*maxValue;	int		op,			bool,			type,			length,			sysvar,			fieldID;	struct cond_s 	*next,			*subCond;} mCond_t;/* ** Order clause list element */typedef struct order_s {			char		table[NAME_LEN + 1],			name[NAME_LEN + 1];	int		dir,			type,			length;	void		*entry;	struct order_s 	*next;} mOrder_t;typedef struct seq_s {	char		table[NAME_LEN + 1];	int		step;	u_int		value;} mSeq_t;/*** Shared config info*/typedef struct gconfig_s {	char		*instDir,			*dbDir;	int		readOnly,			sortMaxMem,			tableCache,			cacheDescriptors,			msyncTimer,			hasBroker,			needFileLock;} mConfig_t;/************************************************************************* Type Definitions*//*** On-disk data structures*//* Table row header struct */typedef struct  hdr_s {        char    	active;        time_t  	timestamp;} hdr_t;/* Table row struct */typedef struct row_s {        int     	rowID;        hdr_t   	*header;        u_char  	*data,                	*buf;} row_t;/* Atomic sequence structure */typedef struct {        int     	step;        u_int   	value;} seq_t;/* Data file superblock */typedef struct sblk_s {        char    	version;        u_int   	freeList;        u_int   	numRows;        u_int   	activeRows;        seq_t   	sequence;	off_t		dataSize;} sblk_t;/*** Internal index structure*/typedef struct mindex_s {        char    	table[NAME_LEN + 1],                	name[NAME_LEN + 1],                	unique,                 	*buf;        int     	fields[MAX_INDEX_WIDTH + 1],                	length,                	fieldCount,                	idxType,                	keyType;        idx_hnd 	handle;        idx_env 	environ;        struct mindex_s *next;} mIndex_t; /*** Structures used by the parser (and everything else)*/typedef struct cstk_s {        mCond_t  	*head,                	*tail;        struct cstk_s	*next;} cstk_t;typedef struct {	int		command,			rowLimit,			rowOffset,			selectWildcard,			selectDistinct,			explainOnly,			clientSock,			fieldCount,			queryTime,			functSeq,			numConds;	char		*targetTable,			*curDB,			*curUser;	mTable_t	*tableHead, *tableTail;	mField_t	*fieldHead, *fieldTail, *lastField;	mCond_t		*condHead, *condTail;	mOrder_t	*orderHead, *orderTail;	mIndex_t	indexDef;	mSeq_t		sequenceDef;	mValList_t	*insertValHead, *insertValTail;	char		*queryText;} mQuery_t;/*** Connection tracking structure*/typedef struct cinfo_s {        char    	*db,                	*host,                	*user,			*clientIP;        int     	access,                	sock;        u_int   	connectTime,                	lastQuery,                	numQueries;} cinfo_t;/*** Table cache structure*/typedef struct cache_s {        char    	db[NAME_LEN + 1],                	cname[NAME_LEN + 1],                	table[NAME_LEN + 1],                	resInfo[4 * (NAME_LEN+1)],                	dirty;        row_t   	row;        int     	age,                	dataFD,                	overflowFD,                	rowDataLen,                	rowLen,                	result;        mField_t 	*def;        mIndex_t 	*indices;        int     	remapData,                	remapOverflow;        caddr_t 	dataMap,                	overflowMap;        off_t   	size,                	overflowSize;        sblk_t  	*sblk;} cache_t;/************************************************************************* Function Prototypes*//************************************************************************* Standard header file footer.  */#ifdef __cplusplus	}#endif /* __cplusplus */#endif /* file inclusion */

⌨️ 快捷键说明

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