1. vacuum() 包装器
ExecVacuum()函数是VACUUM、ANALYZE命令的主要入口点,该函数主要是为将在vacuum()
中发生的实际操作准备包装器。本文将从Postgres内核源码角度,详细研究该函数都为即将调用的 vacuum() 函数做了哪些准备工作。
本文内容将分为以下几个部分:
- 初始化 VacuumParams (VACUUM、ANALYZE的参数自定义行为)
- 解析VacuumStmt 中 options 参数列表
- 设置 VACUUM 的options
1.1 初始化 VacuumParams
VacuumParams 数据类型在 【0304】psql 执行“VACUUM FULL”命令的背后实现过程 中已经讲过,接下来看ExecVacuum()函数是如何完成的该类型变量params
中成员初始化的过程。
ExecVacuum()函数的完整源码实现如下:
void ExecVacuum