上一篇:
【0325】Postgres内核之 VACUUM(FULL) 创建 BufferAccessStrategy object(16)
1. 构建 vacuum 关系表(reltaions) List
在上一篇文章中讲解了Postgres内核创建 缓冲区策略对象 ,之后初始化给全局指针变量 vac_strategy
。 接下来Postgres将通过vacuum()函数的参数,以确认用户待 vacuum 的 数据库关系表列表(是指定一个,还是当前数据库中所有表)。
该过程判断逻辑如下:
-
如果 relations != NIL , 说明用户指定了待 VACUUM 的 reltaion;
- 解析以确定用户指定了具体 reltaion
-
如果 relations == NIL, 说明用户未指定 relations, 意味着用户想要 VACUUM 当前登录数据库中 所有的 relations。