PostgreSQL Source Code git master
Data Structures | Macros | Typedefs | Enumerations | Functions
varatt.h File Reference
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Data Structures

struct   varatt_external
 
struct   varatt_indirect
 
struct   varatt_expanded
 
union   varattrib_4b
 
struct   varattrib_1b
 
struct   varattrib_1b_e
 

Macros

#define  VARLENA_EXTSIZE_BITS   30
 
#define  VARLENA_EXTSIZE_MASK   ((1U << VARLENA_EXTSIZE_BITS) - 1)
 
#define  VARATT_IS_4B(PTR)    ((((varattrib_1b *) (PTR))->va_header & 0x01) == 0x00)
 
#define  VARATT_IS_4B_U(PTR)    ((((varattrib_1b *) (PTR))->va_header & 0x03) == 0x00)
 
#define  VARATT_IS_4B_C(PTR)    ((((varattrib_1b *) (PTR))->va_header & 0x03) == 0x02)
 
#define  VARATT_IS_1B(PTR)    ((((varattrib_1b *) (PTR))->va_header & 0x01) == 0x01)
 
#define  VARATT_IS_1B_E(PTR)    ((((varattrib_1b *) (PTR))->va_header) == 0x01)
 
#define  VARATT_NOT_PAD_BYTE(PTR)    (*((uint8 *) (PTR)) != 0)
 
#define  VARSIZE_4B(PTR)    ((((varattrib_4b *) (PTR))->va_4byte.va_header >> 2) & 0x3FFFFFFF)
 
#define  VARSIZE_1B(PTR)    ((((varattrib_1b *) (PTR))->va_header >> 1) & 0x7F)
 
#define  VARTAG_1B_E(PTR)    ((vartag_external) ((varattrib_1b_e *) (PTR))->va_tag)
 
#define  SET_VARSIZE_4B(PTR, len)    (((varattrib_4b *) (PTR))->va_4byte.va_header = (((uint32) (len)) << 2))
 
#define  SET_VARSIZE_4B_C(PTR, len)    (((varattrib_4b *) (PTR))->va_4byte.va_header = (((uint32) (len)) << 2) | 0x02)
 
#define  SET_VARSIZE_1B(PTR, len)    (((varattrib_1b *) (PTR))->va_header = (((uint8) (len)) << 1) | 0x01)
 
#define  SET_VARTAG_1B_E(PTR, tag)
 
#define  VARDATA_4B(PTR)   (((varattrib_4b *) (PTR))->va_4byte.va_data)
 
#define  VARDATA_4B_C(PTR)   (((varattrib_4b *) (PTR))->va_compressed.va_data)
 
#define  VARDATA_1B(PTR)   (((varattrib_1b *) (PTR))->va_data)
 
#define  VARDATA_1B_E(PTR)   (((varattrib_1b_e *) (PTR))->va_data)
 
#define  VARHDRSZ_EXTERNAL   offsetof(varattrib_1b_e, va_data)
 
#define  VARHDRSZ_COMPRESSED   offsetof(varattrib_4b, va_compressed.va_data)
 
#define  VARHDRSZ_SHORT   offsetof(varattrib_1b, va_data)
 
#define  VARATT_SHORT_MAX   0x7F
 
#define  VARATT_EXTERNAL_SET_SIZE_AND_COMPRESS_METHOD(toast_pointer, len, cm)
 

Typedefs

typedef struct varatt_external  varatt_external
 
typedef struct varatt_indirect  varatt_indirect
 
 
typedef struct varatt_expanded  varatt_expanded
 
 

Enumerations

 

Functions

static bool  VARTAG_IS_EXPANDED (vartag_external tag)
 
 
static Size  VARSIZE (const void *PTR)
 
static char *  VARDATA (const void *PTR)
 
static Size  VARSIZE_SHORT (const void *PTR)
 
static char *  VARDATA_SHORT (const void *PTR)
 
static vartag_external  VARTAG_EXTERNAL (const void *PTR)
 
static Size  VARSIZE_EXTERNAL (const void *PTR)
 
static char *  VARDATA_EXTERNAL (const void *PTR)
 
static bool  VARATT_IS_COMPRESSED (const void *PTR)
 
static bool  VARATT_IS_EXTERNAL (const void *PTR)
 
static bool  VARATT_IS_EXTERNAL_ONDISK (const void *PTR)
 
static bool  VARATT_IS_EXTERNAL_INDIRECT (const void *PTR)
 
static bool  VARATT_IS_EXTERNAL_EXPANDED_RO (const void *PTR)
 
static bool  VARATT_IS_EXTERNAL_EXPANDED_RW (const void *PTR)
 
static bool  VARATT_IS_EXTERNAL_EXPANDED (const void *PTR)
 
static bool  VARATT_IS_EXTERNAL_NON_EXPANDED (const void *PTR)
 
static bool  VARATT_IS_SHORT (const void *PTR)
 
static bool  VARATT_IS_EXTENDED (const void *PTR)
 
static bool  VARATT_CAN_MAKE_SHORT (const void *PTR)
 
static Size  VARATT_CONVERTED_SHORT_SIZE (const void *PTR)
 
static void  SET_VARSIZE (void *PTR, Size len)
 
static void  SET_VARSIZE_SHORT (void *PTR, Size len)
 
static void  SET_VARSIZE_COMPRESSED (void *PTR, Size len)
 
static void  SET_VARTAG_EXTERNAL (void *PTR, vartag_external tag)
 
static Size  VARSIZE_ANY (const void *PTR)
 
static Size  VARSIZE_ANY_EXHDR (const void *PTR)
 
static char *  VARDATA_ANY (const void *PTR)
 
static Size  VARDATA_COMPRESSED_GET_EXTSIZE (const void *PTR)
 
 
static Size  VARATT_EXTERNAL_GET_EXTSIZE (struct varatt_external toast_pointer)
 
 
static bool  VARATT_EXTERNAL_IS_COMPRESSED (struct varatt_external toast_pointer)
 

Macro Definition Documentation

SET_VARSIZE_1B

#define SET_VARSIZE_1B (   PTR,
  len 
)     (((varattrib_1b *) (PTR))->va_header = (((uint8) (len)) << 1) | 0x01)

Definition at line 253 of file varatt.h.

SET_VARSIZE_4B

#define SET_VARSIZE_4B (   PTR,
  len 
)     (((varattrib_4b *) (PTR))->va_4byte.va_header = (((uint32) (len)) << 2))

Definition at line 249 of file varatt.h.

