blob: 702f7d12889d812d43c9be8ff31042459ce9f240 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
|
/*--------------------------------------------------------------------------
* gin.h
* Public header file for Generalized Inverted Index access method.
*
* Copyright (c) 2006-2025, PostgreSQL Global Development Group
*
* src/include/access/gin.h
*--------------------------------------------------------------------------
*/
#ifndef GIN_TUPLE_H
#define GIN_TUPLE_H
#include "access/ginblock.h"
#include "storage/itemptr.h"
#include "utils/sortsupport.h"
/*
* Data for one key in a GIN index.
*/
typedef struct GinTuple
{
int tuplen; /* length of the whole tuple */
OffsetNumber attrnum; /* attnum of index key */
uint16 keylen; /* bytes in data for key value */
int16 typlen; /* typlen for key */
bool typbyval; /* typbyval for key */
signed char category; /* category: normal or NULL? */
int nitems; /* number of TIDs in the data */
char data[FLEXIBLE_ARRAY_MEMBER];
} GinTuple;
static inline ItemPointer
GinTupleGetFirst(GinTuple *tup)
{
GinPostingList *list;
list = (GinPostingList *) SHORTALIGN(tup->data + tup->keylen);
return &list->first;
}
extern int _gin_compare_tuples(GinTuple *a, GinTuple *b, SortSupport ssup);
#endif /* GIN_TUPLE_H */
|