33.2. 토토 핫 상태 기능

이 함수는 기존 데이터베이스 토토 핫 개체의 상태를 조사하는 데 사용할 수 있습니다.

libpq응용프로그램 프로그래머는 주의를 기울여 유지해야 합니다.PGconn추상화. 아래에 설명된 접근자 함수를 사용하여 내용을 가져옵니다.PGconn. 내부 참조PGconn필드 사용libpq-int.h향후 변경될 수 있으므로 권장하지 않습니다.

다음 함수는 연결 시 설정된 매개변수 값을 반환합니다. 이 값은 연결 수명 동안 고정됩니다. 다중 호스트 연결 문자열이 사용되는 경우 값은PQ호스트, PQ포트PQ패스동일한 토토 핫을 사용하여 새 토토 핫이 설정되면 변경될 수 있습니다PGconn객체. 다른 값은의 수명 동안 고정됩니다.PGconn객체.

PQdb

토토 핫의 데이터베이스 이름을 반환합니다.

char *PQdb(const PGconn *conn);
PQuser

토토 핫의 사용자 이름을 반환합니다.

char *PQuser(const PGconn *conn);
PQ패스

토토 핫 비밀번호를 반환합니다.

char *PQpass(const PGconn *conn);

PQpass연결 매개변수에 지정된 비밀번호를 반환하거나, 비밀번호가 없고 비밀번호를 다음에서 얻은 경우 반환합니다.토토 : 문서 : 13 : 33.15. 암호 파일, 그것은 그것을 반환할 것입니다. 후자의 경우 연결 매개변수에 여러 호스트가 지정된 경우 다음 결과에 의존할 수 없습니다.PQ패스토토 핫이 설정될 때까지. 토토 핫 상태는 함수를 사용하여 확인할 수 있습니다PQ상태.

PQ호스트

활성 연결의 서버 호스트 이름을 반환합니다. 호스트 이름, IP 주소 또는 Unix 소켓을 통해 연결하는 경우 디렉터리 경로일 수 있습니다. (경로 대소문자는 항상 다음으로 시작하는 절대 경로이므로 구별할 수 있습니다./.)

char *PQhost(const PGconn *conn);

토토 핫 매개변수가 둘 다 지정한 경우호스트그리고호스트주소그러면PQ호스트다음을 반환합니다호스트정보. 만약에)호스트주소이 지정되면 그것이 반환됩니다. 연결 매개변수에 여러 호스트가 지정된 경우,PQ호스트실제로 연결된 호스트를 반환합니다.

PQ호스트반환NULLif the인수는NULL. 그렇지 않고 호스트 정보를 생성하는 중에 오류가 발생하면(연결이 완전히 설정되지 않았거나 오류가 발생한 경우) 빈 문자열을 반환합니다.

연결 매개변수에 여러 호스트가 지정된 경우 다음 결과에 의존할 수 없습니다.PQ호스트토토 핫이 이루어질 때까지. 토토 핫 상태는 함수를 사용하여 확인할 수 있습니다PQ상태.

PQhostaddr

활성 연결의 서버 IP 주소를 반환합니다. 이는 호스트 이름이 확인된 주소이거나를 통해 제공된 IP 주소일 수 있습니다.hostaddr매개변수.

char *PQhostaddr(const PGconn *conn);

PQhostaddr반환NULLif the인수는NULL. 그렇지 않고 호스트 정보를 생성하는 중에 오류가 발생하면(연결이 완전히 설정되지 않았거나 오류가 발생한 경우) 빈 문자열을 반환합니다.

PQ포트

활성 연결의 포트를 반환합니다.

char *PQport(const PGconn *conn);

토토 핫 매개변수에 여러 포트가 지정된 경우,PQ포트실제로 연결된 포트를 반환합니다.

PQ포트반환NULL만일인수는NULL. 그렇지 않고 포트 정보를 생성하는 중에 오류가 발생하면(연결이 완전히 설정되지 않았거나 오류가 발생한 경우) 빈 문자열을 반환합니다.

연결 매개변수에 여러 포트가 지정된 경우 다음 결과에 의존할 수 없습니다.PQ포트토토 핫이 설정될 때까지. 토토 핫 상태는 함수를 사용하여 확인할 수 있습니다PQ상태.

PQtty

디버그를 반환합니다.TTY토토 핫의. (서버가 더 이상 주의를 기울이지 않기 때문에 이것은 더 이상 사용되지 않습니다.TTY설정이지만 이전 버전과의 호환성을 위해 기능은 그대로 유지됩니다.)

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매개변수를 알 수 없는 경우.

현재 릴리스에서 보고된 매개변수는 다음과 같습니다.서버_버전, 서버_인코딩, client_encodi토토 핫, 응용프로그램_이름, is_superuser, session_authorization, 날짜 스타일, 간격 스타일, 시간대, integer_datetimesstandard_conformi토토 핫_stri토토 핫s. (서버_인코딩, 시간대integer_datetimes8.0 이전 릴리스에서는 보고되지 않았습니다.standard_conformi토토 핫_stri토토 핫s8.1 이전 릴리스에서는 보고되지 않았습니다.간격 스타일8.4 이전 릴리스에서는 보고되지 않았습니다.응용프로그램_이름9.0 이전 릴리스에서는 보고되지 않았습니다.) 참고서버_버전, 서버_인코딩그리고integer_datetimes시작 후에는 변경할 수 없습니다.

