PostgreSQL Source Code: src/include/access/gin_tuple.h Source File

PostgreSQL Source Code git master
gin_tuple.h
Go to the documentation of this file.
1/*--------------------------------------------------------------------------
2 * gin_tuple.h
3 * Public header file for Generalized Inverted Index access method.
4 *
5 * Copyright (c) 2006-2025, PostgreSQL Global Development Group
6 *
7 * src/include/access/gin_tuple.h
8 *--------------------------------------------------------------------------
9 */
10#ifndef GIN_TUPLE_H
11#define GIN_TUPLE_H
12
13#include "access/ginblock.h"
14#include "storage/itemptr.h"
15#include "utils/sortsupport.h"
16
17/*
18 * Data for one key in a GIN index. (This is not the permanent in-index
19 * representation, but just a convenient format to use during the tuplesort
20 * stage of building a new GIN index.)
21 */
22 typedef struct GinTuple
23{
24 int tuplen; /* length of the whole tuple */
25 OffsetNumber attrnum; /* attnum of index key */
26 uint16 keylen; /* bytes in data for key value */
27 int16 typlen; /* typlen for key */
28 bool typbyval; /* typbyval for key */
29 signed char category; /* category: normal or NULL? */
30 int nitems; /* number of TIDs in the data */
31 char data[FLEXIBLE_ARRAY_MEMBER];
32 } GinTuple;
33
34static inline ItemPointer
35 GinTupleGetFirst(GinTuple *tup)
36{
37 GinPostingList *list;
38
39 list = (GinPostingList *) SHORTALIGN(tup->data + tup->keylen);
40
41 return &list->first;
42}
43
44extern int _gin_compare_tuples(GinTuple *a, GinTuple *b, SortSupport ssup);
45
46#endif /* GIN_TUPLE_H */
#define FLEXIBLE_ARRAY_MEMBER
Definition: c.h:470
int16_t int16
Definition: c.h:533
#define SHORTALIGN(LEN)
Definition: c.h:806
uint16_t uint16
Definition: c.h:537
int _gin_compare_tuples(GinTuple *a, GinTuple *b, SortSupport ssup)
Definition: gininsert.c:2405
struct GinTuple GinTuple
static ItemPointer GinTupleGetFirst(GinTuple *tup)
Definition: gin_tuple.h:35
b
int b
Definition: isn.c:74
a
int a
Definition: isn.c:73
uint16 OffsetNumber
Definition: off.h:24
char data[FLEXIBLE_ARRAY_MEMBER]
Definition: gin_tuple.h:31
int nitems
Definition: gin_tuple.h:30
int16 typlen
Definition: gin_tuple.h:27
bool typbyval
Definition: gin_tuple.h:28
signed char category
Definition: gin_tuple.h:29
int tuplen
Definition: gin_tuple.h:24
uint16 keylen
Definition: gin_tuple.h:26
OffsetNumber attrnum
Definition: gin_tuple.h:25

AltStyle によって変換されたページ (->オリジナル) /