Team Ai
Datasetpublic

codekingpro/portable-devtools

sourceHugging Faceupdated 5mo agoView on Hugging Face
1likes15kdownloads
gin.h92 linesDownload Raw Back to access
1/*--------------------------------------------------------------------------2 * gin.h3 *	  Public header file for Generalized Inverted Index access method.4 *5 *	Copyright (c) 2006-2023, PostgreSQL Global Development Group6 *7 *	src/include/access/gin.h8 *--------------------------------------------------------------------------9 */10#ifndef GIN_H11#define GIN_H12 13#include "access/xlogreader.h"14#include "lib/stringinfo.h"15#include "storage/block.h"16#include "utils/relcache.h"17 18 19/*20 * amproc indexes for inverted indexes.21 */22#define GIN_COMPARE_PROC			   123#define GIN_EXTRACTVALUE_PROC		   224#define GIN_EXTRACTQUERY_PROC		   325#define GIN_CONSISTENT_PROC			   426#define GIN_COMPARE_PARTIAL_PROC	   527#define GIN_TRICONSISTENT_PROC		   628#define GIN_OPTIONS_PROC	   729#define GINNProcs					   730 31/*32 * searchMode settings for extractQueryFn.33 */34#define GIN_SEARCH_MODE_DEFAULT			035#define GIN_SEARCH_MODE_INCLUDE_EMPTY	136#define GIN_SEARCH_MODE_ALL				237#define GIN_SEARCH_MODE_EVERYTHING		3	/* for internal use only */38 39/*40 * GinStatsData represents stats data for planner use41 */42typedef struct GinStatsData43{44	BlockNumber nPendingPages;45	BlockNumber nTotalPages;46	BlockNumber nEntryPages;47	BlockNumber nDataPages;48	int64		nEntries;49	int32		ginVersion;50} GinStatsData;51 52/*53 * A ternary value used by tri-consistent functions.54 *55 * This must be of the same size as a bool because some code will cast a56 * pointer to a bool to a pointer to a GinTernaryValue.57 */58typedef char GinTernaryValue;59 60StaticAssertDecl(sizeof(GinTernaryValue) == sizeof(bool),61				 "sizes of GinTernaryValue and bool are not equal");62 63#define GIN_FALSE		0		/* item is not present / does not match */64#define GIN_TRUE		1		/* item is present / matches */65#define GIN_MAYBE		2		/* don't know if item is present / don't know66								 * if matches */67 68static inline GinTernaryValue69DatumGetGinTernaryValue(Datum X)70{71	return (GinTernaryValue) X;72}73 74static inline Datum75GinTernaryValueGetDatum(GinTernaryValue X)76{77	return (Datum) X;78}79 80#define PG_RETURN_GIN_TERNARY_VALUE(x) return GinTernaryValueGetDatum(x)81 82/* GUC parameters */83extern PGDLLIMPORT int GinFuzzySearchLimit;84extern PGDLLIMPORT int gin_pending_list_limit;85 86/* ginutil.c */87extern void ginGetStats(Relation index, GinStatsData *stats);88extern void ginUpdateStats(Relation index, const GinStatsData *stats,89						   bool is_build);90 91#endif							/* GIN_H */92 
codekingpro/portable-devtools · Team Ai