이 문서는 지원되지 않는 버전의 PostgreSQL 용입니다.
당신은에 대해 같은 페이지를 볼 수 있습니다PostgreSQL : 문서 : 17 : 45.3. 토토 사이트 순위 관리버전 또는 위에 나열된 다른 지원 버전 중 하나입니다.

21.3. 사설 토토 사이트 관리

목차
Spi_copytuple -만든다 상단 집행자 컨텍스트에서 튜플 사본
SPI_COPYTUPLEDESC -만든다 상위 집행자 컨텍스트에서 튜플 디스크립터 사본
SPI_COPYTUPLEINTOSLOT -만든다 상위 집행자 컨텍스트의 튜플 및 디스크립터 사본
SPI_ModifyTuple -생성 주어진 튜플의 선택된 필드를 대체하여 튜플
SPI_PALLOC -할당됩니다 상위 집행자 맥락에서의 기억
SPI_REPALLOC -다시 할인합니다 상위 집행자 맥락에서의 기억
SPI_PFREE -사설 토토 사이트를 해방합니다 상위 집행자 맥락에서
SPI_FREETUPLE -자유 상부 집행자 컨텍스트에 할당 된 튜플
SPI_FREETUPTABLE -자유 생성 된 튜플 세트SPI_EXEC또는 유사한 함수
SPI_FreePlan -  이전에 저장된 계획을 릴리스

PostgreSQL사설 토토 사이트를 할당합니다 내에서컨텍스트여러 가지로 만들어진 할당을 관리하는 편리한 방법 다른 시간 동안 살아야하는 장소. 컨텍스트를 파괴하면 할당 된 모든 메모리가 방출됩니다. 그것에. 따라서 개인을 추적 할 필요는 없습니다. 메모리 누출을 피하기위한 개체 --- 비교적 적은 숫자 만 맥락을 관리해야합니다.Palloc및 관련 함수는 사설 토토 사이트를 할당합니다 에서"현재"컨텍스트.

SPI_CONNECT새로운 사설 토토 사이트를 만듭니다 맥락과 그것을 최신으로 만듭니다.SPI_FINISH이전의 현재 메모리를 복원합니다 맥락과 컨텍스트를 파괴합니다.SPI_CONNECT. 이러한 조치는이를 보장합니다 시술 내에서 이루어진 일시적인 메모리 할당은 다음과 같습니다 메모리 누출을 피하고 절차 종료시 재생.

그러나 절차가 할당 된 사설 토토 사이트를 반환 해야하는 경우 오브젝트 (예 : Pass-By-Reference 데이터 유형의 값), 귀하 를 사용하여 리턴 객체를 할당 할 수 없습니다Palloc, 적어도 연결되는 동안 SPI. 시도하면 객체는 중에 거래됩니다.SPI_FINISH그리고 당신의 절차는 확실하게 작동하지 않습니다!

이 문제를 해결하려면 사용SPI_PALLOC반품 객체를 할당하려면SPI_PALLOC공간을 할당"상단 집행 인"메모리 --- 즉 현재의 메모리 컨텍스트SPI_CONNECT는 정확하게 호출되었습니다 절차의 반환 값에 대한 올바른 컨텍스트.

SPI에 연결되지 않은 상태에서 호출 된 경우SPI_PALLOC평원과 동일하게 행동Palloc.

절차가 SPI 관리자에게 연결되기 전에 현재 메모리 컨텍스트는 상위 집행자 컨텍스트이므로 모든 할당 를 통해 절차에 의해 제작Palloc또는 SPI 유틸리티 기능은 이러한 맥락에서 이루어집니다.

이후SPI_CONNECT호출됩니다 현재 컨텍스트는 절차의 개인 컨텍스트입니다.SPI_CONNECT. 모든 할당 을 통해Palloc/Repalloc또는 SPI 유틸리티 함수 (제외 을 위한SPI_COPYTUPLE, SPI_COPYTUPLEDESC, SPI_COPYTUPLEINTOSLOT, SPI_ModifyTupleSPI_PALLOC)이 맥락에서 이루어집니다.

절차가 SPI 관리자와의 분리 될 때 (viaSPI_FINISH) 현재 컨텍스트는 다음과 같습니다 상위 집행자 컨텍스트로 복원되고 모든 할당이 이루어졌습니다. 절차에서 메모리 컨텍스트가 해제되고 사용할 수 없습니다. 더!

이 섹션에 설명 된 모든 기능은 둘 다에서 사용할 수 있습니다. 연결 및 연결되지 않은 절차. 연결되지 않은 상태에서 절차, 그들은 기본 평범한 백엔드와 동일하게 행동합니다. 함수 (Palloc등).