strat.h

来自「PostgreSQL7.4.6 for Linux」· C头文件 代码 · 共 91 行

H
91
字号
/*------------------------------------------------------------------------- * * strat.h *	  index strategy type definitions *	  (separated out from original istrat.h to avoid circular refs) * * * Portions Copyright (c) 1996-2003, PostgreSQL Global Development Group * Portions Copyright (c) 1994, Regents of the University of California * * $Id: strat.h,v 1.27 2003/08/04 02:40:10 momjian Exp $ * *------------------------------------------------------------------------- */#ifndef STRAT_H#define STRAT_H#include "access/skey.h"typedef uint16 StrategyNumber;#define InvalidStrategy 0typedef struct StrategyTransformMapData{	StrategyNumber strategy[1]; /* VARIABLE LENGTH ARRAY */} StrategyTransformMapData;		/* VARIABLE LENGTH STRUCTURE */typedef StrategyTransformMapData *StrategyTransformMap;typedef struct StrategyOperatorData{	StrategyNumber strategy;	bits16		flags;			/* scan qualification flags, see skey.h */} StrategyOperatorData;typedef StrategyOperatorData *StrategyOperator;typedef struct StrategyTermData{								/* conjunctive term */	uint16		degree;	StrategyOperatorData operatorData[1];		/* VARIABLE LENGTH ARRAY */} StrategyTermData;				/* VARIABLE LENGTH STRUCTURE */typedef StrategyTermData *StrategyTerm;typedef struct StrategyExpressionData{								/* disjunctive normal form */	StrategyTerm term[1];		/* VARIABLE LENGTH ARRAY */} StrategyExpressionData;		/* VARIABLE LENGTH STRUCTURE */typedef StrategyExpressionData *StrategyExpression;typedef struct StrategyEvaluationData{	StrategyNumber maxStrategy;	/* each of these must point to an array of maxStrategy elements: */	StrategyTransformMap negateTransform;	StrategyTransformMap commuteTransform;	StrategyTransformMap negateCommuteTransform;	StrategyExpression *expression;} StrategyEvaluationData;typedef StrategyEvaluationData *StrategyEvaluation;/* * StrategyTransformMapIsValid *		Returns true iff strategy transformation map is valid. */#define StrategyTransformMapIsValid(transform) PointerIsValid(transform)#define AMStrategies(foo)		(foo)typedef struct StrategyMapData{	ScanKeyData entry[1];		/* VARIABLE LENGTH ARRAY */} StrategyMapData;				/* VARIABLE LENGTH STRUCTURE */typedef StrategyMapData *StrategyMap;typedef struct IndexStrategyData{	StrategyMapData strategyMapData[1]; /* VARIABLE LENGTH ARRAY */} IndexStrategyData;			/* VARIABLE LENGTH STRUCTURE */typedef IndexStrategyData *IndexStrategy;#endif   /* STRAT_H */

⌨️ 快捷键说明

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