in src/afs.cc [1535:1557]
void close()
{
closed_ = true;
pgstat_report_activity(STATE_RUNNING, (std::string(Tag) + ": closing").c_str());
preparedStatements_.clear();
if (needFinish_)
{
SPI_finish();
needFinish_ = false;
}
if (CurrentResourceOwner)
{
auto resourceOwner = CurrentResourceOwner;
CurrentResourceOwner = nullptr;
ResourceOwnerRelease(
resourceOwner, RESOURCE_RELEASE_BEFORE_LOCKS, false, true);
ResourceOwnerRelease(resourceOwner, RESOURCE_RELEASE_LOCKS, false, true);
ResourceOwnerRelease(
resourceOwner, RESOURCE_RELEASE_AFTER_LOCKS, false, true);
ResourceOwnerDelete(resourceOwner);
}
pgstat_report_activity(STATE_IDLE, nullptr);
}