PostgreSQL Source Code git master
All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Pages
autovacuum.h
Go to the documentation of this file.
1/*-------------------------------------------------------------------------
2 *
3 * autovacuum.h
4 * header file for integrated autovacuum daemon
5 *
6 *
7 * Portions Copyright (c) 1996-2025, PostgreSQL Global Development Group
8 * Portions Copyright (c) 1994, Regents of the University of California
9 *
10 * src/include/postmaster/autovacuum.h
11 *
12 *-------------------------------------------------------------------------
13 */
14#ifndef AUTOVACUUM_H
15#define AUTOVACUUM_H
16
17#include "storage/block.h"
18
19/*
20 * Other processes can request specific work from autovacuum, identified by
21 * AutoVacuumWorkItem elements.
22 */
23typedef enum
24{
27
28
29/* GUC variables */
46
47/* autovacuum launcher PID, only valid when worker is shutting down */
49
51
52/* Status inquiry functions */
53extern bool AutoVacuumingActive(void);
54
55/* called from postmaster at server startup */
56extern void autovac_init(void);
57
58/* called from postmaster when a worker could not be forked */
59extern void AutoVacWorkerFailed(void);
60
61pg_noreturn extern void AutoVacLauncherMain(const void *startup_data, size_t startup_data_len);
62pg_noreturn extern void AutoVacWorkerMain(const void *startup_data, size_t startup_data_len);
63
65 Oid relationId, BlockNumber blkno);
66
67/* shared memory stuff */
68extern Size AutoVacuumShmemSize(void);
69extern void AutoVacuumShmemInit(void);
70
71#endif /* AUTOVACUUM_H */
AutoVacuumWorkItemType
Definition: autovacuum.h:24
@ AVW_BRINSummarizeRange
Definition: autovacuum.h:25
PGDLLIMPORT double autovacuum_vac_scale
Definition: autovacuum.c:125
PGDLLIMPORT int autovacuum_worker_slots
Definition: autovacuum.c:119
PGDLLIMPORT int autovacuum_anl_thresh
Definition: autovacuum.c:128
PGDLLIMPORT int autovacuum_vac_thresh
Definition: autovacuum.c:123
PGDLLIMPORT int autovacuum_vac_max_thresh
Definition: autovacuum.c:124
PGDLLIMPORT int autovacuum_vac_ins_thresh
Definition: autovacuum.c:126
PGDLLIMPORT int autovacuum_vac_cost_limit
Definition: autovacuum.c:134
Size AutoVacuumShmemSize(void)
Definition: autovacuum.c:3323
void AutoVacuumShmemInit(void)
Definition: autovacuum.c:3342
PGDLLIMPORT double autovacuum_anl_scale
Definition: autovacuum.c:129
pg_noreturn void AutoVacLauncherMain(const void *startup_data, size_t startup_data_len)
Definition: autovacuum.c:368
bool AutoVacuumRequestWork(AutoVacuumWorkItemType type, Oid relationId, BlockNumber blkno)
Definition: autovacuum.c:3264
bool AutoVacuumingActive(void)
Definition: autovacuum.c:3252
PGDLLIMPORT double autovacuum_vac_ins_scale
Definition: autovacuum.c:127
PGDLLIMPORT int autovacuum_work_mem
Definition: autovacuum.c:121
PGDLLIMPORT int autovacuum_freeze_max_age
Definition: autovacuum.c:130
PGDLLIMPORT int autovacuum_naptime
Definition: autovacuum.c:122
PGDLLIMPORT double autovacuum_vac_cost_delay
Definition: autovacuum.c:133
pg_noreturn void AutoVacWorkerMain(const void *startup_data, size_t startup_data_len)
Definition: autovacuum.c:1380
void AutoVacWorkerFailed(void)
Definition: autovacuum.c:1358
PGDLLIMPORT int AutovacuumLauncherPid
Definition: autovacuum.c:317
void autovac_init(void)
Definition: autovacuum.c:3306
PGDLLIMPORT bool autovacuum_start_daemon
Definition: autovacuum.c:118
PGDLLIMPORT int autovacuum_max_workers
Definition: autovacuum.c:120
PGDLLIMPORT int Log_autovacuum_min_duration
Definition: autovacuum.c:136
PGDLLIMPORT int autovacuum_multixact_freeze_max_age
Definition: autovacuum.c:131
uint32 BlockNumber
Definition: block.h:31
#define PGDLLIMPORT
Definition: c.h:1291
#define pg_noreturn
Definition: c.h:165
size_t Size
Definition: c.h:576
unsigned int Oid
Definition: postgres_ext.h:30
const char * type