| PostgreSQL 9.3.25 문서 | ||||
|---|---|---|---|---|
| PostgreSQL : 문서 : 9.3 : 토토 캔 | 토토 사이트 : 문서 : 9.3 : 토토 사이트 프로그래밍 인터페이스 | 44장. 서버 프로그래밍 인터페이스 | 토토 커뮤니티 : 문서 : 9.3 : SPI_PALLOC | |
SPI_execute또는
유사한 기능포스트그레SQL롤 토토를 할당합니다
이내롤 토토 컨텍스트, 이는
다양한 할당을 관리하는 편리한 방법
서로 다른 시간 동안 살아야 하는 장소. 파괴
컨텍스트는 할당된 모든 롤 토토를 해제합니다. 따라서,
피하기 위해 개별 개체를 추적할 필요는 없습니다.
롤 토토 누수; 대신 상대적으로 적은 수의 컨텍스트만
관리해야 합니다.팔록그리고
관련 함수는에서 롤 토토를 할당합니다."현재"컨텍스트.
SPI_connect새 기억을 생성합니다
컨텍스트를 파악하여 최신 상태로 만듭니다.SPI_finish이전 현재 메모리를 복원합니다.
컨텍스트를 삭제하고 다음에 의해 생성된 컨텍스트를 파괴합니다.SPI_connect. 이러한 작업을 통해 일시적인
프로시저 내에서 수행된 메모리 할당은 다음에서 회수됩니다.
프로시저 종료, 메모리 누수 방지.
그러나 프로시저가 객체를 반환해야 하는 경우
할당된 메모리(참조별 전달 데이터 값 등)
유형), 다음을 사용하여 해당 메모리를 할당할 수 없습니다.팔록, 적어도 연결되어 있는 동안에는 그렇지 않습니다.
SPI. 시도하면 개체 할당이 해제됩니다.SPI_finish, 그리고 귀하의 절차는 작동하지 않을 것입니다
안정적으로. 이 문제를 해결하려면 다음을 사용하세요.SPI_palloc반환을 위한 롤 토토 할당
개체.SPI_palloc롤 토토를 할당합니다
에서"상위 실행자 컨텍스트", 그거
는 현재 있었던 롤 토토 컨텍스트입니다.SPI_connect이 호출되었습니다. 이는 정확히
프로시저에서 반환된 값에 대한 올바른 컨텍스트입니다.
만약SPI_palloc이 호출되는 동안
절차가 SPI에 연결되어 있지 않으면 다음과 동일하게 작동합니다.
정상팔록. 시술 전
SPI 관리자에 연결하면 현재 롤 토토 컨텍스트는
상위 실행기 컨텍스트이므로 프로시저에 의해 이루어진 모든 할당
를 통해팔록또는 SPI 유틸리티를 통해
기능은 이러한 맥락에서 만들어집니다.
언제SPI_connect이라고 합니다.
다음에 의해 생성되는 프로시저의 개인 컨텍스트SPI_connect, 현재 컨텍스트가 됩니다. 모두
다음에 의해 할당됨팔록,
repalloc또는 SPI 유틸리티 함수
(제외하다SPI_copytuple,
SPI_returntuple, SPI_modifytuple및SPI_palloc)는 이러한 맥락에서 만들어집니다. 언제
절차가 SPI 관리자와의 연결을 끊습니다(를 통해)SPI_finish) 현재 컨텍스트가 다음으로 복원됩니다.
상위 실행기 컨텍스트 및 모든 할당
프로시저 롤 토토 컨텍스트가 해제되어 더 이상 사용할 수 없습니다.
이 섹션에 설명된 모든 기능은 두 가지 모두에서 사용할 수 있습니다
연결된 프로시저와 연결되지 않은 프로시저. 연결되지 않은 프로시저에서는
기본 일반 서버 기능과 동일하게 작동합니다.
(팔록등).
| 이전 | 배트맨 토토 : 문서 : 9.3 : 배트맨 토토 9.3.25 문서화 | 다음 |
| SPI_getnspname | 토토 사이트 : 문서 : 9.3 : 토토 사이트 프로그래밍 인터페이스 | SPI_palloc |