이 함수는 기존 데이터베이스 토토 핫 개체의 상태를 조사하는 데 사용할 수 있습니다.
libpq응용프로그램 프로그래머는 주의를 기울여 유지해야 합니다.PGconn추상화. 아래에 설명된 접근자 함수를 사용하여 내용을 가져옵니다.PGconn. 내부 참조PGconn필드 사용libpq-int.h향후 변경될 수 있으므로 권장하지 않습니다.
다음 함수는 연결 시 설정된 매개변수 값을 반환합니다. 이 값은 연결 수명 동안 고정됩니다. 다중 호스트 연결 문자열이 사용되는 경우 값은PQ호스트, PQ포트및PQpass동일한 토토 핫을 사용하여 새 토토 핫이 설정되면 변경될 수 있습니다PGconn객체. 다른 값은의 수명 동안 고정됩니다.PGconn객체.
PQdb #토토 핫의 데이터베이스 이름을 반환합니다.
char *PQdb(const PGconn *conn);
PQuser #토토 핫의 사용자 이름을 반환합니다.
char *PQuser(const PGconn *conn);
PQ패스 #토토 핫 비밀번호를 반환합니다.
char *PQpass(const PGconn *conn);
PQpass연결 매개변수에 지정된 비밀번호를 반환하거나 비밀번호가 없고 비밀번호를 다음에서 얻은 경우 반환합니다.토토 베이 : 문서 : 개발 : 32.16. 암호 파일, 그것은 그것을 반환할 것입니다. 후자의 경우 연결 매개변수에 여러 호스트가 지정된 경우 다음 결과에 의존할 수 없습니다.PQ패스토토 핫이 설정될 때까지. 토토 핫 상태는 함수를 사용하여 확인할 수 있습니다PQ상태.
PQ호스트 #활성 연결의 서버 호스트 이름을 반환합니다. 호스트 이름, IP 주소 또는 Unix 소켓을 통해 연결하는 경우 디렉터리 경로일 수 있습니다. (경로 대소문자는 항상 다음으로 시작하는 절대 경로이므로 구별할 수 있습니다./.)
char *PQhost(const PGconn *conn);
토토 핫 매개변수가 둘 다 지정한 경우호스트그리고호스트주소그러면PQ호스트다음을 반환합니다호스트정보. 만약에)호스트주소이 지정되면 그것이 반환됩니다. 연결 매개변수에 여러 호스트가 지정된 경우,PQ호스트실제로 연결된 호스트를 반환합니다.
PQ호스트반환NULLif the콘인수는NULL. 그렇지 않고 호스트 정보를 생성하는 중에 오류가 발생하면(연결이 완전히 설정되지 않았거나 오류가 발생한 경우) 빈 문자열을 반환합니다.
연결 매개변수에 여러 호스트가 지정된 경우 다음 결과에 의존할 수 없습니다.PQ호스트토토 핫이 이루어질 때까지. 토토 핫 상태는 함수를 사용하여 확인할 수 있습니다PQ상태.
PQhostaddr #활성 연결의 서버 IP 주소를 반환합니다. 이는 호스트 이름이 확인된 주소이거나를 통해 제공된 IP 주소일 수 있습니다.호스트주소매개변수.
char *PQhostaddr(const PGconn *conn);
PQhostaddr반환NULLif the콘인수는NULL. 그렇지 않고 호스트 정보를 생성하는 중에 오류가 발생하면(연결이 완전히 설정되지 않았거나 오류가 발생한 경우) 빈 문자열을 반환합니다.
PQ포트 #활성 연결의 포트를 반환합니다.
char *PQport(const PGconn *conn);
토토 핫 매개변수에 여러 포트가 지정된 경우,PQ포트실제로 연결된 포트를 반환합니다.
PQ포트반환NULLif the콘인수는NULL. 그렇지 않고 포트 정보를 생성하는 중에 오류가 발생하면(연결이 완전히 설정되지 않았거나 오류가 발생한 경우) 빈 문자열을 반환합니다.
연결 매개변수에 여러 포트가 지정된 경우 다음 결과에 의존할 수 없습니다.PQ포트토토 핫이 설정될 때까지. 토토 핫 상태는 함수를 사용하여 확인할 수 있습니다PQ상태.
PQtty #이 기능은 더 이상 아무 작업도 수행하지 않지만 이전 버전과의 호환성을 위해 유지됩니다. 함수는 항상 빈 문자열을 반환합니다. 또는NULL만일콘인수는NULL.
char *PQtty(const PGconn *conn);
PQ옵션 #연결 요청에 전달된 명령줄 옵션을 반환합니다.
char *PQoptions(const PGconn *conn);
다음 함수는 작업이 실행될 때 변경될 수 있는 상태 데이터를 반환합니다.PGconn객체.
PQ상태 #연결 상태를 반환합니다.
ConnStatusType PQstatus(const PGconn *conn);
상태는 여러 값 중 하나일 수 있습니다. 그러나 비동기 연결 절차 외부에서는 다음 중 두 가지만 표시됩니다.CONNECTION_OK그리고CONNECTION_BAD. 데이터베이스에 대한 양호한 연결 상태는 다음과 같습니다.CONNECTION_OK. 실패한 토토 핫 시도는 상태로 표시됩니다.CONNECTION_BAD. 일반적으로 OK 상태는 다음까지 유지됩니다.PQfinish, 그러나 통신 실패로 인해 상태가로 변경될 수 있습니다.CONNECTION_BAD조기. 이 경우 애플리케이션은 다음을 호출하여 복구를 시도할 수 있습니다.PQreset.
다음 항목 참조PQconnectStartParams, PQconnectStart그리고PQconnectPoll반환될 수 있는 기타 상태 코드와 관련하여.
PQ트랜잭션상태 #서버의 현재 트랜잭션 진행 상태를 반환합니다.
PGTransactionStatusType PQtransactionStatus(const PGconn *conn);
상태는 다음과 같습니다.PQTRANS_IDLE(현재 유휴 상태),PQTRANS_ACTIVE(명령이 진행 중입니다),PQTRANS_INTRANS(유휴, 유효한 트랜잭션 블록에서) 또는PQTRANS_INERROR(유휴, 실패한 트랜잭션 블록에서).PQTRANS_UNKNOWN토토 핫이 좋지 않으면 보고됩니다.PQTRANS_ACTIVE쿼리가 서버로 전송되었지만 아직 완료되지 않은 경우에만 보고됩니다.
PQ매개변수상태 #서버의 현재 매개변수 설정을 조회합니다.
const char *PQparameterStatus(const PGconn *conn, const char *paramName);
특정 매개변수 값은 토토 핫 시작 시 또는 해당 값이 변경될 때마다 서버에서 자동으로 보고됩니다.PQ매개변수상태이러한 설정을 조사하는 데 사용할 수 있습니다. 알려진 경우 매개변수의 현재 값을 반환합니다. 또는NULL매개변수를 알 수 없는 경우.
현재 릴리스에서 보고된 매개변수는 다음과 같습니다:
application_name |
scram_iterations |
client_encodi토토 핫 |
검색_경로 |
날짜 스타일 |
서버_인코딩 |
default_transaction_read_only |
서버_버전 |
in_hot_standby |
session_authorization |
integer_datetimes |
standard_conformi토토 핫_stri토토 핫s |
간격 스타일 |
시간대 |
is_superuser |
(default_transaction_read_only그리고in_hot_standby14 이전 릴리스에서는 보고되지 않았습니다.scram_iterations16 이전 릴리스에서는 보고되지 않았습니다.검색_경로18 이전 릴리스에서는 보고되지 않았습니다.) 참고서버_버전, 서버_인코딩그리고integer_datetimes시작 후에는 변경할 수 없습니다.
다음 값이 없는 경우standard_conformi토토 핫_stri토토 핫s보고되며, 애플리케이션은 이를 가정할 수 있습니다.꺼짐, 즉 백슬래시는 문자열 리터럴에서 이스케이프로 처리됩니다. 또한 이 매개변수의 존재는 이스케이프 문자열 구문(이'...')이 허용됩니다.
반환된 포인터가 선언되었지만const, 실제로는 다음과 관련된 변경 가능한 저장소를 가리킵니다.PGconn구조. 포인터가 쿼리 전반에 걸쳐 유효하다고 가정하는 것은 현명하지 않습니다.
PQfullProtocolVersion #사용 중인 프런트엔드/백엔드 프로토콜을 조사합니다.
int PQfullProtocolVersion(const PGconn *conn);
응용 프로그램은 특정 기능이 지원되는지 여부를 결정하기 위해 이 기능을 사용할 수 있습니다. 결과는 서버의 주 버전 번호에 10000을 곱하고 부 버전 번호를 더한 결과입니다. 예를 들어 버전 3.2는 30002로 반환되고 버전 4.0은 40000으로 반환됩니다. 연결이 불량하면 0이 반환됩니다. 3.0 프로토콜은 다음에서 지원됩니다.PostgreSQL서버 버전 7.4 이상.
프로토콜 버전은 토토 핫 시작이 완료된 후에도 변경되지 않지만 이론적으로 토토 핫 재설정 중에 변경될 수 있습니다.
PQ프로토콜 버전 #프런트엔드/백엔드 프로토콜 주요 버전을 조사합니다.
int PQprotocolVersion(const PGconn *conn);
달리PQfullProtocolVersion, 이는 사용 중인 주요 프로토콜 버전만 반환하지만 버전 7.4까지 더 넓은 범위의 libpq 릴리스에서 지원됩니다. 현재 가능한 값은 3(3.0 프로토콜) 또는 0(연결 불량)입니다. 릴리스 버전 14.0 이전에는 libpq가 추가로 2(2.0 프로토콜)를 반환할 수 있었습니다.
PQ서버버전 #서버 버전을 나타내는 정수를 반환합니다.
int PQserverVersion(const PGconn *conn);
응용 프로그램은 이 기능을 사용하여 연결된 데이터베이스 서버의 버전을 확인할 수 있습니다. 결과는 서버의 주 버전 번호에 10000을 곱하고 부 버전 번호를 더한 결과입니다. 예를 들어 버전 10.1은 100001로 반환되고 버전 11.0은 110000으로 반환됩니다. 연결이 불량하면 0이 반환됩니다.
주요 버전 10 이전,포스트그레SQL처음 두 부분이 함께 주요 버전을 나타내는 세 부분으로 구성된 버전 번호를 사용했습니다. 해당 버전의 경우,PQ서버 버전각 부분에 두 자리 숫자를 사용합니다. 예를 들어 버전 9.1.5는 90105로 반환되고 버전 9.2.0은 90200으로 반환됩니다.
따라서 기능 호환성을 결정하기 위해 애플리케이션은 다음 결과를 나누어야 합니다.PQ서버버전10000이 아닌 100으로 논리적 주요 버전 번호를 결정합니다. 모든 릴리스 시리즈에서 부 릴리스(버그 수정 릴리스) 간에는 마지막 두 자리만 다릅니다.
PQerrorMessage #연결 작업으로 인해 가장 최근에 생성된 오류 메시지를 반환합니다.
char *PQerrorMessage(const PGconn *conn);
거의 모든libpq함수는 메시지를 설정합니다PQerrorMessage실패할 경우. 다음을 참고하세요.libpq규칙, 비어 있지 않음PQerrorMessage결과는 여러 줄로 구성될 수 있으며 후행 줄 바꿈이 포함됩니다. 호출자는 결과를 직접 해제해서는 안 됩니다. 토토 핫된 경우 해제됩니다.PGconn핸들이 다음으로 전달됨PQfinish. 결과 문자열은 여러 작업에서 동일하게 유지될 것으로 예상해서는 안 됩니다.PGconn구조.
PQsocket #서버 연결 소켓의 파일 설명자 번호를 얻습니다. 유효한 설명자는 0보다 크거나 같습니다. -1의 결과는 현재 열려 있는 서버 연결이 없음을 나타냅니다. (정상 작동 중에는 변경되지 않지만 연결 설정 또는 재설정 중에는 변경될 수 있습니다.)
int PQsocket(const PGconn *conn);
PQbackendPID #프로세스를 반환합니다.ID(PID)이 토토 핫을 처리하는 백엔드 프로세스의.
int PQbackendPID(const PGconn *conn);
백엔드PID디버깅 목적 및 비교에 유용합니다.알림메시지(포함PID알림 백엔드 프로세스의). 참고하세요PID로컬 호스트가 아닌 데이터베이스 서버 호스트에서 실행되는 프로세스에 속합니다!
PQconnectionNeedsPassword #연결 인증 방법에 비밀번호가 필요하지만 사용할 수 있는 비밀번호가 없는 경우 true(1)를 반환합니다. 그렇지 않은 경우 false(0)를 반환합니다.
int PQconnectionNeedsPassword(const PGconn *conn);
이 기능은 토토 핫 시도 실패 후 사용자에게 비밀번호를 묻는 메시지를 표시할지 여부를 결정하는 데 적용할 수 있습니다.
PQconnectionUsedPassword #연결 인증 방법이 비밀번호를 사용한 경우 true(1)를 반환합니다. 그렇지 않은 경우 false(0)를 반환합니다.
int PQconnectionUsedPassword(const PGconn *conn);
이 기능은 서버가 비밀번호를 요구했는지 감지하기 위해 토토 핫 시도가 실패하거나 성공한 후에 적용될 수 있습니다.
PQconnectionUsedGSSAPI #연결 인증 방법이 GSSAPI를 사용한 경우 true(1)를 반환합니다. 그렇지 않은 경우 false(0)를 반환합니다.
int PQconnectionUsedGSSAPI(const PGconn *conn);
이 기능은 토토 핫이 GSSAPI로 인증되었는지 감지하는 데 적용할 수 있습니다.
다음 함수는 SSL과 관련된 정보를 반환합니다. 이 정보는 일반적으로 연결이 설정된 후에도 변경되지 않습니다.
PQsslInUse #연결이 SSL을 사용하는 경우 true(1)를 반환하고 그렇지 않은 경우 false(0)를 반환합니다.
int PQsslInUse(const PGconn *conn);
PQssl속성 #연결에 대한 SSL 관련 정보를 반환합니다.
const char *PQsslAttribute(const PGconn *conn, const char *attribute_name);
사용 가능한 속성 목록은 사용 중인 SSL 라이브러리와 연결 유형에 따라 다릅니다. 연결이 SSL을 사용하지 않거나 지정된 속성 이름이 사용 중인 라이브러리에 대해 정의되지 않은 경우 NULL을 반환합니다.
다음 속성은 일반적으로 사용 가능합니다:
도서관사용 중인 SSL 구현의 이름. (현재는 만"OpenSSL"구현됨)
프로토콜SSL/TLS 버전을 사용 중입니다. 일반적인 값은 다음과 같습니다."TLSv1", "TLSv1.1"그리고"TLSv1.2", 그러나 다른 프로토콜이 사용되는 경우 구현은 다른 문자열을 반환할 수 있습니다.
key_bits암호화 알고리즘에 사용되는 키 비트 수.
암호사용된 암호 제품군의 짧은 이름, 예:"DHE-RSA-DES-CBC3-SHA". 이름은 각 SSL 구현에 따라 다릅니다.
압축SSL 압축이 사용 중이면 "on"을 반환하고, 그렇지 않으면 "off"를 반환합니다.
alpnTLS ALPN(응용 프로그램 계층 프로토콜 협상) 확장에 의해 선택된 응용 프로그램 프로토콜입니다. libpq가 지원하는 유일한 프로토콜은 다음과 같습니다.postgresql이므로 서버가 ALPN을 지원하는지 여부를 확인하는 데 주로 유용합니다. ALPN이 사용되지 않은 경우 빈 문자열입니다.
특별한 경우로,도서관속성은 NULL을 전달하여 연결 없이 쿼리할 수 있습니다.콘인수. 결과는 기본 SSL 라이브러리 이름이 되며, 다음 경우에는 NULL이 됩니다.libpqSSL 지원 없이 컴파일되었습니다. (이전)PostgreSQL버전 15, NULL을 다음으로 전달콘인수 결과는 항상 NULL이었습니다. 이 사례의 최신 구현과 이전 구현을 구별해야 하는 클라이언트 프로그램은 다음을 확인할 수 있습니다.LIBPQ_HAS_SSL_LIBRARY_DETECTION기능 매크로.)
PQsslAttributeNames #다음에서 사용할 수 있는 SSL 속성 이름의 배열을 반환합니다.PQsslAttribute(). 배열은 NULL 포인터로 종료됩니다.
const char * const * PQsslAttributeNames(const PGconn *conn);
만약콘이 NULL인 경우 기본 SSL 라이브러리에 사용할 수 있는 속성이 반환되거나 다음과 같은 경우 빈 목록이 반환됩니다.libpqSSL 지원 없이 컴파일되었습니다. 만일콘은 NULL이 아니며 연결에 사용 중인 SSL 라이브러리에 사용 가능한 속성이 반환되거나 연결이 암호화되지 않은 경우 빈 목록이 반환됩니다.
PQsslStruct #연결을 설명하는 SSL 구현 관련 개체에 대한 포인터를 반환합니다. 연결이 암호화되지 않았거나 요청한 개체 유형을 연결의 SSL 구현에서 사용할 수 없는 경우 NULL을 반환합니다.
void *PQsslStruct(const PGconn *conn, const char *struct_name);
사용 가능한 구조체는 사용 중인 SSL 구현에 따라 다릅니다. 에 대한오픈SSL, 이름 아래에 사용 가능한 구조체가 하나 있습니다.오픈SSL, 그리고 포인터를 반환합니다.오픈SSL'sSSL구조체. 이 기능을 사용하려면 다음 줄의 코드를 사용할 수 있습니다.
#include <libpq-fe.h
#include <openssl/ssl.h
...
SSL *ssl;
dbconn = PQconnectdb(...);
...
ssl = PQsslStruct(dbconn, "OpenSSL");
만약 (ssl)
/* OpenSSL 기능을 사용하여 SSL에 액세스 */
이 구조는 암호화 수준 확인, 서버 인증서 확인 등에 사용될 수 있습니다. 참조오픈SSL이 구조에 대한 정보에 대한 문서.
PQgetssl #연결에 사용된 SSL 구조를 반환하거나, SSL이 사용되지 않는 경우 NULL을 반환합니다.
void *PQgetssl(const PGconn *conn);
이 함수는 다음과 같습니다.PQsslStruct(conn, "OpenSSL"). 반환된 구조체는 다음과 관련이 있으므로 새 애플리케이션에서는 사용하면 안 됩니다.오픈SSL다른 경우에는 사용할 수 없습니다.SSL구현이 사용되었습니다. 연결이 SSL을 사용하는지 확인하려면 다음을 호출하세요.PQsslInUse대신 연결에 대한 자세한 내용을 보려면 다음을 사용하세요.PQssl속성.