39 #define VACUUM_OPTION_NO_PARALLEL 0 45 #define VACUUM_OPTION_PARALLEL_BULKDEL (1 << 0) 52 #define VACUUM_OPTION_PARALLEL_COND_CLEANUP (1 << 1) 60 #define VACUUM_OPTION_PARALLEL_CLEANUP (1 << 2) 63 #define VACUUM_OPTION_MAX_VALID_VALUE ((1 << 3) - 1) 178 #define VACOPT_VACUUM 0x01 179 #define VACOPT_ANALYZE 0x02 180 #define VACOPT_VERBOSE 0x04 181 #define VACOPT_FREEZE 0x08 182 #define VACOPT_FULL 0x10 183 #define VACOPT_SKIP_LOCKED 0x20 184 #define VACOPT_SKIPTOAST 0x40 185 #define VACOPT_DISABLE_PAGE_SKIPPING 0x80 255 double scanned_tuples);
265 int freeze_min_age,
int freeze_table_age,
266 int multixact_freeze_min_age,
267 int multixact_freeze_table_age,
void vacuum(List *relations, VacuumParams *params, BufferAccessStrategy bstrategy, bool isTopLevel)
int multixact_freeze_table_age
void vac_open_indexes(Relation relation, LOCKMODE lockmode, int *nindexes, Relation **Irel)
pg_atomic_uint32 * VacuumSharedCostBalance
int vacuum_freeze_table_age
int vacuum_multixact_freeze_min_age
void vac_update_datfrozenxid(void)
Datum * stavalues[STATISTIC_NUM_SLOTS]
void ExecVacuum(ParseState *pstate, VacuumStmt *vacstmt, bool isTopLevel)
Relation vacuum_open_relation(Oid relid, RangeVar *relation, bits32 options, bool verbose, LOCKMODE lmode)
pg_atomic_uint32 * VacuumActiveNWorkers
int vacuum_multixact_freeze_table_age
void vacuum_delay_point(void)
bool statypbyval[STATISTIC_NUM_SLOTS]
char statypalign[STATISTIC_NUM_SLOTS]
double anl_get_next_S(double t, int n, double *stateptr)
Oid stacoll[STATISTIC_NUM_SLOTS]
void vac_update_relstats(Relation relation, BlockNumber num_pages, double num_tuples, BlockNumber num_all_visible_pages, bool hasindex, TransactionId frozenxid, MultiXactId minmulti, bool in_outer_xact)
int vacuum_freeze_min_age
int numnumbers[STATISTIC_NUM_SLOTS]
FormData_pg_attribute * Form_pg_attribute
PGDLLIMPORT int default_statistics_target
struct VacAttrStats * VacAttrStatsP
VacOptTernaryValue index_cleanup
bool vacuum_is_relation_owner(Oid relid, Form_pg_class reltuple, bits32 options)
Oid staop[STATISTIC_NUM_SLOTS]
int16 stakind[STATISTIC_NUM_SLOTS]
int VacuumCostBalanceLocal
Oid statypid[STATISTIC_NUM_SLOTS]
VacOptTernaryValue truncate
#define STATISTIC_NUM_SLOTS
void analyze_rel(Oid relid, RangeVar *relation, VacuumParams *params, List *va_cols, bool in_outer_xact, BufferAccessStrategy bstrategy)
struct VacAttrStats VacAttrStats
TransactionId MultiXactId
void vac_close_indexes(int nindexes, Relation *Irel, LOCKMODE lockmode)
float4 * stanumbers[STATISTIC_NUM_SLOTS]
void(* AnalyzeAttrComputeStatsFunc)(VacAttrStatsP stats, AnalyzeAttrFetchFunc fetchfunc, int samplerows, double totalrows)
struct VacuumParams VacuumParams
Datum(* AnalyzeAttrFetchFunc)(VacAttrStatsP stats, int rownum, bool *isNull)
FormData_pg_type * Form_pg_type
double vac_estimate_reltuples(Relation relation, BlockNumber total_pages, BlockNumber scanned_pages, double scanned_tuples)
MemoryContext anl_context
FormData_pg_class * Form_pg_class
int numvalues[STATISTIC_NUM_SLOTS]
int16 statyplen[STATISTIC_NUM_SLOTS]
double anl_random_fract(void)
AnalyzeAttrComputeStatsFunc compute_stats
bool std_typanalyze(VacAttrStats *stats)
void vacuum_set_xid_limits(Relation rel, int freeze_min_age, int freeze_table_age, int multixact_freeze_min_age, int multixact_freeze_table_age, TransactionId *oldestXmin, TransactionId *freezeLimit, TransactionId *xidFullScanLimit, MultiXactId *multiXactCutoff, MultiXactId *mxactFullScanLimit)
int multixact_freeze_min_age
double anl_init_selection_state(int n)