| /*------------------------------------------------------------------------- |
| * |
| * visibilitymapdefs.h |
| * macros for accessing contents of visibility map pages |
| * |
| * |
| * Copyright (c) 2021-2023, 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 */ |