indexvalid.c

来自「PostgreSQL7.4.6 for Linux」· C语言 代码 · 共 74 行

C
74
字号
/*------------------------------------------------------------------------- * * indexvalid.c *	  index tuple qualification validity checking code * * Portions Copyright (c) 1996-2003, PostgreSQL Global Development Group * Portions Copyright (c) 1994, Regents of the University of California * * * IDENTIFICATION *	  $Header: /cvsroot/pgsql/src/backend/access/common/indexvalid.c,v 1.29 2003/08/04 02:39:56 momjian Exp $ * *------------------------------------------------------------------------- */#include "postgres.h"#include "access/iqual.h"#include "executor/execdebug.h"/* ---------------------------------------------------------------- *				  index scan key qualification code * ---------------------------------------------------------------- */int			NIndexTupleProcessed;/* ---------------- *		index_keytest - does this index tuple satisfy the scan key(s)? * ---------------- */boolindex_keytest(IndexTuple tuple,			  TupleDesc tupdesc,			  int scanKeySize,			  ScanKey key){	IncrIndexProcessed();	while (scanKeySize > 0)	{		Datum		datum;		bool		isNull;		Datum		test;		datum = index_getattr(tuple,							  key->sk_attno,							  tupdesc,							  &isNull);		if (isNull)		{			/* XXX eventually should check if SK_ISNULL */			return false;		}		if (key->sk_flags & SK_ISNULL)			return false;		if (key->sk_flags & SK_COMMUTE)			test = FunctionCall2(&key->sk_func, key->sk_argument, datum);		else			test = FunctionCall2(&key->sk_func, datum, key->sk_argument);		if (DatumGetBool(test) == !!(key->sk_flags & SK_NEGATE))			return false;		key++;		scanKeySize--;	}	return true;}

⌨️ 快捷键说明

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