SET_VARSIZE_4B_C

#define SET_VARSIZE_4B_C (   PTR,
  len 
)     (((varattrib_4b *) (PTR))->va_4byte.va_header = (((uint32) (len)) << 2) | 0x02)

Definition at line 251 of file varatt.h.

SET_VARTAG_1B_E

#define SET_VARTAG_1B_E (   PTR,
  tag 
)
Value:
(((varattrib_1b_e *) (PTR))->va_header = 0x01, \
((varattrib_1b_e *) (PTR))->va_tag = (tag))

Definition at line 255 of file varatt.h.

VARATT_EXTERNAL_SET_SIZE_AND_COMPRESS_METHOD

#define VARATT_EXTERNAL_SET_SIZE_AND_COMPRESS_METHOD (   toast_pointer,
  len,
  cm 
)
Value:
do { \
Assert((cm) == TOAST_PGLZ_COMPRESSION_ID || \
((toast_pointer).va_extinfo = \
(len) | ((uint32) (cm) << VARLENA_EXTSIZE_BITS)); \
} while (0)
uint32_t uint32
Definition: c.h:538
const void size_t len
@ TOAST_LZ4_COMPRESSION_ID
@ TOAST_PGLZ_COMPRESSION_ID
#define VARLENA_EXTSIZE_BITS
Definition: varatt.h:45

Definition at line 520 of file varatt.h.

VARATT_IS_1B

#define VARATT_IS_1B (   PTR )     ((((varattrib_1b *) (PTR))->va_header & 0x01) == 0x01)

Definition at line 234 of file varatt.h.

VARATT_IS_1B_E

#define VARATT_IS_1B_E (   PTR )     ((((varattrib_1b *) (PTR))->va_header) == 0x01)

Definition at line 236 of file varatt.h.

VARATT_IS_4B

#define VARATT_IS_4B (   PTR )     ((((varattrib_1b *) (PTR))->va_header & 0x01) == 0x00)

Definition at line 228 of file varatt.h.

VARATT_IS_4B_C

#define VARATT_IS_4B_C (   PTR )     ((((varattrib_1b *) (PTR))->va_header & 0x03) == 0x02)

Definition at line 232 of file varatt.h.

VARATT_IS_4B_U

#define VARATT_IS_4B_U (   PTR )     ((((varattrib_1b *) (PTR))->va_header & 0x03) == 0x00)

Definition at line 230 of file varatt.h.

VARATT_NOT_PAD_BYTE

#define VARATT_NOT_PAD_BYTE (   PTR )     (*((uint8 *) (PTR)) != 0)

Definition at line 238 of file varatt.h.

VARATT_SHORT_MAX

#define VARATT_SHORT_MAX   0x7F

Definition at line 279 of file varatt.h.

VARDATA_1B

#define VARDATA_1B (   PTR )    (((varattrib_1b *) (PTR))->va_data)

Definition at line 263 of file varatt.h.

VARDATA_1B_E

#define VARDATA_1B_E (   PTR )    (((varattrib_1b_e *) (PTR))->va_data)

Definition at line 264 of file varatt.h.

VARDATA_4B

#define VARDATA_4B (   PTR )    (((varattrib_4b *) (PTR))->va_4byte.va_data)

Definition at line 261 of file varatt.h.

VARDATA_4B_C

#define VARDATA_4B_C (   PTR )    (((varattrib_4b *) (PTR))->va_compressed.va_data)

Definition at line 262 of file varatt.h.

VARHDRSZ_COMPRESSED

#define VARHDRSZ_COMPRESSED   offsetof(varattrib_4b, va_compressed.va_data)

Definition at line 277 of file varatt.h.

VARHDRSZ_EXTERNAL

#define VARHDRSZ_EXTERNAL   offsetof(varattrib_1b_e, va_data)

Definition at line 276 of file varatt.h.

VARHDRSZ_SHORT

#define VARHDRSZ_SHORT   offsetof(varattrib_1b, va_data)

Definition at line 278 of file varatt.h.

VARLENA_EXTSIZE_BITS

#define VARLENA_EXTSIZE_BITS   30

Definition at line 45 of file varatt.h.

VARLENA_EXTSIZE_MASK

#define VARLENA_EXTSIZE_MASK   ((1U << VARLENA_EXTSIZE_BITS) - 1)

Definition at line 46 of file varatt.h.

VARSIZE_1B

#define VARSIZE_1B (   PTR )     ((((varattrib_1b *) (PTR))->va_header >> 1) & 0x7F)

Definition at line 244 of file varatt.h.

VARSIZE_4B

#define VARSIZE_4B (   PTR )     ((((varattrib_4b *) (PTR))->va_4byte.va_header >> 2) & 0x3FFFFFFF)

Definition at line 242 of file varatt.h.

VARTAG_1B_E

#define VARTAG_1B_E (   PTR )     ((vartag_external) ((varattrib_1b_e *) (PTR))->va_tag)

Definition at line 246 of file varatt.h.

Typedef Documentation

ExpandedObjectHeader

Definition at line 72 of file varatt.h.

varatt_expanded

varatt_external

varatt_indirect

vartag_external

Enumeration Type Documentation

vartag_external

Enumerator
VARTAG_INDIRECT 
VARTAG_EXPANDED_RO 
VARTAG_EXPANDED_RW 
VARTAG_ONDISK 

Definition at line 84 of file varatt.h.

85{
89 VARTAG_ONDISK = 18
vartag_external
Definition: varatt.h:85
@ VARTAG_ONDISK
Definition: varatt.h:89
@ VARTAG_EXPANDED_RW
Definition: varatt.h:88
@ VARTAG_INDIRECT
Definition: varatt.h:86
@ VARTAG_EXPANDED_RO
Definition: varatt.h:87

Function Documentation

SET_VARSIZE()

static void SET_VARSIZE ( void *  PTR,
Size  len 
)
inlinestatic

Definition at line 432 of file varatt.h.

433{
434 SET_VARSIZE_4B(PTR, len);
435}
#define SET_VARSIZE_4B(PTR, len)
Definition: varatt.h:249

References len, and SET_VARSIZE_4B.

Referenced by _intbig_alloc(), _ltree_union(), aclnewowner(), aclupdate(), allocacl(), array_cat(), array_get_slice(), array_in(), array_map(), array_recv(), array_replace_internal(), array_set_element(), array_set_slice(), array_to_tsvector(), be_loread(), binary_decode(), binary_encode(), bit(), bit_and(), bit_catenate(), bit_in(), bit_or(), bit_recv(), bitfromint4(), bitfromint8(), bitnot(), bitsetbit(), bitshiftleft(), bitshiftright(), bitsubstring(), bitxor(), bloom_init(), box_poly(), bpchar(), bpchar_input(), bqarr_in(), brin_range_serialize(), buf_finalize(), buildint2vector(), buildoidvector(), bytea_catenate(), bytea_reverse(), bytea_string_agg_finalfn(), byteain(), bytearecv(), catenate_stringinfo_string(), char_bpchar(), char_text(), chr(), circle_poly(), cleanup_tsquery_stopwords(), concat_text(), construct_empty_array(), construct_md_array(), convertToJsonb(), copytext(), create_array_envelope(), cryptohash_internal(), cstring_to_text_with_len(), cube_a_f8(), cube_a_f8_f8(), cube_c_f8(), cube_c_f8_f8(), cube_enlarge(), cube_f8(), cube_f8_f8(), cube_inter(), cube_recv(), cube_subset(), cube_union_v0(), decrypt_internal(), detoast_attr(), detoast_attr_slice(), dobyteatrim(), EA_flatten_into(), encrypt_internal(), ExecEvalArrayExpr(), expandColorTrigrams(), fillRelOptions(), formTextDatum(), g_intbig_union(), gbt_bit_xfrm(), gbt_var_key_copy(), gbt_var_key_from_datum(), gbt_var_node_truncate(), generate_trgm(), generate_wildcard_trgm(), generateHeadline(), get_raw_page_internal(), GetWALBlockInfo(), ghstore_alloc(), ghstore_union(), gist_page_items_bytea(), gtrgm_alloc(), gtrgm_union(), gtsvector_alloc(), gtsvector_compress(), gtsvector_union(), heap_page_items(), HeapTupleHeaderGetTypeId(), hstore_concat(), hstore_delete(), hstore_delete_array(), hstore_delete_hstore(), hstore_subscript_assign(), hstorePairs(), inner_subltree(), int2vectorin(), inv_truncate(), inv_write(), JsonbValueToJsonb(), jsonPathFromCstring(), lca_inner(), lo_get_fragment_internal(), lpad(), ltree2text(), ltree_concat(), ltree_gist_alloc(), lz4_decompress_datum(), lz4_decompress_datum_slice(), make_greater_string(), make_multirange(), make_result_safe(), make_text_key(), make_tsvector(), makeArrayResultArr(), makeDefaultBloomOptions(), makeitem(), multirange_get_range(), new_intArrayType(), numeric_abbrev_convert(), oidvectorin(), optionListToArray(), parse_lquery(), parse_ltree(), parse_tsquery(), path_add(), path_in(), path_poly(), path_recv(), pg_armor(), pg_convert(), pg_current_snapshot(), pg_dearmor(), pg_decrypt(), pg_decrypt_iv(), pg_digest(), pg_encrypt(), pg_encrypt_iv(), pg_hmac(), pg_random_bytes(), pg_snapshot_recv(), pglz_decompress_datum(), pglz_decompress_datum_slice(), pgp_key_id_w(), PLyObject_ToBytea(), poly_in(), poly_path(), poly_recv(), pq_endtypsend(), QTN2QT(), queryin(), quote_literal(), range_serialize(), read_binary_file(), ReorderBufferToastReplace(), repeat(), resize_intArrayType(), rpad(), show_trgm(), similar_escape_internal(), spg_text_inner_consistent(), spg_text_leaf_consistent(), spgist_name_inner_consistent(), statext_dependencies_serialize(), statext_mcv_deserialize(), statext_mcv_serialize(), statext_ndistinct_serialize(), string_to_bytea_const(), test_enc_conversion(), text_catenate(), text_reverse(), text_substring(), toast_fetch_datum(), toast_fetch_datum_slice(), toast_save_datum(), transformRelOptions(), translate(), tsquery_rewrite(), tsquery_rewrite_query(), tsqueryrecv(), tsquerytree(), tsvector_concat(), tsvector_delete_by_indices(), tsvector_filter(), tsvector_strip(), tsvectorin(), tsvectorrecv(), tuple_data_split_internal(), unicode_normalize_func(), varbit(), varbit_in(), varbit_recv(), and xml_recv().

SET_VARSIZE_COMPRESSED()

static void SET_VARSIZE_COMPRESSED ( void *  PTR,
Size  len 
)
inlinestatic

Definition at line 446 of file varatt.h.

447{
448 SET_VARSIZE_4B_C(PTR, len);
449}
#define SET_VARSIZE_4B_C(PTR, len)
Definition: varatt.h:251

References len, and SET_VARSIZE_4B_C.

Referenced by lz4_compress_datum(), pglz_compress_datum(), ReorderBufferToastReplace(), toast_fetch_datum(), and toast_fetch_datum_slice().

SET_VARSIZE_SHORT()

static void SET_VARSIZE_SHORT ( void *  PTR,
Size  len 
)
inlinestatic

Definition at line 439 of file varatt.h.

440{
441 SET_VARSIZE_1B(PTR, len);
442}
#define SET_VARSIZE_1B(PTR, len)
Definition: varatt.h:253

References len, and SET_VARSIZE_1B.

Referenced by bt_normalize_tuple(), datum_write(), fill_val(), and formTextDatum().

SET_VARTAG_EXTERNAL()

static void SET_VARTAG_EXTERNAL ( void *  PTR,
vartag_external  tag 
)
inlinestatic

Definition at line 453 of file varatt.h.

454{
455 SET_VARTAG_1B_E(PTR, tag);
456}
#define SET_VARTAG_1B_E(PTR, tag)
Definition: varatt.h:255

References SET_VARTAG_1B_E.

Referenced by EOH_init_header(), make_tuple_indirect(), ReorderBufferToastReplace(), and toast_save_datum().

VARATT_CAN_MAKE_SHORT()

static bool VARATT_CAN_MAKE_SHORT ( const void *  PTR )
inlinestatic

Definition at line 417 of file varatt.h.

418{
419 return VARATT_IS_4B_U(PTR) &&
421}
#define VARHDRSZ
Definition: c.h:697
#define VARHDRSZ_SHORT
Definition: varatt.h:278
#define VARATT_IS_4B_U(PTR)
Definition: varatt.h:230
static Size VARSIZE(const void *PTR)
Definition: varatt.h:298
#define VARATT_SHORT_MAX
Definition: varatt.h:279

References VARATT_IS_4B_U, VARATT_SHORT_MAX, VARHDRSZ, VARHDRSZ_SHORT, and VARSIZE().

Referenced by bt_normalize_tuple(), datum_compute_size(), datum_write(), fill_val(), and heap_compute_data_size().

VARATT_CONVERTED_SHORT_SIZE()

static Size VARATT_CONVERTED_SHORT_SIZE ( const void *  PTR )
inlinestatic

Definition at line 425 of file varatt.h.

426{
427 return VARSIZE(PTR) - VARHDRSZ + VARHDRSZ_SHORT;
428}

References VARHDRSZ, VARHDRSZ_SHORT, and VARSIZE().

Referenced by bt_normalize_tuple(), datum_compute_size(), datum_write(), fill_val(), and heap_compute_data_size().

VARATT_EXTERNAL_GET_COMPRESS_METHOD()

static uint32 VARATT_EXTERNAL_GET_COMPRESS_METHOD ( struct varatt_external  toast_pointer )
inlinestatic

Definition at line 513 of file varatt.h.

514{
515 return toast_pointer.va_extinfo >> VARLENA_EXTSIZE_BITS;
516}
uint32 va_extinfo
Definition: varatt.h:35

References varatt_external::va_extinfo, and VARLENA_EXTSIZE_BITS.

Referenced by detoast_attr_slice(), and toast_get_compression_id().

VARATT_EXTERNAL_GET_EXTSIZE()

static Size VARATT_EXTERNAL_GET_EXTSIZE ( struct varatt_external  toast_pointer )
inlinestatic

VARATT_EXTERNAL_IS_COMPRESSED()

static bool VARATT_EXTERNAL_IS_COMPRESSED ( struct varatt_external  toast_pointer )
inlinestatic

Definition at line 536 of file varatt.h.

537{
538 return VARATT_EXTERNAL_GET_EXTSIZE(toast_pointer) <
539 (Size) (toast_pointer.va_rawsize - VARHDRSZ);
540}
size_t Size
Definition: c.h:610
int32 va_rawsize
Definition: varatt.h:34
static Size VARATT_EXTERNAL_GET_EXTSIZE(struct varatt_external toast_pointer)
Definition: varatt.h:507

References varatt_external::va_rawsize, VARATT_EXTERNAL_GET_EXTSIZE(), and VARHDRSZ.

Referenced by check_tuple_attribute(), detoast_attr_slice(), ReorderBufferToastReplace(), toast_fetch_datum(), toast_fetch_datum_slice(), toast_get_compression_id(), and toast_save_datum().

VARATT_IS_COMPRESSED()

VARATT_IS_EXTENDED()

static bool VARATT_IS_EXTENDED ( const void *  PTR )
inlinestatic

VARATT_IS_EXTERNAL()

static bool VARATT_IS_EXTERNAL ( const void *  PTR )
inlinestatic

Definition at line 354 of file varatt.h.

355{
356 return VARATT_IS_1B_E(PTR);
357}
#define VARATT_IS_1B_E(PTR)
Definition: varatt.h:236

References VARATT_IS_1B_E.

Referenced by brin_form_tuple(), bt_normalize_tuple(), check_domain_for_new_field(), check_tuple_attribute(), datum_write(), detoast_attr_slice(), detoast_external_attr(), ER_get_flat_size(), expanded_record_set_field_internal(), expanded_record_set_fields(), fill_val(), HeapDetermineColumnsInfo(), index_form_tuple_context(), mcelem_tsquery_selec(), pg_detoast_datum_packed(), ReorderBufferToastReplace(), text_substring(), toast_build_flattened_tuple(), toast_compress_datum(), toast_flatten_tuple(), toast_flatten_tuple_to_datum(), toast_save_datum(), toast_tuple_find_biggest_attribute(), toast_tuple_init(), tstoreReceiveSlot_detoast(), tuple_data_split_internal(), VARATT_IS_EXTERNAL_EXPANDED(), VARATT_IS_EXTERNAL_EXPANDED_RO(), VARATT_IS_EXTERNAL_EXPANDED_RW(), VARATT_IS_EXTERNAL_INDIRECT(), VARATT_IS_EXTERNAL_NON_EXPANDED(), and VARATT_IS_EXTERNAL_ONDISK().

VARATT_IS_EXTERNAL_EXPANDED()

static bool VARATT_IS_EXTERNAL_EXPANDED ( const void *  PTR )
inlinestatic

Definition at line 389 of file varatt.h.

390{
392}
static bool VARTAG_IS_EXPANDED(vartag_external tag)
Definition: varatt.h:95
static bool VARATT_IS_EXTERNAL(const void *PTR)
Definition: varatt.h:354
static vartag_external VARTAG_EXTERNAL(const void *PTR)
Definition: varatt.h:326

References VARATT_IS_EXTERNAL(), VARTAG_EXTERNAL(), and VARTAG_IS_EXPANDED().

Referenced by array_get_element(), array_set_element(), coerce_function_result_tuple(), datumCopy(), datumEstimateSpace(), DatumGetAnyArrayP(), DatumGetEOHP(), datumSerialize(), detoast_attr(), detoast_attr_slice(), detoast_external_attr(), exec_move_row_from_datum(), ExecEvalFieldSelect(), expand_array(), fill_val(), heap_compute_data_size(), plpgsql_exec_trigger(), toast_datum_size(), toast_raw_datum_size(), and tts_virtual_materialize().

VARATT_IS_EXTERNAL_EXPANDED_RO()

static bool VARATT_IS_EXTERNAL_EXPANDED_RO ( const void *  PTR )
inlinestatic

Definition at line 375 of file varatt.h.

376{
378}

References VARATT_IS_EXTERNAL(), VARTAG_EXPANDED_RO, and VARTAG_EXTERNAL().

Referenced by plpgsql_exec_function().

VARATT_IS_EXTERNAL_EXPANDED_RW()

VARATT_IS_EXTERNAL_INDIRECT()

static bool VARATT_IS_EXTERNAL_INDIRECT ( const void *  PTR )
inlinestatic

VARATT_IS_EXTERNAL_NON_EXPANDED()

static bool VARATT_IS_EXTERNAL_NON_EXPANDED ( const void *  PTR )
inlinestatic

Definition at line 396 of file varatt.h.

397{
399}

References VARATT_IS_EXTERNAL(), VARTAG_EXTERNAL(), and VARTAG_IS_EXPANDED().

Referenced by assign_simple_var().

VARATT_IS_EXTERNAL_ONDISK()

VARATT_IS_SHORT()

static bool VARATT_IS_SHORT ( const void *  PTR )
inlinestatic

VARDATA()

static char * VARDATA ( const void *  PTR )
inlinestatic

Definition at line 305 of file varatt.h.

306{
307 return VARDATA_4B(PTR);
308}
#define VARDATA_4B(PTR)
Definition: varatt.h:261

References VARDATA_4B.

Referenced by array_agg_serialize(), array_send(), array_to_tsvector(), be_loread(), binary_decode(), binary_encode(), bpchar(), bpchar_input(), bt_normalize_tuple(), bytea_catenate(), bytea_reverse(), bytea_string_agg_finalfn(), byteain(), bytearecv(), byteaSetBit(), byteaSetByte(), catenate_stringinfo_string(), char_bpchar(), char_text(), chr(), concat_text(), copytext(), CopyToBinaryOneRow(), cryptohash_internal(), cstring_to_text_with_len(), datum_write(), detoast_attr(), detoast_attr_slice(), dobyteatrim(), encode_to_ascii(), fill_val(), gbt_bit_xfrm(), gbt_bytea_pf_match(), gbt_var_key_copy(), gbt_var_key_from_datum(), gbt_var_node_cp_len(), gbt_var_node_truncate(), gbt_var_penalty(), get_raw_page_internal(), GetWALBlockInfo(), ghstore_consistent(), gin_extract_hstore_query(), gist_page_items_bytea(), gtrgm_consistent(), gtrgm_distance(), heap_fetch_toast_slice(), heap_page_items(), hstore_from_array(), hstore_from_arrays(), hstore_hash(), hstore_hash_extended(), hstore_slice_to_array(), hstoreArrayToPairs(), inv_read(), inv_truncate(), inv_write(), JsonbValueToJsonb(), lo_get_fragment_internal(), logicalrep_write_tuple(), lpad(), ltree2text(), lz4_decompress_datum(), lz4_decompress_datum_slice(), make_greater_string(), make_text_key(), makeitem(), multirange_send(), numeric_abbrev_convert(), optionListToArray(), parseRelOptionsInternal(), pg_armor(), pg_convert(), pg_dearmor(), pg_decrypt(), pg_decrypt_iv(), pg_digest(), pg_encrypt(), pg_encrypt_iv(), pg_hmac(), pg_random_bytes(), pglz_decompress_datum(), pglz_decompress_datum_slice(), pgp_key_id_w(), PLyObject_ToBytea(), printtup(), quote_literal(), range_send(), read_binary_file(), read_text_file(), record_send(), ReorderBufferToastReplace(), repeat(), rpad(), SendFunctionResult(), serializeAnalyzeReceive(), show_trgm(), similar_escape_internal(), spg_text_inner_consistent(), spg_text_leaf_consistent(), spgist_name_inner_consistent(), spgist_name_leaf_consistent(), statext_dependencies_serialize(), statext_mcv_deserialize(), statext_mcv_serialize(), statext_ndistinct_serialize(), string_to_bytea_const(), test_enc_conversion(), text_catenate(), text_reverse(), text_substring(), toast_save_datum(), transformRelOptions(), translate(), tsvector_delete_arr(), tsvector_setweight_by_filter(), tuple_data_split_internal(), and xml_recv().

VARDATA_ANY()

static char * VARDATA_ANY ( const void *  PTR )
inlinestatic

Definition at line 486 of file varatt.h.

487{
488 return VARATT_IS_1B(PTR) ? VARDATA_1B(PTR) : VARDATA_4B(PTR);
489}
#define VARDATA_1B(PTR)
Definition: varatt.h:263

References VARATT_IS_1B, VARDATA_1B, and VARDATA_4B.

Referenced by appendStringInfoRegexpSubstr(), appendStringInfoText(), array_agg_array_deserialize(), array_agg_deserialize(), ascii(), bcTruelen(), be_lo_from_bytea(), be_lo_put(), be_lowrite(), binary_decode(), binary_encode(), bpchar(), bpchar_larger(), bpchar_name(), bpchar_smaller(), bpcharcmp(), bpchareq(), bpcharfastcmp_c(), bpcharge(), bpchargt(), bpcharle(), bpcharlen(), bpcharlt(), bpcharne(), btnametextcmp(), btrim(), btrim1(), bttextnamecmp(), bytea_bit_count(), bytea_catenate(), bytea_int2(), bytea_int4(), bytea_int8(), bytea_larger(), bytea_reverse(), bytea_smaller(), bytea_string_agg_transfn(), byteacmp(), byteaeq(), byteage(), byteaGetBit(), byteaGetByte(), byteagt(), byteale(), bytealike(), bytealt(), byteane(), byteanlike(), byteaout(), byteapos(), casefold(), check_replace_text_has_escape(), citext_eq(), citext_hash(), citext_hash_extended(), citext_ne(), citextcmp(), CloneRowTriggersToPartition(), compare_lexeme_textfreq(), compare_text_lexemes(), concat_text(), convert_bytea_to_scalar(), convert_charset(), copytext(), crc32_bytea(), crc32c_bytea(), create_mbuf_from_vardata(), cryptohash_internal(), cvt_text_name(), datum_image_eq(), datum_image_hash(), datum_to_json_internal(), decrypt_internal(), deserialize_deflist(), dobyteatrim(), encrypt_internal(), escape_json_text(), extract_date(), find_provider(), Generic_Text_IC_like(), get_page_from_raw(), ghstore_consistent(), gin_cmp_prefix(), gin_cmp_tslexeme(), gin_compare_jsonb(), gin_extract_hstore_query(), gin_extract_jsonb_query(), gin_extract_query_trgm(), gin_extract_value_trgm(), gtrgm_compress(), hashbpchar(), hashbpcharextended(), hashinet(), hashinetextended(), hashtext(), hashtextextended(), hashvarlena(), hashvarlenaextended(), hstore_defined(), hstore_delete(), hstore_exists(), hstore_fetchval(), hstore_from_text(), hstore_subscript_assign(), hstore_subscript_fetch(), init_work(), initcap(), int8_avg_deserialize(), internal_bpchar_pattern_compare(), internal_citext_pattern_cmp(), internal_text_pattern_compare(), interval_avg_deserialize(), interval_part_common(), interval_trunc(), json_populate_type(), json_send(), jsonb_delete(), jsonb_delete_array(), jsonb_exists(), jsonb_exists_all(), jsonb_exists_any(), jsonb_from_text(), jsonb_get_element(), jsonb_object_field(), jsonb_object_field_text(), JsonItemFromDatum(), length_in_encoding(), levenshtein(), levenshtein_less_equal(), levenshtein_less_equal_with_costs(), levenshtein_with_costs(), like_fixed_prefix(), lower(), lpad(), ltrim(), ltrim1(), lz4_compress_datum(), make_greater_string(), makeJsonLexContext(), map_sql_value_to_xml_value(), md5_bytea(), md5_text(), nameeqtext(), namelike(), namenetext(), namenlike(), numeric_avg_deserialize(), numeric_deserialize(), numeric_poly_deserialize(), numeric_to_number(), parse_re_flags(), parse_test_flags(), pg_armor(), pg_convert(), pg_dearmor(), pg_decrypt(), pg_decrypt_iv(), pg_digest(), pg_encrypt(), pg_encrypt_iv(), pg_get_triggerdef_worker(), pg_hmac(), pg_logical_emit_message_bytea(), pglz_compress_datum(), pgp_armor_headers(), pgxml_xpath(), PLyBytes_FromBytea(), populate_record_worker(), printsimple(), prs_setup_firstcall(), quote_literal(), RE_compile(), RE_compile_and_cache(), record_image_cmp(), regexp_like(), RelationBuildTriggers(), repeat(), replace_text(), replace_text_regexp(), rpad(), rtrim(), rtrim1(), setPathObject(), setup_regexp_matches(), setup_test_matches(), show_trgm(), similar_escape_internal(), similarity(), sort(), spg_text_choose(), spg_text_inner_consistent(), spg_text_leaf_consistent(), spg_text_picksplit(), spgist_name_choose(), spgist_name_inner_consistent(), spgist_name_leaf_consistent(), split_part(), split_text(), statext_dependencies_deserialize(), statext_mcv_deserialize(), statext_mcv_serialize(), statext_ndistinct_deserialize(), strict_word_similarity(), strict_word_similarity_commutator_op(), strict_word_similarity_dist_commutator_op(), strict_word_similarity_dist_op(), strict_word_similarity_op(), string_agg_deserialize(), test_custom_rmgrs_insert_wal_record(), test_enc_conversion(), test_re_compile(), test_shm_mq(), test_shm_mq_pipelined(), text_catenate(), text_char(), text_cmp(), text_format(), text_left(), text_length(), text_name(), text_position_setup(), text_reverse(), text_right(), text_starts_with(), text_substring(), text_to_cstring(), text_to_cstring_buffer(), texteq(), texteqname(), texticregexeq(), texticregexne(), textlike(), textne(), textnename(), textnlike(), textregexeq(), textregexne(), textregexreplace(), textregexsubstr(), textsend(), time_part_common(), timestamp_part_common(), timestamp_trunc(), timestamptz_part_common(), timestamptz_trunc_internal(), timetz_part_common(), to_tsvector_byid(), transform_jsonb_string_values(), translate(), ts_headline_byid_opt(), ts_lexize(), ts_stat_sql(), tsquery_opr_selec(), tsvector_delete_str(), tsvector_update_trigger(), unaccent_dict(), unicode_assigned(), unicode_is_normalized(), unicode_normalize_func(), unistr(), upper(), uuid_generate_v3(), uuid_generate_v5(), varchar(), varlenafastcmp_locale(), varstr_abbrev_convert(), varstrfastcmp_c(), word_similarity(), word_similarity_commutator_op(), word_similarity_dist_commutator_op(), word_similarity_dist_op(), word_similarity_op(), xmlcomment(), xpath_string(), and xslt_process().

VARDATA_COMPRESSED_GET_COMPRESS_METHOD()

static uint32 VARDATA_COMPRESSED_GET_COMPRESS_METHOD ( const void *  PTR )
inlinestatic

Definition at line 500 of file varatt.h.

501{
502 return ((varattrib_4b *) PTR)->va_compressed.va_tcinfo >> VARLENA_EXTSIZE_BITS;
503}

References VARLENA_EXTSIZE_BITS.

Referenced by toast_get_compression_id(), and toast_save_datum().

VARDATA_COMPRESSED_GET_EXTSIZE()

static Size VARDATA_COMPRESSED_GET_EXTSIZE ( const void *  PTR )
inlinestatic

Definition at line 493 of file varatt.h.

494{
495 return ((varattrib_4b *) PTR)->va_compressed.va_tcinfo & VARLENA_EXTSIZE_MASK;
496}

References VARLENA_EXTSIZE_MASK.

Referenced by lz4_decompress_datum(), pglz_decompress_datum(), toast_raw_datum_size(), and toast_save_datum().

VARDATA_EXTERNAL()

static char * VARDATA_EXTERNAL ( const void *  PTR )
inlinestatic

Definition at line 340 of file varatt.h.

341{
342 return VARDATA_1B_E(PTR);
343}
#define VARDATA_1B_E(PTR)
Definition: varatt.h:264

References VARDATA_1B_E.

Referenced by DatumGetEOHP(), EOH_init_header(), make_tuple_indirect(), ReorderBufferToastReplace(), and toast_save_datum().

VARDATA_SHORT()

static char * VARDATA_SHORT ( const void *  PTR )
inlinestatic

Definition at line 319 of file varatt.h.

320{
321 return VARDATA_1B(PTR);
322}

References VARDATA_1B.

Referenced by detoast_attr(), detoast_attr_slice(), heap_fetch_toast_slice(), numeric_abbrev_convert(), and toast_save_datum().

VARSIZE()

static Size VARSIZE ( const void *  PTR )
inlinestatic

Definition at line 298 of file varatt.h.

299{
300 return VARSIZE_4B(PTR);
301}
#define VARSIZE_4B(PTR)
Definition: varatt.h:242

References VARSIZE_4B.

Referenced by _ltq_extract_regex(), _ltree_extract_isparent(), _ltree_extract_risparent(), _ltree_union(), _ltxtq_extract_exec(), array_agg_serialize(), array_send(), array_to_tsvector(), bit_and(), bit_or(), bitnot(), bitsetbit(), bitshiftleft(), bitshiftright(), bitxor(), brin_form_tuple(), bt_normalize_tuple(), byteaSetBit(), byteaSetByte(), check_toast_tuple(), CompareTSQ(), copy_ltree(), CopyToBinaryOneRow(), datum_write(), deparse_ltree(), detoast_attr_slice(), duplicate_numeric(), encode_to_ascii(), fill_val(), flattenJsonPathParseItem(), g_cube_binary_union(), g_cube_union(), g_int_union(), g_intbig_union(), gbt_bytea_pf_match(), gbt_var_key_copy(), gbt_var_key_from_datum(), gbt_var_key_readable(), gbt_var_node_cp_len(), gbt_var_node_truncate(), gbt_var_penalty(), get_attribute_options(), get_tablespace(), getdatafield(), ghstore_consistent(), ghstore_union(), gin_extract_hstore_query(), gtrgm_consistent(), gtrgm_distance(), gtrgm_penalty(), gtrgm_union(), gtsvector_compress(), gtsvector_union(), heap_fetch_toast_slice(), heap_page_items(), HeapTupleHeaderSetDatumLength(), hstore_concat(), hstore_delete(), hstore_delete_array(), hstore_delete_hstore(), hstore_from_array(), hstore_from_arrays(), hstore_hash(), hstore_hash_extended(), hstore_slice_to_array(), hstore_subscript_assign(), hstoreArrayToPairs(), hstoreUpgrade(), hstoreValidNewFormat(), hstoreValidOldFormat(), index_form_tuple_context(), json_populate_type(), jsonb_get_element(), jsonb_out(), jsonb_pretty(), jsonb_send(), JsonbToJsonbValue(), JsonbUnquote(), jsonpath_out(), jsonpath_send(), load_relcache_init_file(), logicalrep_write_tuple(), ltree2text(), ltree_concat(), ltree_gist_alloc(), ltree_union(), lz4_decompress_datum(), lz4_decompress_datum_slice(), multirange_send(), multirange_size_estimate(), parseRelOptionsInternal(), pg_detoast_datum_copy(), pg_snapshot_xip(), pglz_decompress_datum(), pglz_decompress_datum_slice(), populate_record_worker(), populate_scalar(), printtup(), range_deserialize(), range_get_flags(), range_send(), range_set_contain_empty(), read_text_file(), record_send(), RelationParseRelOptions(), ReorderBufferToastAppendChunk(), ReorderBufferToastReplace(), SendFunctionResult(), serializeAnalyzeReceive(), setup_firstcall(), silly_cmp_tsvector(), toast_compress_datum(), toast_datum_size(), toast_raw_datum_size(), toast_save_datum(), toast_tuple_try_compression(), transformRelOptions(), tsvector_concat(), tsvector_delete_arr(), tsvector_delete_by_indices(), tsvector_filter(), tsvector_setweight(), tsvector_setweight_by_filter(), tuple_data_split(), VARATT_CAN_MAKE_SHORT(), VARATT_CONVERTED_SHORT_SIZE(), write_multirange_data(), write_relcache_init_file(), xmlconcat(), and xmlroot().

VARSIZE_ANY()

static Size VARSIZE_ANY ( const void *  PTR )
inlinestatic

Definition at line 460 of file varatt.h.

461{
462 if (VARATT_IS_1B_E(PTR))
463 return VARSIZE_EXTERNAL(PTR);
464 else if (VARATT_IS_1B(PTR))
465 return VARSIZE_1B(PTR);
466 else
467 return VARSIZE_4B(PTR);
468}
#define VARSIZE_1B(PTR)
Definition: varatt.h:244
static Size VARSIZE_EXTERNAL(const void *PTR)
Definition: varatt.h:333

References VARATT_IS_1B, VARATT_IS_1B_E, VARSIZE_1B, VARSIZE_4B, and VARSIZE_EXTERNAL().

Referenced by _gin_build_tuple(), brin_range_deserialize(), brin_range_serialize(), clear_and_pfree(), compute_distinct_stats(), compute_range_stats(), compute_scalar_stats(), compute_trivial_stats(), compute_tsvector_stats(), convertJsonbScalar(), datumCopy(), datumGetSize(), decrypt_internal(), detoast_attr(), detoast_external_attr(), encrypt_internal(), getmissingattr(), inet_set_masklen(), make_tuple_indirect(), memcpyInnerDatum(), printtup(), replace_text(), replace_text_regexp(), SpGistGetInnerTypeSize(), split_text(), statext_dependencies_deserialize(), statext_mcv_deserialize(), statext_ndistinct_deserialize(), toast_tuple_init(), tuple_data_split_internal(), and varsize_any().

VARSIZE_ANY_EXHDR()

static Size VARSIZE_ANY_EXHDR ( const void *  PTR )
inlinestatic

Definition at line 472 of file varatt.h.

473{
474 if (VARATT_IS_1B_E(PTR))
476 else if (VARATT_IS_1B(PTR))
477 return VARSIZE_1B(PTR) - VARHDRSZ_SHORT;
478 else
479 return VARSIZE_4B(PTR) - VARHDRSZ;
480}
#define VARHDRSZ_EXTERNAL
Definition: varatt.h:276

References VARATT_IS_1B, VARATT_IS_1B_E, VARHDRSZ, VARHDRSZ_EXTERNAL, VARHDRSZ_SHORT, VARSIZE_1B, VARSIZE_4B, and VARSIZE_EXTERNAL().

Referenced by appendStringInfoRegexpSubstr(), appendStringInfoText(), array_agg_array_deserialize(), array_agg_deserialize(), ascii(), bcTruelen(), be_lo_from_bytea(), be_lo_put(), be_lowrite(), binary_decode(), binary_encode(), bpchar(), bpchar_name(), bpcharfastcmp_c(), btnametextcmp(), btrim(), btrim1(), bttextnamecmp(), bytea_bit_count(), bytea_catenate(), bytea_int2(), bytea_int4(), bytea_int8(), bytea_larger(), bytea_reverse(), bytea_smaller(), bytea_string_agg_transfn(), byteacmp(), byteage(), byteaGetBit(), byteaGetByte(), byteagt(), byteale(), bytealike(), bytealt(), byteanlike(), byteaout(), byteaoverlay_no_len(), byteapos(), casefold(), check_replace_text_has_escape(), citext_eq(), citext_hash(), citext_hash_extended(), citext_ne(), citextcmp(), compare_lexeme_textfreq(), compare_text_lexemes(), concat_text(), convert_bytea_to_scalar(), convert_charset(), copytext(), crc32_bytea(), crc32c_bytea(), create_mbuf_from_vardata(), cryptohash_internal(), cvt_text_name(), daitch_mokotoff(), datum_to_json_internal(), decrypt_internal(), deserialize_deflist(), do_to_timestamp(), dobyteatrim(), encrypt_internal(), escape_json_text(), extract_date(), find_provider(), Generic_Text_IC_like(), get_page_from_raw(), ghstore_consistent(), gin_cmp_prefix(), gin_cmp_tslexeme(), gin_compare_jsonb(), gin_extract_hstore_query(), gin_extract_jsonb_query(), gin_extract_query_trgm(), gin_extract_value_trgm(), gtrgm_compress(), hashtext(), hashtextextended(), hashvarlena(), hashvarlenaextended(), hstore_defined(), hstore_delete(), hstore_exists(), hstore_fetchval(), hstore_from_text(), hstore_subscript_assign(), hstore_subscript_fetch(), init_work(), initcap(), int8_avg_deserialize(), internal_citext_pattern_cmp(), internal_text_pattern_compare(), interval_avg_deserialize(), interval_part_common(), interval_to_char(), interval_trunc(), json_populate_type(), json_send(), jsonb_delete(), jsonb_delete_array(), jsonb_exists(), jsonb_exists_all(), jsonb_exists_any(), jsonb_from_text(), jsonb_get_element(), jsonb_object_field(), jsonb_object_field_text(), JsonbInitBinary(), JsonItemFromDatum(), length_in_encoding(), levenshtein(), levenshtein_less_equal(), levenshtein_less_equal_with_costs(), levenshtein_with_costs(), like_fixed_prefix(), lower(), lpad(), ltrim(), ltrim1(), lz4_compress_datum(), make_greater_string(), makeJsonLexContext(), map_sql_value_to_xml_value(), md5_bytea(), md5_text(), nameeqtext(), namelike(), namenetext(), namenlike(), numeric_avg_deserialize(), numeric_deserialize(), numeric_poly_deserialize(), numeric_to_number(), parse_re_flags(), parse_test_flags(), pg_armor(), pg_convert(), pg_dearmor(), pg_decrypt(), pg_decrypt_iv(), pg_digest(), pg_encrypt(), pg_encrypt_iv(), pg_hmac(), pg_logical_emit_message_bytea(), pg_size_bytes(), pglz_compress_datum(), pgp_armor_headers(), pgxml_xpath(), PLyBytes_FromBytea(), populate_record_worker(), printsimple(), prs_setup_firstcall(), quote_literal(), RE_compile(), RE_compile_and_cache(), regexp_like(), repeat(), replace_text(), replace_text_regexp(), rpad(), rtrim(), rtrim1(), setPathObject(), setup_regexp_matches(), setup_test_matches(), show_trgm(), similar_escape_internal(), similarity(), sort(), spg_text_choose(), spg_text_inner_consistent(), spg_text_leaf_consistent(), spg_text_picksplit(), spgist_name_choose(), spgist_name_inner_consistent(), spgist_name_leaf_consistent(), split_part(), split_text(), statext_dependencies_deserialize(), statext_mcv_serialize(), statext_ndistinct_deserialize(), strict_word_similarity(), strict_word_similarity_commutator_op(), strict_word_similarity_dist_commutator_op(), strict_word_similarity_dist_op(), strict_word_similarity_op(), string_agg_deserialize(), string_agg_transfn(), test_custom_rmgrs_insert_wal_record(), test_enc_conversion(), test_re_compile(), test_shm_mq(), test_shm_mq_pipelined(), text_catenate(), text_char(), text_cmp(), text_format(), text_left(), text_length(), text_name(), text_position(), text_position_setup(), text_reverse(), text_right(), text_starts_with(), text_substring(), text_to_cstring(), text_to_cstring_buffer(), texteqname(), texticregexeq(), texticregexne(), textlike(), textnename(), textnlike(), textregexeq(), textregexne(), textregexreplace(), textregexsubstr(), textsend(), time_part_common(), timestamp_part_common(), timestamp_to_char(), timestamp_trunc(), timestamptz_part_common(), timestamptz_to_char(), timestamptz_trunc_internal(), timetz_part_common(), to_tsvector_byid(), toast_compress_datum(), transform_jsonb_string_values(), translate(), ts_headline_byid_opt(), ts_lexize(), ts_stat_sql(), tsquery_opr_selec(), tsvector_delete_str(), tsvector_update_trigger(), unaccent_dict(), unicode_assigned(), unicode_is_normalized(), unicode_normalize_func(), unistr(), upper(), uuid_generate_v3(), uuid_generate_v5(), varchar(), varlenafastcmp_locale(), varstr_abbrev_convert(), varstrfastcmp_c(), word_similarity(), word_similarity_commutator_op(), word_similarity_dist_commutator_op(), word_similarity_dist_op(), word_similarity_op(), xmlcomment(), xpath_string(), and xslt_process().

VARSIZE_EXTERNAL()

static Size VARSIZE_EXTERNAL ( const void *  PTR )
inlinestatic

Definition at line 333 of file varatt.h.

334{
336}
static Size VARTAG_SIZE(vartag_external tag)
Definition: varatt.h:102

References VARHDRSZ_EXTERNAL, VARTAG_EXTERNAL(), and VARTAG_SIZE().

Referenced by fill_val(), toast_tuple_init(), VARSIZE_ANY(), and VARSIZE_ANY_EXHDR().

VARSIZE_SHORT()

static Size VARSIZE_SHORT ( const void *  PTR )
inlinestatic

VARTAG_EXTERNAL()

static vartag_external VARTAG_EXTERNAL ( const void *  PTR )
inlinestatic

VARTAG_IS_EXPANDED()

static bool VARTAG_IS_EXPANDED ( vartag_external  tag )
inlinestatic

Definition at line 95 of file varatt.h.

96{
97 return ((tag & ~1) == VARTAG_EXPANDED_RO);
98}

References VARTAG_EXPANDED_RO.

Referenced by VARATT_IS_EXTERNAL_EXPANDED(), VARATT_IS_EXTERNAL_NON_EXPANDED(), and VARTAG_SIZE().

VARTAG_SIZE()

static Size VARTAG_SIZE ( vartag_external  tag )
inlinestatic

Definition at line 102 of file varatt.h.

103{
104 if (tag == VARTAG_INDIRECT)
105 return sizeof(varatt_indirect);
106 else if (VARTAG_IS_EXPANDED(tag))
107 return sizeof(varatt_expanded);
108 else if (tag == VARTAG_ONDISK)
109 return sizeof(varatt_external);
110 else
111 {
112 Assert(false);
113 return 0;
114 }
115}
Assert(PointerIsAligned(start, uint64))
struct varatt_external varatt_external
struct varatt_indirect varatt_indirect

References Assert(), VARTAG_INDIRECT, VARTAG_IS_EXPANDED(), and VARTAG_ONDISK.

Referenced by VARSIZE_EXTERNAL().

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