PostgreSQL서버에 간단한 함수 호출을 보내기위한 빠른 경로 범퍼카 토토를 제공합니다.
이 인터페이스는 기능 호출을 정의하기 위해 준비된 명령문을 설정하여 유사한 성능과 더 큰 기능을 달성 할 수 있으므로 다소 쓸모가 없습니다. 그런 다음 빠른 경로 함수 호출을위한 매개 변수 및 결과 대체의 이진 전송으로 명령문을 실행합니다.
함수PQFN
빠른 경로 범퍼카 토토를 통한 서버 기능의 실행 요청 :
pgresult *pqfn (pgconn *conn,
thefnid
인수는 실행될 함수의 OID입니다.args
andNARGS
함수로 전달할 매개 변수를 정의합니다. 선언 된 기능 인수 목록과 일치해야합니다.isint
매개 변수 구조의 필드는 사실입니다.U.Integer
값은 표시된 길이의 정수로 서버로 전송됩니다 (2 또는 4 바이트 여야 함). 적절한 바이트 스왑 핑이 발생합니다.isint
거짓, 표시된 바이트 수는입니다.*u.ptr
처리없이 전송됩니다. 데이터는 기능의 인수 데이터 유형의 바이너리 전송을 위해 서버가 예상하는 형식이어야합니다.u.ptr
유형의 존재int *
역사적입니다. 그것을 고려하는 것이 더 낫다void *
.) result_buf
함수의 리턴 값을 배치 할 버퍼를 가리 킵니다. 발신자는 반환 값을 저장하기에 충분한 공간을 할당해야합니다.result_len
. 2 바이트 또는 4 바이트 정수 결과가 예상되면 설정result_is_int
to 1, 그렇지 않으면 0으로 설정합니다. 설정result_is_int
~ 1 원인libpq필요한 경우 값을 바이트로 스왑하여 적절한 것으로 전달되도록int
클라이언트 시스템의 값; 4 바이트 정수가에 전달됩니다.*result_buf
허용 결과 크기 중 하나입니다. 언제result_is_int
는 0, 서버에서 전송 된 이진 형식 바이트 문자열은 수정되지 않은 반환됩니다. (이 경우 고려하는 것이 좋습니다result_buf
유형의 존재void *
.)
PQFN
항상 유효한 반환pgresult
상태가있는 포인터pgres_command_ok
성공 또는pgres_fatal_error
문제가 발생한 경우. 결과 상태는 결과를 사용하기 전에 확인해야합니다.pgresult
withPQCLEAR
더 이상 필요하지 않은 경우.
널 인수를 함수에 전달하려면를 설정하십시오.Len
해당 매개 변수 구조의 필드-1
; 그만큼isint
andu
필드는 관련이 없습니다.
함수가 NULL을 반환하는 경우*result_len
로 설정되었습니다-1
및*result_buf
수정되지 않았습니다.
이 인터페이스를 사용할 때 설정 값 결과를 처리 할 수는 없습니다. 또한 함수는 집계, 창 함수 또는 절차가 아닌 일반 기능이어야합니다.