PostgreSQL Source Code git master
Functions
itemptr.c File Reference
#include "postgres.h"
#include "storage/itemptr.h"
Include dependency graph for itemptr.c:

Go to the source code of this file.

Functions

  StaticAssertDecl (sizeof(ItemPointerData)==3 *sizeof(uint16), "ItemPointerData struct is improperly padded")
 
bool  ItemPointerEquals (ItemPointer pointer1, ItemPointer pointer2)
 
 
void  ItemPointerInc (ItemPointer pointer)
 
void  ItemPointerDec (ItemPointer pointer)
 

Function Documentation

ItemPointerCompare()

int32 ItemPointerCompare ( ItemPointer  arg1,
ItemPointer  arg2 
)

Definition at line 51 of file itemptr.c.

52{
53 /*
54 * Use ItemPointerGet{Offset,Block}NumberNoCheck to avoid asserting
55 * ip_posid != 0, which may not be true for a user-supplied TID.
56 */
59
60 if (b1 < b2)
61 return -1;
62 else if (b1 > b2)
63 return 1;
66 return -1;
69 return 1;
70 else
71 return 0;
72}
uint32 BlockNumber
Definition: block.h:31
static OffsetNumber ItemPointerGetOffsetNumberNoCheck(const ItemPointerData *pointer)
Definition: itemptr.h:114
static BlockNumber ItemPointerGetBlockNumberNoCheck(const ItemPointerData *pointer)
Definition: itemptr.h:93

References ItemPointerGetBlockNumberNoCheck(), and ItemPointerGetOffsetNumberNoCheck().

Referenced by _bt_binsrch_posting(), _bt_check_unique(), _bt_compare(), _bt_delitems_delete_check(), _bt_load(), _bt_split(), _bt_swap_posting(), _bt_truncate(), _gin_compare_tuples(), AssertCheckItemPointers(), brin_minmax_multi_distance_tid(), bt_target_page_check(), bttidcmp(), dataBeginPlaceToPageLeaf(), gin_check_posting_tree_parent_keys_consistency(), GinBufferStoreTuple(), ginBuildCallbackParallel(), heap_getnextslot_tidrange(), heap_set_tidrange(), heapam_index_validate_scan(), tidcmp(), tideq(), tidge(), tidgt(), tidlarger(), tidle(), tidlt(), tidne(), TidRangeEval(), TidRangeRecheck(), and tidsmaller().

ItemPointerDec()

void ItemPointerDec ( ItemPointer  pointer )

Definition at line 114 of file itemptr.c.

115{
118
119 if (off == 0)
120 {
121 if (blk != 0)
122 {
123 off = PG_UINT16_MAX;
124 blk--;
125 }
126 }
127 else
128 off--;
129
130 ItemPointerSet(pointer, blk, off);
131}
#define PG_UINT16_MAX
Definition: c.h:592
static void ItemPointerSet(ItemPointerData *pointer, BlockNumber blockNumber, OffsetNumber offNum)
Definition: itemptr.h:135
uint16 OffsetNumber
Definition: off.h:24

References ItemPointerGetBlockNumberNoCheck(), ItemPointerGetOffsetNumberNoCheck(), ItemPointerSet(), and PG_UINT16_MAX.

Referenced by TidRangeEval().

ItemPointerEquals()

bool ItemPointerEquals ( ItemPointer  pointer1,
ItemPointer  pointer2 
)

Definition at line 35 of file itemptr.c.

36{
37 if (ItemPointerGetBlockNumber(pointer1) ==
38 ItemPointerGetBlockNumber(pointer2) &&
41 return true;
42 else
43 return false;
44}
static OffsetNumber ItemPointerGetOffsetNumber(const ItemPointerData *pointer)
Definition: itemptr.h:124
static BlockNumber ItemPointerGetBlockNumber(const ItemPointerData *pointer)
Definition: itemptr.h:103

References ItemPointerGetBlockNumber(), and ItemPointerGetOffsetNumber().

Referenced by _bt_delitems_delete_check(), _bt_killitems(), _hash_kill_items(), brinGetTupleForHeapBlock(), cached_function_compile(), check_exclusion_or_unique_constraint(), collectMatchesForHeapRow(), compile_pltcl_function(), gin_check_posting_tree_parent_keys_consistency(), gistplacetopage(), heap_delete(), heap_get_latest_tid(), heap_inplace_update_and_unlock(), heap_lock_tuple(), heap_lock_updated_tuple(), heap_lock_updated_tuple_rec(), heap_update(), heapam_tuple_lock(), HeapTupleSatisfiesUpdate(), index_getnext_slot(), lookup_C_func(), PLy_procedure_valid(), processPendingPage(), rewrite_heap_tuple(), scanGetCandidate(), SearchCatCacheList(), SearchSysCacheLocked1(), spgAddPendingTID(), test_itemptr_pair(), test_lockmode_for_conflict(), and validate_plperl_function().

ItemPointerInc()

void ItemPointerInc ( ItemPointer  pointer )

Definition at line 84 of file itemptr.c.

85{
88
89 if (off == PG_UINT16_MAX)
90 {
91 if (blk != InvalidBlockNumber)
92 {
93 off = 0;
94 blk++;
95 }
96 }
97 else
98 off++;
99
100 ItemPointerSet(pointer, blk, off);
101}
#define InvalidBlockNumber
Definition: block.h:33

References InvalidBlockNumber, ItemPointerGetBlockNumberNoCheck(), ItemPointerGetOffsetNumberNoCheck(), ItemPointerSet(), and PG_UINT16_MAX.

Referenced by TidRangeEval().

StaticAssertDecl()

StaticAssertDecl ( sizeof(ItemPointerData)  = =3 *sizeof(uint16),
"ItemPointerData struct is improperly padded"   
)

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