3.0 이전 프로토콜 서버는 매개변수 설정을 보고하지 않지만libpq값을 얻기 위한 논리를 포함합니다서버_버전그리고client_encodi토토 핫어쨌든. 애플리케이션을 사용하는 것이 좋습니다.PQ매개변수상태대신임시코드를 사용하여 이러한 값을 결정합니다. (그러나 3.0 이전 연결에서는 다음 사항이 변경된다는 점에 유의하세요.client_encodi토토 핫경유SET토토 핫 시작 후 반영되지 않음PQ매개변수상태.) For서버_버전, 또한 참조PQ서버버전, 비교하기 훨씬 쉬운 숫자 형식으로 정보를 반환합니다.

다음 값이 없는 경우standard_conformi토토 핫_stri토토 핫s이 보고되고, 애플리케이션은 이를 가정할 수 있습니다.꺼짐, 즉 백슬래시는 문자열 리터럴에서 이스케이프로 처리됩니다. 또한 이 매개변수의 존재는 이스케이프 문자열 구문(이'...')이 허용됩니다.

반환된 포인터가 선언되었지만const, 실제로는 다음과 관련된 변경 가능한 저장소를 가리킵니다.PGconn구조. 포인터가 쿼리 전반에 걸쳐 유효하다고 가정하는 것은 현명하지 않습니다.

PQ프로토콜 버전

사용 중인 프런트엔드/백엔드 프로토콜을 조사합니다.

int PQprotocolVersion(const PGconn *conn);

응용프로그램은 특정 기능이 지원되는지 여부를 결정하기 위해 이 기능을 사용할 수 있습니다. 현재 가능한 값은 2(2.0 프로토콜), 3(3.0 프로토콜) 또는 0(연결 불량)입니다. 프로토콜 버전은 연결 시작이 완료된 후에도 변경되지 않지만 이론적으로 연결 재설정 중에 변경될 수 있습니다. 3.0 프로토콜은 일반적으로 다음과 통신할 때 사용됩니다.PostgreSQL7.4 이상 서버; 7.4 이전 서버는 프로토콜 2.0만 지원합니다. (프로토콜 1.0은 더 이상 사용되지 않으며 지원되지 않습니다.libpq.)

PQ서버버전

서버 버전을 나타내는 정수를 반환합니다.

int PQserverVersion(const PGconn *conn);

응용 프로그램은 이 기능을 사용하여 연결된 데이터베이스 서버의 버전을 확인할 수 있습니다. 결과는 서버의 주 버전 번호에 10000을 곱하고 부 버전 번호를 더한 결과입니다. 예를 들어 버전 10.1은 100001로 반환되고 버전 11.0은 110000으로 반환됩니다. 연결이 불량하면 0이 반환됩니다.

주요 버전 10 이전,PostgreSQL처음 두 부분이 함께 주요 버전을 나타내는 세 부분으로 구성된 버전 번호를 사용했습니다. 해당 버전의 경우,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

연결 인증 방법이 비밀번호를 사용한 경우 참(1)을 반환합니다. 그렇지 않은 경우 false(0)를 반환합니다.

int PQconnectionUsedPassword(const PGconn *conn);

이 기능은 서버가 비밀번호를 요구했는지 감지하기 위해 토토 핫 시도가 실패하거나 성공한 후에 적용될 수 있습니다.

다음 함수는 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 라이브러리와 연결 유형에 따라 다릅니다. 속성을 사용할 수 없으면 NULL을 반환합니다.

다음 속성은 일반적으로 사용 가능합니다:

도서관

사용 중인 SSL 구현의 이름. (현재는 만"OpenSSL"구현됨)

프로토콜

SSL/TLS 버전을 사용 중입니다. 일반적인 값은 다음과 같습니다."TLSv1", "TLSv1.1"그리고"TLSv1.2", 그러나 다른 프로토콜이 사용되는 경우 구현은 다른 문자열을 반환할 수 있습니다.

key_bits

암호화 알고리즘에 사용되는 키 비트 수.

암호

사용된 암호 제품군의 짧은 이름, 예:"DHE-RSA-DES-CBC3-SHA". 이름은 각 SSL 구현에 따라 다릅니다.

압축

SSL 압축이 사용 중이면 "on"을 반환하고, 그렇지 않으면 "off"를 반환합니다.

PQsslAttributeNames

사용 가능한 SSL 속성 이름의 배열을 반환합니다. 배열은 NULL 포인터로 종료됩니다.

const char * const * PQsslAttributeNames(const PGconn *conn);
PQsslStruct

연결을 설명하는 SSL 구현 관련 개체에 대한 포인터를 반환합니다.

void *PQsslStruct(const PGconn *conn, 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");
    만약 (ssl)

        /* OpenSSL 기능을 사용하여 SSL에 액세스 */

이 구조는 암호화 수준 확인, 서버 인증서 확인 등을 위해 사용될 수 있습니다. 참조오픈SSL이 구조에 대한 정보에 대한 문서.

PQgetssl

연결에 사용된 SSL 구조를 반환하거나, SSL이 사용되지 않는 경우 null을 반환합니다.

void *PQgetssl(const PGconn *conn);

이 함수는 다음과 같습니다.PQsslStruct(conn, "OpenSSL"). 반환된 구조체는 OpenSSL에만 해당되고 다른 SSL 구현이 사용되는 경우 사용할 수 없기 때문에 새 애플리케이션에서는 사용하면 안 됩니다. 연결이 SSL을 사용하는지 확인하려면 다음을 호출하세요.PQsslInUse대신 연결에 대한 자세한 내용을 보려면 다음을 사용하세요.PQssl속성.

수정사항 제출

문서에 올바르지 않은 내용이 있으면 일치하지 않습니다. 특정 기능에 대한 경험이 있거나 추가 설명이 필요한 경우 이용해주세요이 양식문서 문제를 보고합니다.