지원되지 않는 버전 :7.0 / 6.5 / 6.4
이 문서는 지원되지 않는 버전의 PostgreSQL을위한 것입니다.
당신은에 대해 같은 페이지를 볼 수 있습니다현재버전 또는 위에 나열된 다른 지원 버전 중 하나입니다.

사설 토토 사이트

이름

사설 토토 사이트 - 실행 계획을 만듭니다 (Parser+Planner+Optimizer) 및 쿼리 실행.
사설 토토 사이트 (쿼리, Tcount)

입력

char *쿼리

문자열 쿼리 계획

intTcount

반환 할 튜플의 최대 수

출력

int
SPI_OK_EXECif 제대로 연결이 끊어졌습니다
SPI_ERROR_UNCONNECT호출 된 경우 연결되지 않은 절차에서
SPI_ERROR_ARGUMENT쿼리가 null 또는 인 경우Tcount<0.
SPI_ERROR_UNCONNECT절차 연결되지 않았습니다.
SPI_ERROR_COPYif stdin에 대한 복사.
SPI_ERROR_CURSORCURSOR를 선언/닫으면 Fetch.
SPI_ERROR_TRANSACTIONif 시작/중단/종료.
SPI_ERROR_OPUNKNOWN유형 인 경우 쿼리가 알려지지 않았습니다 (이것은 발생하지 않아야합니다).

쿼리 실행이 성공적이면 다음 (음이 아닌) 값이 반환됩니다.

spi_ok_utilityif 일부 유틸리티 (예 : 테이블 작성 ...)가 실행되었습니다
spi_ok_selectif 선택 (선택하지 않지만 ...에!)이 실행되었습니다
spi_ok_selintoif Select ... in in that Recuble
SPI_OK_INSERTif 삽입 (또는 삽입 ... 선택)이 실행되었습니다
SPI_OK_DELETEif 삭제 실행
SPI_OK_UPDATEif 업데이트가 실행되었습니다

설명

사설 토토 사이트실행 계획을 만듭니다 (Parser+Planner+Optimizer) 쿼리를 실행합니다.tcount튜플.

usage

이것은 연결된 절차에서만 호출해야합니다. 만약에Tcount0이면 실행됩니다 쿼리 스캔으로 반환 된 모든 튜플에 대한 쿼리. 사용Tcount 0 제한 할 수 있습니다 쿼리가 실행되는 튜플의 수. 을 위한 예,

사설 토토 사이트 ( "테이블에 삽입 * 선택 *에서 삽입", 5);
는 최대 5 개의 튜플을 테이블에 삽입 할 수 있습니다. 만약에 쿼리 실행은 성공적이지 않은 가치가되었습니다. 반환됩니다.

참고 :하나의 문자열로 많은 쿼리를 전달할 수 있습니다 쿼리 문자열은 규칙에 의해 다시 작성 될 수 있습니다.사설 토토 사이트마지막 쿼리의 결과를 반환합니다 실행.

(마지막) 쿼리가 있었던 실제 튜플 수 실행 된 글로벌 변수 SPI_PROCESSED (NOT이 아닌 경우에서 실행됩니다.spi_ok_utility). 만약에spi_ok_select반환 및 SPI_PROCESSED 0 그런 다음 글로벌 포인터 spitupletable을 사용할 수 있습니다 *spi_tuptable 선택한 튜플에 액세스 할 수 있습니다.SPI_FINISH자유롭고 모든 것을 만듭니다 spitupletables는 사용할 수 없습니다! (메모리 관리 참조).

사설 토토 사이트중 하나를 반환 할 수 있습니다 다음 (부정) 값 :

SPI_ERROR_ARGUMENTif 쿼리는 null 또는tcount< 0.
SPI_ERROR_UNCONNECTif 절차가 연결되지 않았습니다.
SPI_ERROR_COPY사본 인 경우 stdin에서/
SPI_ERROR_CURSORif 커서 선언/닫기, fetch.
SPI_ERROR_TRANSACTIONif 시작/중단/종료.
SPI_ERROR_OPUNKNOWNif 쿼리 유형은 알 수 없습니다 (이것은 발생하지 않아야합니다).

알고리즘

사설 토토 사이트다음을 수행합니다.

SPI 관리자와 무료로 절차를 연결합니다 귀하의 절차에 의해 작성된 모든 메모리 할당Palloc이후SPI_CONNECT. 이러한 할당은 사용할 수 없습니다 더 이상! 메모리 관리 참조.