PostgreSQL Source Code git master
Loading...
Searching...
No Matches
gin_tuple.h File Reference
#include "access/ginblock.h"
#include "storage/itemptr.h"
#include "utils/sortsupport.h"
Include dependency graph for gin_tuple.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Data Structures

struct  GinTuple
 

Typedefs

typedef struct GinTuple GinTuple
 

Functions

static ItemPointer GinTupleGetFirst (GinTuple *tup)
 
int _gin_compare_tuples (GinTuple *a, GinTuple *b, SortSupport ssup)
 

Typedef Documentation

◆ GinTuple

Function Documentation

◆ _gin_compare_tuples()

int _gin_compare_tuples ( GinTuple a,
GinTuple b,
SortSupport  ssup 
)
extern

Definition at line 2435 of file gininsert.c.

2436{
2437 int r;
2438 Datum keya,
2439 keyb;
2440
2441 if (a->attrnum < b->attrnum)
2442 return -1;
2443
2444 if (a->attrnum > b->attrnum)
2445 return 1;
2446
2447 if (a->category < b->category)
2448 return -1;
2449
2450 if (a->category > b->category)
2451 return 1;
2452
2453 if (a->category == GIN_CAT_NORM_KEY)
2454 {
2457
2458 r = ApplySortComparator(keya, false,
2459 keyb, false,
2460 &ssup[a->attrnum - 1]);
2461
2462 /* if the key is the same, consider the first TID in the array */
2463 return (r != 0) ? r : ItemPointerCompare(GinTupleGetFirst(a),
2465 }
2466
2469}
static ItemPointer GinTupleGetFirst(GinTuple *tup)
Definition gin_tuple.h:35
#define GIN_CAT_NORM_KEY
Definition ginblock.h:208
static Datum _gin_parse_tuple_key(GinTuple *a)
Definition gininsert.c:2382
int b
Definition isn.c:74
int a
Definition isn.c:73
int32 ItemPointerCompare(const ItemPointerData *arg1, const ItemPointerData *arg2)
Definition itemptr.c:51
uint64_t Datum
Definition postgres.h:70
static int fb(int x)
static int ApplySortComparator(Datum datum1, bool isNull1, Datum datum2, bool isNull2, SortSupport ssup)

References _gin_parse_tuple_key(), a, ApplySortComparator(), b, fb(), GIN_CAT_NORM_KEY, GinTupleGetFirst(), and ItemPointerCompare().

Referenced by comparetup_index_gin().

◆ GinTupleGetFirst()

static ItemPointer GinTupleGetFirst ( GinTuple tup)
inlinestatic

Definition at line 35 of file gin_tuple.h.

36{
38
39 list = (GinPostingList *) SHORTALIGN(tup->data + tup->keylen);
40
41 return &list->first;
42}
#define SHORTALIGN(LEN)
Definition c.h:834

References fb(), and SHORTALIGN.

Referenced by _gin_compare_tuples(), and GinBufferShouldTrim().