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

📄 nbtstrat.c

📁 关系型数据库 Postgresql 6.5.2
💻 C
字号:
/*------------------------------------------------------------------------- * * btstrat.c *	  Srategy map entries for the btree indexed access method * * Copyright (c) 1994, Regents of the University of California * * * IDENTIFICATION *	  $Header: /usr/local/cvsroot/pgsql/src/backend/access/nbtree/nbtstrat.c,v 1.8.2.1 1999/08/02 05:24:42 scrappy Exp $ * *------------------------------------------------------------------------- */#include "postgres.h"#include "access/istrat.h"#include "access/nbtree.h"/* * Note: *		StrategyNegate, StrategyCommute, and StrategyNegateCommute *		assume <, <=, ==, >=, > ordering. */static StrategyNumber BTNegate[5] = {	BTGreaterEqualStrategyNumber,	BTGreaterStrategyNumber,	InvalidStrategy,	BTLessStrategyNumber,	BTLessEqualStrategyNumber};static StrategyNumber BTCommute[5] = {	BTGreaterStrategyNumber,	BTGreaterEqualStrategyNumber,	InvalidStrategy,	BTLessEqualStrategyNumber,	BTLessStrategyNumber};static StrategyNumber BTNegateCommute[5] = {	BTLessEqualStrategyNumber,	BTLessStrategyNumber,	InvalidStrategy,	BTGreaterStrategyNumber,	BTGreaterEqualStrategyNumber};static uint16 BTLessTermData[] = {		/* XXX type clash */	2,	BTLessStrategyNumber,	SK_NEGATE,	BTLessStrategyNumber,	SK_NEGATE | SK_COMMUTE};static uint16 BTLessEqualTermData[] = { /* XXX type clash */	2,	BTLessEqualStrategyNumber,	0x0,	BTLessEqualStrategyNumber,	SK_COMMUTE};static uint16 BTGreaterEqualTermData[] = {		/* XXX type clash */	2,	BTGreaterEqualStrategyNumber,	0x0,	BTGreaterEqualStrategyNumber,	SK_COMMUTE};static uint16 BTGreaterTermData[] = {	/* XXX type clash */	2,	BTGreaterStrategyNumber,	SK_NEGATE,	BTGreaterStrategyNumber,	SK_NEGATE | SK_COMMUTE};static StrategyTerm BTEqualExpressionData[] = {	(StrategyTerm) BTLessTermData,		/* XXX */	(StrategyTerm) BTLessEqualTermData, /* XXX */	(StrategyTerm) BTGreaterEqualTermData,		/* XXX */	(StrategyTerm) BTGreaterTermData,	/* XXX */	NULL};static StrategyEvaluationData BTEvaluationData = {	/* XXX static for simplicity */	BTMaxStrategyNumber,	(StrategyTransformMap) BTNegate,	/* XXX */	(StrategyTransformMap) BTCommute,	/* XXX */	(StrategyTransformMap) BTNegateCommute,		/* XXX */	{NULL, NULL, (StrategyExpression) BTEqualExpressionData, NULL, NULL,	NULL, NULL, NULL, NULL, NULL, NULL, NULL}};/* ---------------------------------------------------------------- *		RelationGetBTStrategy * ---------------------------------------------------------------- */StrategyNumber_bt_getstrat(Relation rel,			 AttrNumber attno,			 RegProcedure proc){	StrategyNumber strat;	strat = RelationGetStrategy(rel, attno, &BTEvaluationData, proc);	Assert(StrategyNumberIsValid(strat));	return strat;}bool_bt_invokestrat(Relation rel,				AttrNumber attno,				StrategyNumber strat,				Datum left,				Datum right){	return (RelationInvokeStrategy(rel, &BTEvaluationData, attno, strat,								   left, right));}

⌨️ 快捷键说明

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