1. 删除 context(及其所有子context)
Postgres v17.4内核完成删除一个指定内存上下文及其所有子上下文是由函数 MemoryContextDelete() 完成,该函数接收一个参数,其类型为 MemoryContext(typedef struct MemoryContextData *MemoryContext;) 即待删除的内存上下文。
函数原型:
void MemoryContextDelete(MemoryContext context)
▪ 删除一个上下文及其所有子上下文,并释放其中分配的所有空间。 特定于类型的删除例程会删除上下文的所有存储,但我们必须在这里处理子代节点。
源码实现如下:
void
MemoryContextDelete(MemoryContext context)
{
MemoryContext curr;
Assert