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 2434 of file gininsert.c.

2435{
2436 int r;
2437 Datum keya,
2438 keyb;
2439
2440 if (a->attrnum < b->attrnum)
2441 return -1;
2442
2443 if (a->attrnum > b->attrnum)
2444 return 1;
2445
2446 if (a->category < b->category)
2447 return -1;
2448
2449 if (a->category > b->category)
2450 return 1;
2451
2452 if (a->category == GIN_CAT_NORM_KEY)
2453 {
2456
2457 r = ApplySortComparator(keya, false,
2458 keyb, false,
2459 &ssup[a->attrnum - 1]);
2460
2461 /* if the key is the same, consider the first TID in the array */
2462 return (r != 0) ? r : ItemPointerCompare(GinTupleGetFirst(a),
2464 }
2465
2468}
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:2381
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:822

References fb(), and SHORTALIGN.

Referenced by _gin_compare_tuples(), and GinBufferShouldTrim().