PostgreSQL Source Code git master
|
#include "access/tupdesc.h"
#include "access/tupmacs.h"
#include "storage/bufpage.h"
#include "storage/itemptr.h"
Go to the source code of this file.
Data Structures | |
struct | IndexTupleData |
struct | IndexAttributeBitMapData |
Macros | |
#define | INDEX_SIZE_MASK 0x1FFF |
#define | INDEX_AM_RESERVED_BIT |
#define | INDEX_VAR_MASK 0x4000 |
#define | INDEX_NULL_MASK 0x8000 |
#define | MaxIndexTuplesPerPage |
Typedefs | |
typedef struct IndexTupleData | IndexTupleData |
typedef IndexTupleData * | IndexTuple |
typedef struct IndexAttributeBitMapData | IndexAttributeBitMapData |
typedef IndexAttributeBitMapData * | IndexAttributeBitMap |
#define INDEX_AM_RESERVED_BIT |
#define MaxIndexTuplesPerPage |
typedef struct IndexAttributeBitMapData IndexAttributeBitMapData |
typedef IndexTupleData* IndexTuple |
typedef struct IndexTupleData IndexTupleData |
IndexTuple CopyIndexTuple | ( | IndexTuple | source | ) |
Definition at line 547 of file indextuple.c.
References IndexTupleSize(), palloc(), and source.
Referenced by _bt_buildadd(), _bt_insert_parent(), _bt_insertonpg(), _bt_load(), _bt_newlevel(), _bt_pagedel(), _bt_swap_posting(), _hash_splitbucket(), _hash_squeezebucket(), btree_xlog_insert(), btree_xlog_split(), gistformdownlink(), and index_truncate_tuple().
void index_deform_tuple | ( | IndexTuple | tup, |
TupleDesc | tupleDescriptor, | ||
Datum * | values, | ||
bool * | isnull | ||
) |
Definition at line 456 of file indextuple.c.
References index_deform_tuple_internal(), IndexInfoFindDataOffset(), IndexTupleHasNulls(), IndexTupleData::t_info, and values.
Referenced by _bt_check_unique(), comparetup_index_btree_tiebreak(), get_actual_variable_endpoint(), gist_page_items(), index_truncate_tuple(), and StoreIndexTuple().
void index_deform_tuple_internal | ( | TupleDesc | tupleDescriptor, |
Datum * | values, | ||
bool * | isnull, | ||
char * | tp, | ||
bits8 * | bp, | ||
int | hasnulls | ||
) |
Definition at line 479 of file indextuple.c.
References Assert(), att_addlength_pointer, att_isnull(), att_nominal_alignby, att_pointer_alignby, CompactAttribute::attalignby, CompactAttribute::attcacheoff, CompactAttribute::attlen, attnum, fetchatt, INDEX_MAX_KEYS, TupleDescData::natts, TupleDescCompactAttr(), and values.
Referenced by index_deform_tuple(), and spgDeformLeafTuple().
IndexTuple index_form_tuple | ( | TupleDesc | tupleDescriptor, |
const Datum * | values, | ||
const bool * | isnull | ||
) |
Definition at line 44 of file indextuple.c.
References CurrentMemoryContext, index_form_tuple_context(), and values.
Referenced by bt_normalize_tuple(), bt_tuple_present_callback(), btinsert(), GinFormTuple(), gistFormTuple(), hashbuildCallback(), hashinsert(), and index_truncate_tuple().
IndexTuple index_form_tuple_context | ( | TupleDesc | tupleDescriptor, |
const Datum * | values, | ||
const bool * | isnull, | ||
MemoryContext | context | ||
) |
Definition at line 65 of file indextuple.c.
References Assert(), DatumGetPointer(), detoast_external_attr(), ereport, errcode(), errmsg(), ERROR, heap_compute_data_size(), heap_fill_tuple(), HEAP_HASEXTERNAL, HEAP_HASVARWIDTH, i, INDEX_MAX_KEYS, INDEX_NULL_MASK, INDEX_SIZE_MASK, INDEX_VAR_MASK, IndexInfoFindDataOffset(), MAXALIGN, MemoryContextAllocZero(), TupleDescData::natts, pfree(), PointerGetDatum(), IndexTupleData::t_info, toast_compress_datum(), TOAST_INDEX_HACK, TOAST_INDEX_TARGET, TupleDescAttr(), values, VARATT_IS_EXTENDED, VARATT_IS_EXTERNAL, and VARSIZE.
Referenced by index_form_tuple(), and tuplesort_putindextuplevalues().
|
inlinestatic |
Definition at line 131 of file itup.h.
References Assert(), att_isnull(), CompactAttribute::attcacheoff, attnum, fetchatt, IndexInfoFindDataOffset(), IndexTupleHasNulls(), nocache_index_getattr(), PointerIsValid, IndexTupleData::t_info, and TupleDescCompactAttr().
Referenced by _bt_advance_array_keys(), _bt_check_compare(), _bt_check_rowcompare(), _bt_compare(), _bt_keep_natts(), _bt_keep_natts_fast(), _bt_load(), _bt_mkscankey(), _bt_tuple_before_array_skeys(), _hash_checkqual(), bt_normalize_tuple(), comparetup_index_btree_tiebreak(), gintuple_get_attrnum(), gintuple_get_key(), gistchoose(), gistDeCompressAtt(), gistFetchTuple(), gistindex_keytest(), gistMakeUnionItVec(), gistSplitByKey(), readtup_index(), removeabbrev_index(), and tuplesort_putindextuplevalues().
IndexTuple index_truncate_tuple | ( | TupleDesc | sourceDescriptor, |
IndexTuple | source, | ||
int | leavenatts | ||
) |
Definition at line 576 of file indextuple.c.
References Assert(), CopyIndexTuple(), CreateTupleDescTruncatedCopy(), index_deform_tuple(), index_form_tuple(), INDEX_MAX_KEYS, IndexTupleSize(), TupleDescData::natts, pfree(), source, IndexTupleData::t_tid, and values.
Referenced by _bt_truncate().
|
inlinestatic |
Definition at line 112 of file itup.h.
References INDEX_NULL_MASK, and MAXALIGN.
Referenced by _hash_get_indextuple_hashkey(), bt_page_print_tuples(), index_deform_tuple(), index_form_tuple_context(), index_getattr(), and nocache_index_getattr().
|
inlinestatic |
Definition at line 77 of file itup.h.
References INDEX_NULL_MASK, and IndexTupleData::t_info.
Referenced by bt_page_print_tuples(), GinFormTuple(), index_deform_tuple(), index_getattr(), nocache_index_getattr(), and spgExtractNodeLabels().
|
inlinestatic |
Definition at line 83 of file itup.h.
References INDEX_VAR_MASK, and IndexTupleData::t_info.
Referenced by bt_normalize_tuple(), bt_page_print_tuples(), and nocache_index_getattr().
|
inlinestatic |
Definition at line 71 of file itup.h.
References INDEX_SIZE_MASK, and IndexTupleData::t_info.
Referenced by _bt_buildadd(), _bt_check_third_page(), _bt_dedup_finish_pending(), _bt_dedup_save_htid(), _bt_dedup_start_pending(), _bt_delitems_delete(), _bt_delitems_vacuum(), _bt_doinsert(), _bt_form_posting(), _bt_insert_parent(), _bt_insertonpg(), _bt_mark_page_halfdead(), _bt_recsplitloc(), _bt_restore_page(), _bt_saveitem(), _bt_sort_dedup_finish_pending(), _bt_split(), _bt_truncate(), _hash_doinsert(), _hash_pgaddmultitup(), _hash_splitbucket(), _hash_squeezebucket(), bt_check_level_from_leftmost(), bt_page_print_tuples(), bt_pivot_tuple_identical(), bt_rootdescend(), bt_target_page_check(), bt_tuple_present_callback(), btree_xlog_insert(), btree_xlog_split(), btree_xlog_updates(), BTreeTupleGetHeapTID(), CopyIndexTuple(), decodePageSplitRecord(), entryExecPlaceToPage(), entryIsEnoughSpace(), entrySplitPage(), GetBTPageStatistics(), ginEntryFillRoot(), GinFormInteriorTuple(), GinFormTuple(), ginHeapTupleFastCollect(), ginHeapTupleFastInsert(), ginRedoInsertEntry(), ginRedoInsertListPage(), ginRedoUpdateMetapage(), ginVacuumEntryPage(), gist_indexsortbuild_levelstate_add(), gist_indexsortbuild_levelstate_flush(), gist_page_items(), gist_page_items_bytea(), gistBuildCallback(), gistfillbuffer(), gistfillitupvec(), gistfitpage(), gistGetItupFromPage(), gistnospace(), gistPlaceItupToPage(), gistplacetopage(), gistRedoPageUpdateRecord(), gistSplit(), gistXLogUpdate(), hash_xlog_move_page_contents(), hash_xlog_squeeze_page(), index_truncate_tuple(), makeSublist(), spgFormInnerTuple(), writeListPage(), and writetup_index().
Datum nocache_index_getattr | ( | IndexTuple | tup, |
int | attnum, | ||
TupleDesc | tupleDesc | ||
) |
Definition at line 241 of file indextuple.c.
References Assert(), att_addlength_pointer, att_isnull(), att_nominal_alignby, att_pointer_alignby, CompactAttribute::attalignby, CompactAttribute::attcacheoff, CompactAttribute::attlen, attlen, attnum, fetchatt, i, IndexInfoFindDataOffset(), IndexTupleHasNulls(), IndexTupleHasVarwidths(), j, TupleDescData::natts, IndexTupleData::t_info, and TupleDescCompactAttr().
Referenced by index_getattr().