윈 토토 : 문서 : 9.4 : 윈 토토 | |||
---|---|---|---|
윈 토토 : 문서 : 9.4 : spi_getnspname | PostgreSQL : 문서 : 9.4 : 서버 프로그래밍 무지개 토토 | 44 장 서버 프로그래밍 인터페이스 | 다음 |
SPI_EXECUTE
또는 유사한 함수PostgreSQL내에서 토토 커뮤니티를 할당토토 커뮤니티 컨텍스트는 다양한 시간 동안 살아야하는 여러 장소에서 만들어진 할당을 관리하는 편리한 방법을 제공합니다. 컨텍스트를 파괴하면 할당 된 모든 토토 커뮤니티가 방출됩니다. 따라서 토토 커뮤니티 누출을 피하기 위해 개별 물체를 추적 할 필요는 없습니다. 대신 상대적으로 적은 수의 맥락 만 관리해야합니다.Palloc
및 관련 함수는에서 토토 커뮤니티를 할당합니다."현재"컨텍스트.
SPI_CONNECT
새로운 토토 커뮤니티 컨텍스트를 생성하여 현재로 만듭니다.SPI_FINISH
이전의 현재 토토 커뮤니티 컨텍스트를 복원하고에 의해 생성 된 컨텍스트를 파괴합니다SPI_CONNECT
. 이러한 조치는 절차 내부에서 이루어진 일시적인 토토 커뮤니티 할당을 절차 종료시 토토 커뮤니티 누출을 피하도록 보장합니다.
그러나 프로 시저가 할당 된 토토 커뮤니티 (예 : Pass-by-Reference 데이터 유형의 값과 같은)에서 객체를 반환 해야하는 경우를 사용하여 해당 토토 커뮤니티를 할당 할 수 없습니다.Palloc
, 적어도 SPI에 연결되어 있지 않습니다. 시도하면 객체는에 의해 거래됩니다.SPI_FINISH
및 귀하의 절차는 안정적으로 작동하지 않습니다. 이 문제를 해결하려면 사용SPI_PALLOC
리턴 객체에 대한 토토 커뮤니티를 할당하려면SPI_PALLOC
에 토토 커뮤니티를 할당"상위 집행자 컨텍스트"SPI_CONNECT
는 절차에서 반환 된 값에 대한 올바른 컨텍스트입니다.
ifSPI_PALLOC
절차가 SPI에 연결되지 않은 상태에서 호출되면 정상과 동일하게 작동Palloc
. 절차가 SPI 관리자에게 연결되기 전에 현재 토토 커뮤니티 컨텍스트는 상위 집행자 컨텍스트이므로 절차에 따라 모든 할당Palloc
또는 SPI 유틸리티 함수는이 맥락에서 이루어집니다.
언제SPI_CONNECT
| 절차의 개인 컨텍스트 인.SPI_CONNECT
는 현재 컨텍스트로 만들어졌습니다. 에 의해 만들어진 모든 할당Palloc
, Repalloc
또는 SPI 유틸리티 함수 ( 제외spi_copytuple
, spi_returntuple
, SPI_ModifyTuple
및SPI_PALLOC
)이 맥락에서 이루어집니다. 프로 시저가 SPI 관리자와 연결을 끊을 때 (viaSPI_FINISH
) 현재 컨텍스트는 상부 집행자 컨텍스트로 복원되며 프로 시저 토토 커뮤니티 컨텍스트에서 작성된 모든 할당은 해제되며 더 이상 사용할 수 없습니다.
이 섹션에 설명 된 모든 기능은 연결되지 않은 절차 및 연결되지 않은 절차 모두에서 사용할 수 있습니다. 연결되지 않은 절차에서는 기본 일반 서버 기능과 동일하게 작동합니다 (.Palloc
등).
윈 토토 : 문서 : 9.4 : spi_getnspname | 윈 토토 : 문서 : 9.4 : 윈 토토 9.4.26 문서화 | 다음 |
spi_getnspname | PostgreSQL : 문서 : 9.4 : 서버 프로그래밍 무지개 토토 | SPI_PALLOC |