PostgreSQL Source Code git master
Data Structures | Typedefs | Functions
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

 
 

Typedef Documentation

GinTuple

typedef struct GinTuple GinTuple

Function Documentation

_gin_compare_tuples()

int _gin_compare_tuples ( GinTuplea,
GinTupleb,
SortSupport  ssup 
)

Definition at line 2405 of file gininsert.c.

2406{
2407 int r;
2408 Datum keya,
2409 keyb;
2410
2411 if (a->attrnum < b->attrnum)
2412 return -1;
2413
2414 if (a->attrnum > b->attrnum)
2415 return 1;
2416
2417 if (a->category < b->category)
2418 return -1;
2419
2420 if (a->category > b->category)
2421 return 1;
2422
2423 if (a->category == GIN_CAT_NORM_KEY)
2424 {
2425 keya = _gin_parse_tuple_key(a);
2426 keyb = _gin_parse_tuple_key(b);
2427
2428 r = ApplySortComparator(keya, false,
2429 keyb, false,
2430 &ssup[a->attrnum - 1]);
2431
2432 /* if the key is the same, consider the first TID in the array */
2433 return (r != 0) ? r : ItemPointerCompare(GinTupleGetFirst(a),
2435 }
2436
2439}
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:2352
b
int b
Definition: isn.c:74
a
int a
Definition: isn.c:73
int32 ItemPointerCompare(ItemPointer arg1, ItemPointer arg2)
Definition: itemptr.c:51
uint64_t Datum
Definition: postgres.h:70
static int ApplySortComparator(Datum datum1, bool isNull1, Datum datum2, bool isNull2, SortSupport ssup)
Definition: sortsupport.h:200

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

Referenced by comparetup_index_gin().

GinTupleGetFirst()

static ItemPointer GinTupleGetFirst ( GinTupletup )
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:806
char data[FLEXIBLE_ARRAY_MEMBER]
Definition: gin_tuple.h:31
uint16 keylen
Definition: gin_tuple.h:26

References GinTuple::data, GinTuple::keylen, sort-test::list, and SHORTALIGN.

Referenced by _gin_compare_tuples(), and GinBufferStoreTuple().

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