SPI_EXECUTE
또는 유사한 함수 postgresql내에서 메이저 토토 사이트를 할당메이저 토토 사이트 컨텍스트는 다양한 시간 동안 살아야하는 여러 곳에서 만들어진 할당을 관리하는 편리한 방법을 제공합니다. 컨텍스트를 파괴하면 할당 된 모든 메이저 토토 사이트가 방출됩니다.Palloc
및 관련 함수는에서 메이저 토토 사이트를 할당합니다“현재”컨텍스트.
SPI_CONNECT
새로운 메이저 토토 사이트 컨텍스트를 생성하여 현재로 만듭니다.SPI_FINISH
이전의 현재 메이저 토토 사이트 컨텍스트를 복원하고에 의해 생성 된 컨텍스트를 파괴합니다SPI_CONNECT
. 이러한 동작은 C 함수 내부에서 이루어진 일시적 메이저 토토 사이트 할당이 C 함수 종료시 메이저 토토 사이트 누출을 피하도록 보장합니다.
그러나 C 함수가 할당 된 메이저 토토 사이트에서 개체를 반환 해야하는 경우 (예 : Pass-By-Reference 데이터 유형의 값과 같은) 해당 메이저 토토 사이트를 사용하여 해당 메이저 토토 사이트를 할당 할 수 없습니다.Palloc
, 적어도 SPI에 연결되어 있지 않습니다. 시도하면 객체는에 의해 거래됩니다.SPI_FINISH
, C 함수는 안정적으로 작동하지 않습니다. 이 문제를 해결하려면 사용SPI_PALLOC
반환 오브젝트에 대한 메이저 토토 사이트를 할당하려면SPI_PALLOC
에 메이저 토토 사이트를 할당“상위 집행자 컨텍스트”SPI_CONNECT
호출되었으며, 이는 C 함수에서 반환 된 값에 대한 올바른 컨텍스트입니다. 이 섹션에 설명 된 다른 유틸리티 기능 중 일부는 상위 집행자 컨텍스트에서 생성 된 개체를 반환합니다.
whenSPI_CONNECT
| C 함수의 비공개 컨텍스트라고합니다.SPI_CONNECT
는 현재 컨텍스트로 만들어졌습니다. 에 의해 만들어진 모든 할당Palloc
,Repalloc
또는 SPI 유틸리티 함수 (이 섹션에 설명 된대로)는이 맥락에서 이루어집니다. C 함수가 SPI 관리자와 연결이 끊어지면 (viaSPI_FINISH
) 현재 컨텍스트는 상부 집행자 컨텍스트로 복원되며 C 함수 메이저 토토 사이트 컨텍스트에서 작성된 모든 할당은 해제되며 더 이상 사용할 수 없습니다.