📄 vacuum.h
字号:
/*------------------------------------------------------------------------- * * vacuum.h * header file for postgres vacuum cleaner * * * Copyright (c) 1994, Regents of the University of California * * $Id: vacuum.h,v 1.20.2.1 1999/08/25 11:32:52 ishii Exp $ * *------------------------------------------------------------------------- */#ifndef VACUUM_H#define VACUUM_H#include "access/funcindex.h"#include "catalog/pg_index.h"#include "catalog/pg_attribute.h"#include "nodes/pg_list.h"#include "storage/block.h"#include "storage/off.h"typedef struct VAttListData{ int val_dummy; struct VAttListData *val_next;} VAttListData;typedef VAttListData *VAttList;typedef struct VPageDescrData{ BlockNumber vpd_blkno; /* BlockNumber of this Page */ Size vpd_free; /* FreeSpace on this Page */ uint16 vpd_offsets_used; /* Number of OffNums used by * vacuum */ uint16 vpd_offsets_free; /* Number of OffNums free or to be * free */ OffsetNumber vpd_offsets[1];/* Array of its OffNums */} VPageDescrData;typedef VPageDescrData *VPageDescr;typedef struct VPageListData{ int vpl_empty_end_pages; /* Number of "empty" end-pages */ int vpl_num_pages; /* Number of pages in vpl_pagedesc */ int vpl_num_allocated_pages; /* Number of allocated pages in vpl_pagedesc */ VPageDescr *vpl_pagedesc; /* Descriptions of pages */} VPageListData;typedef VPageListData *VPageList;typedef struct{ FuncIndexInfo finfo; FuncIndexInfo *finfoP; Form_pg_index tform; int natts;} IndDesc;typedef struct{ Form_pg_attribute attr; Datum best, guess1, guess2, max, min; int16 best_len, guess1_len, guess2_len, max_len, min_len; int32 best_cnt, guess1_cnt, guess1_hits, guess2_hits, null_cnt, nonnull_cnt; int32 max_cnt, min_cnt; FmgrInfo f_cmpeq, f_cmplt, f_cmpgt; regproc outfunc; bool initialized;} VacAttrStats;typedef struct VRelListData{ Oid vrl_relid; struct VRelListData *vrl_next;} VRelListData;typedef VRelListData *VRelList;typedef struct VTupleLinkData{ ItemPointerData new_tid; ItemPointerData this_tid;} VTupleLinkData;typedef VTupleLinkData *VTupleLink;typedef struct VTupleMoveData{ ItemPointerData tid; /* tuple ID */ VPageDescr vpd; /* where to move */ bool cleanVpd; /* clean vpd before using */} VTupleMoveData;typedef VTupleMoveData *VTupleMove;typedef struct VRelStats{ Oid relid; int num_tuples; int num_pages; Size min_tlen; Size max_tlen; bool hasindex; int va_natts; /* number of attrs being analyzed */ VacAttrStats *vacattrstats; int num_vtlinks; VTupleLink vtlinks;} VRelStats;extern bool VacuumRunning;extern void vc_abort(void);extern void vacuum(char *vacrel, bool verbose, bool analyze, List *va_spec);#define ATTNVALS_SCALE 1000000000 /* XXX so it can act as a float4 */#endif /* VACUUM_H */
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -