이러한 기능은 기존 데이터베이스 연결 객체의 상태를 조사하는 데 사용될 수 있습니다.
libpq애플리케이션 프로그래머는를 유지해야합니다pgconn
추상화. 아래에 설명 된 액세서 기능을 사용하여의 내용을 얻으십시오.pgconn
. 내부 참조pgconn
필드 사용libpq-int.h
향후 변화를받을 수 있기 때문에 권장되지 않습니다.
다음 함수는 연결시 설정된 매개 변수 값을 반환합니다. 이 값은 연결 수명에 고정되어 있습니다. 다중 호스트 연결 문자열을 사용하는 경우 값pqhost
, pqport
및pqpass
새 연결이 동일하게 설정되면 변경 될 수 있습니다pgconn
개체. 다른 값은의 수명 동안 고정되어 있습니다.pgconn
개체.
PQDB
연결의 데이터베이스 이름을 반환합니다.
char *pqdb (const kèo bóng đá euro);
PQUSER
연결의 사용자 이름을 반환합니다.
char *pquser (const kèo bóng đá euro);
pqpass
연결의 비밀번호를 반환합니다.
char *pqpass (const kèo bóng đá euro);
pqpass
연결 매개 변수에 지정된 비밀번호를 반환하거나,없고 비밀번호가 획득 한 경우암호 파일, 그것은 그것을 반환합니다. 후자의 경우 연결 매개 변수에 여러 호스트가 지정된 경우 결과에 의존 할 수 없습니다.pqpass
연결이 설정 될 때까지. 함수를 사용하여 연결 상태를 확인할 수 있습니다PQSTATUS
.
pqhost
활성 연결의 서버 호스트 이름을 반환합니다. 연결이 UNIX 소켓을 통해 인 경우 호스트 이름, IP 주소 또는 디렉토리 경로 일 수 있습니다. (경로 케이스는 항상 절대 경로가되기 때문에 구별 될 수 있습니다./
.)
char *pqhost (const kèo bóng đá euro);
연결 매개 변수가 지정된 경우host
andhostaddr
, 그때pqhost
반환호스트
정보. 을 텐데hostaddr
지정된 다음 반환됩니다. 연결 매개 변수에 여러 호스트가 지정된 경우pqhost
실제로 연결된 호스트를 반환합니다.
pqhost
반환NULL
인 경우conn
인수는NULL
. 그렇지 않으면 호스트 정보를 생성하는 오류가있는 경우 (연결이 완전히 설정되지 않았거나 오류가 발생한 경우) 빈 문자열을 반환합니다.
연결 매개 변수에 여러 호스트가 지정된 경우 결과에 의존 할 수 없습니다.pqhost
연결이 설정 될 때까지. 함수를 사용하여 연결 상태를 확인할 수 있습니다pqstatus
.
pqport
활성 연결 포트를 반환합니다.
char *pqport (const kèo bóng đá euro);
연결 매개 변수에 여러 포트가 지정된 경우pqport
실제로 연결된 포트를 반환합니다.
pqport
반환NULL
conn
인수는NULL
. 그렇지 않으면 포트 정보를 생성하는 오류가있는 경우 (아마도 연결이 완전히 설정되지 않았거나 오류가 발생한 경우) 빈 문자열을 반환합니다..
연결 매개 변수에 여러 포트가 지정된 경우의 결과에 의존 할 수 없습니다.pqport
연결이 설정 될 때까지. 함수를 사용하여 연결 상태를 확인할 수 있습니다PQSTATUS
.
pqtty
디버그를 반환tty16462_16552tty설정, 그러나 기능은 뒤로 호환성을 위해 유지됩니다.)
char *pqtty (const kèo bóng đá euro);
pqoptions
연결 요청에 전달 된 명령 줄 옵션을 반환합니다.
char *pqoptions (const kèo bóng đá euro);
다음 함수는 작업이 실행될 때 변경할 수있는 상태 데이터를 반환합니다pgconn
개체.
pqstatus
연결 상태를 반환합니다.
Connstatustype pqstatus (const kèo bóng đá euro);
상태는 여러 값 중 하나 일 수 있습니다. 그러나이 중 두 가지만이 비동기 연결 절차 외부에서 볼 수 있습니다.Connection_ok
andConnection_Bad
. 데이터베이스에 대한 좋은 연결은 상태가 있습니다Connection_ok
. 실패한 연결 시도는 상태에 따라 신호Connection_Bad
. 일반적으로 OK 상태는까지 남아 있습니다.pqfinish
, 그러나 통신 실패로 인해 상태가 변경 될 수 있습니다Connection_Bad
조기. 이 경우 응용 프로그램은 전화를 통해 복구하려고 시도 할 수 있습니다pqreset
.
입력 참조PQConnectStartParams
, PQConnectStart
andpqconnectpoll
반환 될 수있는 다른 상태 코드와 관련하여.
pqtransactionStatus
서버의 현재 전송 상태 상태를 반환합니다.
pgtransactionStatustype pqtransactionStatus (const kèo bóng đá euro);
상태가 될 수 있습니다pqtrans_idle
(현재 유휴 상태),pqtrans_active
(명령이 진행 중),pqtrans_intrans
(유효한 트랜잭션 블록에서 유휴) 또는pqtrans_inerror
(유휴, 실패한 트랜잭션 블록에서).pqtrans_unknown
연결이 나쁘면보고됩니다.pqtrans_active
쿼리가 서버로 전송되어 아직 완료되지 않은 경우에만보고됩니다.
PQPARAMETERSTATUS
서버의 현재 매개 변수 설정을 찾습니다.
const char *pqparameterstatus (const kèo bóng đá euro, const char *paramname);
특정 매개 변수 값은 연결 시작시 또는 값이 변경 될 때마다 서버에서 자동으로보고됩니다.PQPARAMETERSTATUS
이 설정을 조사하는 데 사용될 수 있습니다. 알려진 경우 매개 변수의 현재 값을 반환합니다.null
매개 변수가 알려지지 않은 경우.
현재 릴리스에 따라보고 된 매개 변수는 포함Server_version
, Server_encoding
, client_encoding
, application_name
, is_superuser
, Session_Authorization
, Datestyle
, IntervalStyle
, TimeZone
, integer_dateTimes
및Standard_Conforming_strings
. (Server_encoding
, TimeZone
및integer_dateTimes
8.0 이전에 릴리스에 의해보고되지 않았다;Standard_Conforming_strings
8.1 이전에 릴리스에 의해보고되지 않았습니다.IntervalStyle
8.4 이전에 릴리스에 의해보고되지 않았습니다.application_name
9.0 이전에 릴리스에 의해보고되지 않았습니다.) 참고server_version
, Server_encoding
및integer_dateTimes
시작 후 변경할 수 없습니다.
Pre-3.0 Protocol 서버는 매개 변수 설정을보고하지 않지만libpq값을 얻는 논리 포함server_version
andclient_encoding
어쨌든. 응용 프로그램은 사용하도록 권장됩니다PQPARAMETERSTATUS
보다는adhoc코드이 값을 결정합니다. (그러나 3.0 사전 연결에서는 변경client_encoding
viaSET
연결 후 시작 후PQPARAMETERSTATUS
.) forserver_version
, 참조PQSERVERVERVERSION
,이 정보는 비교하기가 훨씬 쉬운 숫자 형태로 정보를 반환합니다.
값이없는 경우Standard_Conforming_strings
보고되어, 응용 프로그램은이라고 가정 할 수 있습니다.OFF
, 즉, 백 슬래시는 문자열 리터럴에서 탈출로 취급됩니다. 또한이 매개 변수의 존재는 Escape String Syntax (임을 표시 할 수 있습니다.e '...'
)가 허용됩니다.
반환 된 포인터가 선언되었지만const
, 실제로는와 관련된 Mutable Storage를 가리 킵니다.pgconn
구조. 포인터가 쿼리 전체에 걸쳐 유효하게 유지 될 것이라고 가정하는 것은 현명하지 않습니다.
pqprotocolversion
사용중인 프론트 엔드/백엔드 프로토콜을 심문합니다.
int pqprotocolversion (const kèo bóng đá euro);
응용 프로그램은이 기능을 사용하여 특정 기능이 지원되는지 여부를 결정할 수 있습니다. 현재 가능한 값은 2 (2.0 프로토콜), 3 (3.0 프로토콜) 또는 0 (연결 불량)입니다. 연결 시작이 완료된 후에 프로토콜 버전은 변경되지 않지만 연결 재설정 중에 이론적으로 변경 될 수 있습니다. 3.0 프로토콜은 일반적으로 통신 할 때 사용됩니다PostgreSQL7.4 이상 서버; 7.4 이전 서버는 프로토콜 전용 프로토콜 2.0을 지원합니다. (프로토콜 1.0은 쓸모없고 지원되지 않습니다libpq.)
pqserverversion
서버 버전을 나타내는 정수를 반환합니다.
int pqserverversion (const kèo bóng đá euro);
응용 프로그램은이 기능을 사용하여 연결된 데이터베이스 서버의 버전을 결정할 수 있습니다. 결과는 서버의 주요 버전 번호에 10000을 곱하고 작은 버전 번호를 추가하여 형성됩니다. 예를 들어, 버전 10.1은 100001로 반환되고 버전 11.0은 110000으로 반환됩니다. 연결이 나쁘면 0이 반환됩니다..
주요 버전 10 이전,PostgreSQL처음 두 부분이 함께 주요 버전을 나타내는 3 부 버전 번호를 사용했습니다. 해당 버전의 경우pqserverversion
각 부분에 대해 두 자리를 사용합니다. 예를 들어 버전 9.1.5는 90105로 반환되고 버전 9.2.0은 90200으로 반환됩니다.
따라서 기능 호환성을 결정하기 위해 응용 프로그램은의 결과를 나누어야합니다.PQSERVERVERVERSION
논리적 주요 버전 번호를 결정하려면 10000이 아닙니다. 모든 릴리스 시리즈에서는 마지막 두 자리 숫자 만 사소한 릴리스 (버그 고정 릴리스)마다 다릅니다.
PQERRORMESSAGE
연결에서 작업에서 생성 된 가장 최근에 생성 된 오류 메시지를 반환합니다.
char *pqerrormessage (const kèo bóng đá euro);
거의 모든libpq함수는 메시지를 설정합니다PQERRORMESSAGE
실패하면.libpq컨벤션, 비어 비어PQERRORMESSAGE
결과는 여러 줄로 구성 될 수 있으며 후행 Newline이 포함됩니다. 발신자는 결과를 직접 자유롭게 해제해서는 안됩니다. 관련이 해방 될 것입니다pgconn
핸들이 전달됩니다pqfinish
. 결과 문자열은의 작업에서 동일하게 유지 될 것으로 예상되지 않아야합니다.pgconn
구조.
pqsocket
서버에 연결 소켓의 파일 디스크립터 번호를 얻습니다. 유효한 설명자는 0보다 크거나 같아요. -1의 결과는 현재 서버 연결이 열리지 않음을 나타냅니다. (정상 작동 중에는 변경되지 않지만 연결 설정 또는 재설정 중에 변경 될 수 있습니다.)
int pqsocket (const kèo bóng đá euro);
pqbackendpid
프로세스 반환id(PID)이 연결을 처리하는 백엔드 프로세스의.
int pqbackendpid (const kèo bóng đá euro);
백엔드PID디버깅 목적 및 비교에 유용합니다Notify
메시지 (포함PID알림 백엔드 프로세스의).PID로컬 호스트가 아닌 데이터베이스 서버 호스트에서 실행되는 프로세스에 속합니다!
PQConnectionNeedSpassword
true를 반환합니다 (1) 연결 인증 메소드에 암호가 필요하지만 사용할 수있는 것은 없었습니다. 거짓을 반환합니다 (0) 그렇지 않은 경우.
int pqconnectionneedspassword (const kèo bóng đá euro);
이 함수는 실패한 후 사용자에게 암호를 신속하게할지 여부를 결정하려는 시도 후에 적용 할 수 있습니다.
PQConnectionusedPassword
TRUE를 반환합니다 (1) 연결 인증 방법이 비밀번호를 사용한 경우. 거짓을 반환합니다 (0) 그렇지 않은 경우.
int pqconnectionusedpassword (const kèo bóng đá euro);
이 기능은 서버가 암호를 요구했는지 여부를 감지하려는 실패 또는 성공적인 연결 시도 후에 적용될 수 있습니다.
다음 기능은 SSL과 관련된 정보를 반환합니다. 이 정보는 일반적으로 연결이 설정된 후에 변경되지 않습니다.
pqsslinuse
true를 반환합니다 (1) 연결이 SSL을 사용하는 경우, false (0)가 아닌 경우..
int pqsslinuse (const kèo bóng đá euro);
pqsslattribute
연결에 대한 SSL 관련 정보를 반환합니다.
const char *pqsslattribute (const kèo bóng đá euro, const char *attribute_name);
사용 가능한 속성 목록은 사용중인 SSL 라이브러리와 연결 유형에 따라 다릅니다. 속성을 사용할 수없는 경우 NULL을 반환합니다.
다음 속성은 일반적으로 사용 가능합니다.
도서관
사용중인 SSL 구현 이름. (현재, 유일한"OpenSSL"
구현 됨)
프로토콜
SSL/TLS 사용 중입니다. 일반적인 값은"tlsv1"
, "TLSV1.1"
and"TLSV1.2"
, 그러나 다른 프로토콜이 사용되면 구현이 다른 문자열을 반환 할 수 있습니다.
key_bits
암호화 알고리즘에 사용되는 키 비트 수.
Cipher
예를 들어, 사용 된 Ciphersuite의 짧은 이름 (예 :"DHE-RSA-DES-CBC3-SHA"
. 이름은 각 SSL 구현에만 해당됩니다.
압축
"SSL 압축이 사용중인 경우"켜짐 "켜짐"은 "Off"를 반환합니다.
PQSSLATTRIBITENAMES
사용 가능한 SSL 속성 이름 배열을 반환합니다. 배열은 널 포인터에 의해 종료됩니다.
const char * const * pqsslattributeNames (const pgconn * conn);
pqsslstruct
연결을 설명하는 SSL 구현 특유의 대상에 대한 포인터를 반환합니다.
void *pqsslstruct (const kèo bóng đá euro, const char *struct_name);
사용 가능한 구조물은 사용중인 SSL 구현에 따라 다릅니다. OpenSSL의 경우 "OpenSSL"이라는 이름으로 사용할 수있는 하나의 구조물이 있으며 OpenSSL에 대한 포인터를 반환합니다SSL
구조. 이 기능을 사용하려면 다음 줄을 따라 코드를 사용할 수 있습니다.
#include <libpq-fe.h #include <OpenSSL/SSL.H ... ssl *ssl; dbconn = pqconnectdb (...); ... ssl = pqsslstruct (dbconn, "openssl"); if (ssl) / * OpenSSL 함수를 사용하여 SSL에 액세스하십시오 */
이 구조는 암호화 레벨을 확인하고 서버 인증서를 확인하는 데 사용될 수 있습니다. 참조OpenSSL이 구조에 대한 정보에 대한 문서.
pqgetssl
연결에 사용 된 SSL 구조를 반환하거나 SSL을 사용하지 않는 경우 NULL을 반환합니다.
void *pqgetssl (const kèo bóng đá euro);
이 기능은에 해당합니다.PQSSLStruct (Conn, "OpenSSL")
. 반환 된 구조물은 OpenSSL에만 국한되며 다른 SSL 구현을 사용하는 경우 사용할 수 없으므로 새로운 응용 프로그램에서 사용해서는 안됩니다. 연결이 SSL을 사용하는지 확인하려면 Callpqsslinuse
대신, 연결에 대한 자세한 내용은 사용pqsslattribute
.