35 lines
1.1 KiB
C
35 lines
1.1 KiB
C
/*-------------------------------------------------------------------------
|
|
*
|
|
* visibilitymapdefs.h
|
|
* macros for accessing contents of visibility map pages
|
|
*
|
|
*
|
|
* Copyright (c) 2021-2024, PostgreSQL Global Development Group
|
|
*
|
|
* src/include/access/visibilitymapdefs.h
|
|
*
|
|
*-------------------------------------------------------------------------
|
|
*/
|
|
#ifndef VISIBILITYMAPDEFS_H
|
|
#define VISIBILITYMAPDEFS_H
|
|
|
|
/* Number of bits for one heap page */
|
|
#define BITS_PER_HEAPBLOCK 2
|
|
|
|
/* Flags for bit map */
|
|
#define VISIBILITYMAP_ALL_VISIBLE 0x01
|
|
#define VISIBILITYMAP_ALL_FROZEN 0x02
|
|
#define VISIBILITYMAP_VALID_BITS 0x03 /* OR of all valid visibilitymap
|
|
* flags bits */
|
|
/*
|
|
* To detect recovery conflicts during logical decoding on a standby, we need
|
|
* to know if a table is a user catalog table. For that we add an additional
|
|
* bit into xl_heap_visible.flags, in addition to the above.
|
|
*
|
|
* NB: VISIBILITYMAP_XLOG_* may not be passed to visibilitymap_set().
|
|
*/
|
|
#define VISIBILITYMAP_XLOG_CATALOG_REL 0x04
|
|
#define VISIBILITYMAP_XLOG_VALID_BITS (VISIBILITYMAP_VALID_BITS | VISIBILITYMAP_XLOG_CATALOG_REL)
|
|
|
|
#endif /* VISIBILITYMAPDEFS_H */
|