【0388】Postgres内核 SQL function 删除 physical replication slot 底层实现( 4 )
文章目录
- 1. 概述
- 2. `SQL function`
- 2.1 待删除 `physical replication slot`
- 2.2 检查当前用户权限
- 2.3 检查 `Postgres` 服务配置
- 3. 删除 `physical replication slot`
- 3.1 获取先前创建的 `slot`
- 3.1.1 获取 `slot`
- 3.1.1 初始化 `active_pid`
- 3.2 永久删除 `slot`
- 3.2.1 生成路径名
- 3.2.2 初始化 `active_pid` 和 `in_use`
- 3.2.3 重新计算 `Xmin`
1. 概述
在 【0382】Postgres内核 SQL function( pg_create_physical_replicat) 实现 physical replication slots 创建 ( 1 ) 一文中讲解了 Postgres内核实现 physical replication slot 创建的底层实现,本文将继续探讨Postgres内核实现对于已创建的 physical replication slot 删除的实现。
本文内容:
(1)用户下发的 physical replication slot 删除请求到处理该请求的链路, 以及处理该请求的 SQL function。(pg_drop_replication_slot 函数)
(2)SQL function 获取带删除 replication slot name
(3)replication slots 权限检查(仅 supersuer 或 replication role 支持)
(4)检查 Postgres服务是否支持 replication slot<