mirror of
https://github.com/postgres/postgres.git
synced 2025-05-28 00:03:23 -04:00
43 lines
1.6 KiB
C
43 lines
1.6 KiB
C
/*-------------------------------------------------------------------------
|
|
*
|
|
* visibilitymap.h
|
|
* visibility map interface
|
|
*
|
|
*
|
|
* Portions Copyright (c) 2007-2022, PostgreSQL Global Development Group
|
|
* Portions Copyright (c) 1994, Regents of the University of California
|
|
*
|
|
* src/include/access/visibilitymap.h
|
|
*
|
|
*-------------------------------------------------------------------------
|
|
*/
|
|
#ifndef VISIBILITYMAP_H
|
|
#define VISIBILITYMAP_H
|
|
|
|
#include "access/visibilitymapdefs.h"
|
|
#include "access/xlogdefs.h"
|
|
#include "storage/block.h"
|
|
#include "storage/buf.h"
|
|
#include "utils/relcache.h"
|
|
|
|
/* Macros for visibilitymap test */
|
|
#define VM_ALL_VISIBLE(r, b, v) \
|
|
((visibilitymap_get_status((r), (b), (v)) & VISIBILITYMAP_ALL_VISIBLE) != 0)
|
|
#define VM_ALL_FROZEN(r, b, v) \
|
|
((visibilitymap_get_status((r), (b), (v)) & VISIBILITYMAP_ALL_FROZEN) != 0)
|
|
|
|
extern bool visibilitymap_clear(Relation rel, BlockNumber heapBlk,
|
|
Buffer vmbuf, uint8 flags);
|
|
extern void visibilitymap_pin(Relation rel, BlockNumber heapBlk,
|
|
Buffer *vmbuf);
|
|
extern bool visibilitymap_pin_ok(BlockNumber heapBlk, Buffer vmbuf);
|
|
extern void visibilitymap_set(Relation rel, BlockNumber heapBlk, Buffer heapBuf,
|
|
XLogRecPtr recptr, Buffer vmBuf, TransactionId cutoff_xid,
|
|
uint8 flags);
|
|
extern uint8 visibilitymap_get_status(Relation rel, BlockNumber heapBlk, Buffer *vmbuf);
|
|
extern void visibilitymap_count(Relation rel, BlockNumber *all_visible, BlockNumber *all_frozen);
|
|
extern BlockNumber visibilitymap_prepare_truncate(Relation rel,
|
|
BlockNumber nheapblocks);
|
|
|
|
#endif /* VISIBILITYMAP_H */
|