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

44.3. 롤 토토 관리

목차
SPI_PALLOC -롤 토토 할당 상위 집행자 맥락에서
SPI_REPALLOC -롤 토토를 재 할당하십시오 상위 집행자 맥락에서
스포츠 토토 베트맨 : 문서 : 9.3 : SPI_PFREE -- 무료 상위 집행자 컨텍스트의 롤 토토
Spi_copytuple -사본을 만드십시오 상위 집행자 컨텍스트의 행
spi_returntuple -- 준비하다 튜플을 데이텀으로 반환하려면
SPI_ModifyTuple -- 만들다 주어진 행의 선택된 필드를 교체하여 행
SPI_FREETUPLE -무료로 상위 집행자 컨텍스트에 할당
SPI_FREETUPTABLE -- 무료 에 의해 생성 된 행 세트SPI_EXECUTE또는 a 유사한 기능
SPI_FreePlan -무료 a 이전에 저장된 준비된 진술

PostgreSQL롤 토토를 할당합니다 이내에롤 토토 컨텍스트여러 가지로 만들어진 할당을 관리하는 편리한 방법 다른 시간 동안 살아야하는 장소. 파괴 컨텍스트는 할당 된 모든 롤 토토를 방출합니다. 따라서, 피하기 위해 개별 물체를 추적 할 필요는 없습니다. 롤 토토 누출; 대신 상대적으로 적은 수의 맥락 만 관리해야합니다.Palloc및 관련 함수는에서 롤 토토를 할당합니다."현재"컨텍스트.

SPI_CONNECT새로운 롤 토토를 만듭니다 맥락과 그것을 최신으로 만듭니다.SPI_FINISH이전의 현재 메모리를 복원합니다 맥락과 컨텍스트를 파괴합니다.SPI_CONNECT. 이러한 조치는 일시적으로 보장합니다 절차 내부에서 이루어진 롤 토토 할당은 다시 시작됩니다 롤 토토 누출 방지 절차 종료.

그러나 절차가 객체를 반환 해야하는 경우 할당 된 롤 토토 (예 : Pass-by-Reference 데이터의 값 등 유형),를 사용하여 해당 롤 토토를 할당 할 수 없습니다Palloc, 적어도 연결되는 동안 SPI. 시도하면 객체는에 의해 거래됩니다.SPI_FINISH및 귀하의 절차는 작동하지 않습니다 확실하게. 이 문제를 해결하려면 사용SPI_PALLOC반품에 대한 롤 토토를 할당합니다 물체.SPI_PALLOC롤 토토를 할당합니다 에서"상위 집행자 컨텍스트", 그 IS,SPI_CONNECT가 호출되었는데, 이것은 정확히입니다 절차에서 반환 된 값에 대한 올바른 컨텍스트.

ifSPI_PALLOC절차는 SPI에 연결되어 있지 않으면 정상Palloc. 절차 전에 SPI 관리자에게 연결하면 현재 롤 토토 컨텍스트는 다음과 같습니다. 상위 집행자 컨텍스트, 따라서 절차에 의해 모든 할당 을 통해Palloc또는 SPI 유틸리티에 의해 기능은이 맥락에서 이루어집니다.

언제SPI_CONNECT절차의 사적인 맥락.SPI_CONNECT는 현재 상황으로 만들어졌습니다. 모두 할당Palloc, Repalloc또는 SPI 유틸리티 함수 (제외SPI_COPYTUPLE, spi_returntuple, SPI_ModifyTupleSPI_PALLOC)는이 맥락에서 이루어집니다. 언제 a 절차는 SPI 관리자와의 연결을 끊습니다 (viaSPI_FINISH) 현재 컨텍스트가 복원됩니다 상위 집행자 컨텍스트 및 모든 할당 절차 롤 토토 컨텍스트가 해제되고 더 이상 사용할 수 없습니다.

이 섹션에 설명 된 모든 기능은 둘 다에서 사용할 수 있습니다. 연결 및 연결되지 않은 절차. 연결되지 않은 절차에서 그들은 기본 일반 서버 기능과 동일하게 행동합니다. (Palloc등).