이러한 기능은 기존 데이터베이스 연결 객체의 상태를 조사하는 데 사용될 수 있습니다.
libpq응용 프로그램 프로그래머는를 유지해야합니다pgconn
추상화. 아래에 설명 된 액세서 기능을 사용하여의 내용을 얻으십시오.pgconn
. 내부 참조pgconn
필드 사용libpq-int.h
향후 변화를받을 수 있기 때문에 권장되지 않습니다.
다음 함수는 연결시 설정된 매개 변수 값을 반환합니다. 이 값은 연결 수명에 고정되어 있습니다. 다중 호스트 연결 문자열을 사용하는 경우 값pqhost
, pqport
및pqpass
새 연결을 동일하게 사용하여 설정하면 변경할 수 있습니다pgconn
개체. 다른 값은의 수명 동안 고정되어 있습니다.pgconn
개체.
PQDB
#연결의 데이터베이스 이름을 반환합니다.
char *pqdb (const tỷ lệ kèo bóng đá);
PQUSER
#연결의 사용자 이름을 반환합니다.
char *pquser (const tỷ lệ kèo bóng đá);
pqpass
#연결의 비밀번호를 반환합니다.
char *pqpass (const tỷ lệ kèo bóng đá);
pqpass
연결 매개 변수에 지정된 비밀번호를 반환하거나,없고 암호가 획득 한 경우암호 파일, 그것은 그것을 반환합니다. 후자의 경우 연결 매개 변수에 여러 호스트가 지정된 경우 결과에 의존 할 수 없습니다.pqpass
연결이 설정 될 때까지. 함수를 사용하여 연결 상태를 확인할 수 있습니다pqstatus
.
pqhost
#활성 연결의 서버 호스트 이름을 반환합니다. 연결이 UNIX 소켓을 통해 인 경우 호스트 이름, IP 주소 또는 디렉토리 경로 일 수 있습니다. (경로 케이스는 항상 절대 경로가되기 때문에 구별 될 수 있습니다./
.)
char *pqhost (const tỷ lệ kèo bóng đá);
연결 매개 변수가 지정된 경우host
andhostaddr
, 그 다음pqhost
반환host
정보. 을 텐데hostaddr
지정된 다음 반환되었습니다. 연결 매개 변수에 여러 호스트가 지정된 경우pqhost
14980_15022
pqhost
반환null
IFconn
인수는null
. 그렇지 않으면 호스트 정보를 생성하는 오류가있는 경우 (연결이 완전히 설정되지 않았거나 오류가 발생한 경우) 빈 문자열을 반환합니다.
연결 매개 변수에 여러 호스트가 지정된 경우 결과에 의존 할 수 없습니다.pqhost
연결이 설정 될 때까지. 함수를 사용하여 연결 상태를 확인할 수 있습니다PQSTATUS
.
pqhostaddr
#활성 연결의 서버 IP 주소를 반환합니다. 이것은 호스트 이름이 해결 한 주소 또는를 통해 제공된 IP 주소 일 수 있습니다.hostaddr
매개 변수.
char *pqhostaddr (const tỷ lệ kèo bóng đá);
pqhostaddr
반환NULL
conn
인수는NULL
. 그렇지 않으면 호스트 정보를 생성하는 오류가있는 경우 (연결이 완전히 설정되지 않았거나 오류가 발생한 경우) 빈 문자열을 반환합니다.
pqport
#활성 연결 포트를 반환합니다.
char *pqport (const tỷ lệ kèo bóng đá);
연결 매개 변수에 여러 포트가 지정된 경우pqport
실제로 연결된 포트를 반환합니다.
pqport
반환NULL
if theconn
인수는NULL
. 그렇지 않으면 포트 정보를 생성하는 오류가있는 경우 (아마도 연결이 완전히 설정되지 않았거나 오류가 발생한 경우) 빈 문자열을 반환합니다..
연결 매개 변수에 여러 포트가 지정된 경우의 결과에 의존 할 수 없습니다.pqport
연결이 설정 될 때까지. 함수를 사용하여 연결 상태를 확인할 수 있습니다pqstatus
.
pqtty
#이 기능은 더 이상 아무것도하지 않지만 뒤로 호환성을 유지합니다. 함수는 항상 빈 문자열을 반환하거나NULL
if theconn
인수는NULL
.
char *pqtty (const tỷ lệ kèo bóng đá);
pqoptions
#연결 요청에 전달 된 명령 줄 옵션을 반환합니다.
char *pqoptions (const tỷ lệ kèo bóng đá);
다음 함수는 작업이 실행될 때 변경할 수있는 상태 데이터를 반환합니다pgconn
Object.
pqstatus
#연결 상태를 반환합니다.
Connstatustype pqstatus (const tỷ lệ kèo bóng đá);
상태는 여러 값 중 하나 일 수 있습니다. 그러나이 중 두 가지만이 비동기 연결 절차 외부에서 볼 수 있습니다.Connection_ok
andConnection_Bad
. 데이터베이스에 대한 좋은 연결은 상태가 있습니다Connection_ok
. 실패한 연결 시도는 상태에 의해 신호Connection_Bad
. 일반적으로 OK 상태는까지 남아 있습니다.pqfinish
, 그러나 통신 실패로 인해 상태가 변경 될 수 있습니다.Connection_Bad
조기. 이 경우 응용 프로그램은 전화를 통해 복구하려고 시도 할 수 있습니다pqreset
.
입력 참조PQConnectStartParams
, PQConnectStart
andPQCONNECTPOLL
반환 될 수있는 다른 상태 코드와 관련하여.
pqtransactionStatus
#서버의 현재 트랜잭션 상태 상태를 반환합니다.
pgtransactionStatustype pqtransactionstatus (const tỷ lệ kèo bóng đá);
상태가 될 수 있습니다pqtrans_idle
(현재 유휴 상태),pqtrans_active
(명령이 진행 중),pqtrans_intrans
(유효한 트랜잭션 블록에서 유휴) 또는pqtrans_inerror
(실패한 트랜잭션 블록에서 유휴 상태).pqtrans_unknown
연결이 나쁘면보고됩니다.pqtrans_active
쿼리가 서버로 전송되어 아직 완료되지 않은 경우에만보고됩니다.
PQPARAMETERSTATUS
#서버의 현재 매개 변수 설정을 찾습니다.
const char *pqparameterstatus (const tỷ lệ kèo bóng đá, const char *paramname);
특정 매개 변수 값은 연결 시작시 또는 값이 변경 될 때마다 서버에서 자동으로보고됩니다.PQPARAMETERSTATUS
이 설정을 조사하는 데 사용될 수 있습니다. 알려진 경우 매개 변수의 현재 값을 반환합니다.NULL
매개 변수가 알려지지 않은 경우.
Parameters reported as of the current release include:
application_name |
is_superuser |
client_encoding |
scram_iterations |
Datestyle |
Server_encoding |
default_transaction_read_only |
Server_version |
in_hot_standby |
Session_Authorization |
integer_dateTimes |
Standard_Conforming_strings |
IntervalStyle |
TimeZone |
(default_transaction_read_only
andin_hot_standby
14 이전 릴리스에 의해보고되지 않았다;scram_iterations
16 이전에 릴리스에 의해보고되지 않았습니다.) 참고Server_version
, Server_encoding
andinteger_dateTimes
시작 후 변경할 수 없습니다.
값이없는 경우Standard_Conforming_strings
보고되어, 응용 프로그램은이라고 가정 할 수 있습니다.OFF
, 즉, 백 슬래시는 문자열 리터럴에서 탈출로 취급됩니다. 또한이 매개 변수의 존재는 Escape String Syntax (임을 표시 할 수 있습니다.e '...'
)가 허용됩니다.
반환 된 포인터가 선언되었지만const
, 실제로는와 관련된 Mutable Storage를 가리 킵니다.pgconn
구조. 포인터가 쿼리 전체에 걸쳐 유효하게 유지 될 것이라고 가정하는 것은 현명하지 않습니다.
pqprotocolversion
#사용중인 프론트 엔드/백엔드 프로토콜을 심문합니다.
int pqprotocolversion (const tỷ lệ kèo bóng đá);
응용 프로그램은이 기능을 사용하여 특정 기능이 지원되는지 여부를 결정할 수 있습니다. 현재 가능한 값은 3 (3.0 프로토콜) 또는 0 (연결 불량)입니다. 연결 시작이 완료된 후에 프로토콜 버전은 변경되지 않지만 연결 재설정 중에 이론적으로 변경 될 수 있습니다. 3.0 프로토콜은에 의해 지원됩니다.postgresql서버 버전 7.4 이상.
PQSERVERVERSION
#서버 버전을 나타내는 정수를 반환합니다.
int pqserverversion (const tỷ lệ kèo bóng đá);
응용 프로그램은이 기능을 사용하여 연결된 데이터베이스 서버의 버전을 결정할 수 있습니다. 결과는 서버의 주요 버전 번호에 10000을 곱하고 작은 버전 번호를 추가하여 형성됩니다. 예를 들어, 버전 10.1은 100001로 반환되고 버전 11.0은 110000으로 반환됩니다. 연결이 나쁘면 0이 반환됩니다..
주요 버전 10 이전,PostgreSQL처음 두 부분이 함께 주요 버전을 나타내는 3 부 버전 번호를 사용했습니다. 해당 버전의 경우PQSERVERVERSION
각 부분에 대해 두 자리를 사용합니다. 예를 들어 버전 9.1.5는 90105로 반환되고 버전 9.2.0은 90200으로 반환됩니다.
따라서 기능 호환성을 결정하기 위해 응용 프로그램은의 결과를 나누어야합니다.pqserververion
논리적 주요 버전 번호를 결정하려면 10000이 아닙니다. 모든 릴리스 시리즈에서는 마지막 두 자리 숫자 만 사소한 릴리스 (버그 고정 릴리스)마다 다릅니다.
PQERRORMESSAGE
#연결에서 가장 최근에 생성 된 오류 메시지를 반환합니다.
char *pqerrormessage (const tỷ lệ kèo bóng đá);
거의 모든libpq함수는 메시지를 설정합니다PQERRORMESSAGE
실패하면.libpq컨벤션, 비어 없음PQERRORMESSAGE
결과는 여러 줄로 구성 될 수 있으며 후행 Newline이 포함됩니다. 발신자는 결과를 직접 자유롭게 해제해서는 안됩니다. 관련이 해방 될 것입니다pgconn
핸들이 전달되었습니다pqfinish
. 결과 문자열은의 작업에서 동일하게 유지 될 것으로 예상되지 않아야합니다.pgconn
구조.
pqsocket
#서버에 연결 소켓의 파일 디스크립터 번호를 얻습니다. 유효한 설명자는 0보다 크거나 같아요. -1의 결과는 현재 서버 연결이 열리지 않음을 나타냅니다. (정상 작동 중에는 변경되지 않지만 연결 설정 또는 재설정 중에 변경 될 수 있습니다.)
int pqsocket (const tỷ lệ kèo bóng đá);
pqbackendpid
#프로세스 반환id(PID)이 연결을 처리하는 백엔드 프로세스의.
int pqbackendpid (const tỷ lệ kèo bóng đá);
백엔드PID디버깅 목적 및 비교에 유용합니다Notify
메시지 (포함PID알림 백엔드 프로세스의).PID로컬 호스트가 아닌 데이터베이스 서버 호스트에서 실행되는 프로세스에 속합니다!
PQConnectionNeedSpassword
#TRUE를 반환합니다 (1) 연결 인증 메소드에 암호가 필요하지만 사용할 수있는 사람은 없었습니다. 거짓을 반환합니다 (0) 그렇지 않은 경우.
int pqconnectionneedspassword (const tỷ lệ kèo bóng đá);
이 함수는 실패한 후 사용자에게 암호를 신속하게할지 여부를 결정하려는 시도 후에 적용 할 수 있습니다.
PQConnectionusedPassword
#TRUE를 반환합니다 (1) 연결 인증 메소드가 비밀번호를 사용한 경우. 거짓을 반환합니다 (0) 그렇지 않은 경우.
int pqconnectionusedpassword (const tỷ lệ kèo bóng đá);
이 기능은 서버가 암호를 요구했는지 여부를 감지하려는 연결 실패 또는 성공적인 연결 시도 후에 적용 할 수 있습니다.
#returns true (1) 연결 인증 메소드가 GSSAPI를 사용한 경우. 거짓을 반환합니다 (0) 그렇지 않은 경우.
int pqconnectionusedgssapi (const tỷ lệ kèo bóng đá);
이 기능을 적용하여 연결이 GSSAPI로 인증되었는지 여부를 감지 할 수 있습니다.
다음 함수는 SSL과 관련된 정보를 반환합니다. 이 정보는 일반적으로 연결이 설정된 후에 변경되지 않습니다.
pqsslinuse
#true를 반환합니다 (1) 연결이 SSL을 사용하는 경우, false (0)가 아닌 경우
int pqsslinuse (const tỷ lệ kèo bóng đá);
pqsslattribute
#연결에 대한 SSL 관련 정보를 반환합니다.
const char *pqsslattribute (const tỷ lệ kèo bóng đá, const char *attribute_name);
사용 가능한 속성 목록은 사용중인 SSL 라이브러리와 연결 유형에 따라 다릅니다. 연결이 SSL을 사용하지 않거나 사용중인 라이브러리에 대해 지정된 속성 이름이 정의되지 않은 경우 NULL을 반환합니다.
다음 속성은 일반적으로 사용할 수 있습니다.
도서관
사용중인 SSL 구현 이름. (현재, 유일한"OpenSSL"
구현 됨)
프로토콜
SSL/TLS 사용 중입니다. 일반적인 값은"TLSV1"
, "TLSV1.1"
and"TLSV1.2"
, 그러나 다른 프로토콜이 사용되면 구현이 다른 문자열을 반환 할 수 있습니다.
key_bits
암호화 알고리즘에서 사용하는 키 비트 수.
Cipher
예를 들어, 사용 된 Ciphersuite의 짧은 이름 (예 :"DHE-RSA-DES-CBC3-SHA"
. 이름은 각 SSL 구현에만 해당됩니다.
압축
"켜짐"on ""SSL 압축이 사용중인 경우 "OFF"가 반환됩니다.
alpn
TLS Application-Layer 프로토콜 협상 (ALPN) 확장에 의해 선택된 응용 프로그램 프로토콜. LIBPQ가 지원하는 유일한 프로토콜은입니다.PostgreSQL
, 이는 서버가 ALPN을 지원했는지 여부를 확인하는 데 주로 유용합니다. ALPN이 사용되지 않은 경우 빈 문자열.
특별한 경우,도서관
속성은 널로 전달하여 연결하지 않고 쿼리 될 수 있습니다conn
인수. 결과는 기본 SSL 라이브러리 이름 또는 NULL IF입니다.libpqSSL 지원없이 컴파일되었습니다. (앞서서PostgreSQL버전 15, 널로 통과하는conn
인수는 항상 널을 초래했습니다. 이 사례의 새로운 구현과 이전 구현을 구별 해야하는 클라이언트 프로그램은를 확인할 수 있습니다.libpq_has_ssl_library_detection
기능 매크로.)
pqsslattributeNames
#에서 사용할 수있는 SSL 속성 이름의 배열을 반환합니다pqsslattribute ()
. 배열은 널 포인터에 의해 종료됩니다.
const char * const * pqsslattributeNames (const pgconn * conn);
ifconn
null, 기본 SSL 라이브러리에서 사용 가능한 속성이 반환되거나 빈 목록이libpqSSL 지원없이 컴파일되었습니다. 만약에conn
NULL, 연결에 사용중인 SSL 라이브러리에 사용할 수있는 속성이 반환되거나 연결이 암호화되지 않은 경우 빈 목록이 있습니다.
pqsslstruct
#연결을 설명하는 SSL 구현 특유의 개체에 대한 포인터를 반환합니다. 연결이 암호화되지 않았거나 연결된 객체 유형을 연결의 SSL 구현에서 사용할 수없는 경우 NULL을 반환합니다.
void *pqsslstruct (const tỷ lệ kèo bóng đá, const char *struct_name);
사용 가능한 구조물은 사용중인 SSL 구현에 따라 다릅니다. 을 위한OpenSSL, 이름으로 사용할 수있는 하나의 구조물이 있습니다OpenSSL
, 그리고 포인터를 반환합니다OpenSSL'sSSL
구조. 이 기능을 사용하려면 다음 줄을 따라 코드를 사용할 수 있습니다.
#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 tỷ lệ kèo bóng đá);
이 기능은와 같습니다.PQSSLStruct (Conn, "OpenSSL")
. 반환 된 구조물이에 따라 다르므로 새로운 응용 프로그램에서 사용해서는 안됩니다.OpenSSL다른 경우 사용할 수 없습니다SSL구현이 사용됩니다. 연결이 SSL을 사용하는지 확인하려면 Callpqsslinuse
대신, 연결에 대한 자세한 내용은 사용pqsslattribute
.
문서에 올바르지 않은 내용이 있으면 일치하지 않습니다. 특정 기능에 대한 귀하의 경험 또는 추가 설명이 필요합니다. 사용이 양식문서 문제를보고하려면