이 섹션은 각 토토 캔의 자세한 형식을 설명합니다. 각각은 프런트엔드(F), 백엔드(B) 또는 둘 다(F 및 B)에서 보낼 수 있음을 나타내도록 표시되어 있습니다. 각 토토 캔의 시작 부분에는 바이트 수가 포함되어 있지만 토토 캔 형식은 바이트 수를 참조하지 않고도 토토 캔 끝을 찾을 수 있도록 정의되어 있습니다. 이는 유효성 검사에 도움이 됩니다. (CopyData 토토 캔는 데이터 스트림의 일부를 형성하므로 예외입니다. 개별 CopyData 토토 캔의 내용은 자체적으로 해석할 수 없습니다.)
토토 캔를 인증 요청으로 식별합니다.
자신을 포함한 토토 캔 내용의 길이(바이트).
인증이 성공했음을 나타냅니다.
토토 캔를 인증 요청으로 식별합니다.
자신을 포함한 토토 캔 내용의 길이(바이트).
Kerberos V5 인증이 필요함을 지정합니다.
토토 캔를 인증 요청으로 식별합니다.
자신을 포함한 토토 캔 내용의 길이(바이트).
일반 텍스트 비밀번호가 필요함을 지정합니다.
토토 캔를 인증 요청으로 식별합니다.
자신을 포함한 토토 캔 내용의 길이(바이트).
MD5로 암호화된 비밀번호가 필요함을 지정합니다.
비밀번호를 암호화할 때 사용할 솔트입니다.
토토 캔를 인증 요청으로 식별합니다.
자신을 포함한 토토 캔 내용의 길이(바이트).
SCM 자격 증명 토토 캔가 필요함을 지정합니다.
토토 캔를 인증 요청으로 식별합니다.
자신을 포함한 토토 캔 내용의 길이(바이트).
GSSAPI 인증이 필요함을 지정합니다.
토토 캔를 인증 요청으로 식별합니다.
자신을 포함한 토토 캔 내용의 길이(바이트).
SSPI 인증이 필요함을 지정합니다.
토토 캔를 인증 요청으로 식별합니다.
자신을 포함한 토토 캔 내용의 길이(바이트).
이 토토 캔에 GSSAPI 또는 SSPI 데이터가 포함되어 있음을 지정합니다.
nGSSAPI 또는 SSPI 인증 데이터.
토토 캔를 인증 요청으로 식별합니다.
자신을 포함한 토토 캔 내용의 길이(바이트).
SASL 인증이 필요함을 지정합니다.
메시지 본문은 서버의 우선 순위에 따른 SASL 인증 메커니즘 목록입니다. 마지막 인증 메커니즘 이름 뒤에는 종결자로 0바이트가 필요합니다. 각 메커니즘에는 다음이 있습니다.
SASL 인증 메커니즘의 이름.
토토 캔를 인증 요청으로 식별합니다.
자신을 포함한 토토 캔 내용의 길이(바이트).
이 토토 캔에 SASL 챌린지가 포함되어 있음을 지정합니다.
n사용 중인 SASL 메커니즘과 관련된 SASL 데이터.
토토 캔를 인증 요청으로 식별합니다.
자신을 포함한 토토 캔 내용의 길이(바이트).
SASL 인증이 완료되었음을 지정합니다.
nSASL 결과 "추가 데이터", 사용 중인 SASL 메커니즘과 관련된 것입니다.
토토 캔를 취소 키 데이터로 식별합니다. 나중에 CancelRequest 토토 캔를 발행할 수 있으려면 프런트엔드에서 이 값을 저장해야 합니다.
자신을 포함한 토토 캔 내용의 길이(바이트).
이 백엔드의 프로세스 ID.
이 백엔드의 비밀 키입니다.
토토 캔를 바인드 명령으로 식별합니다.
자신을 포함한 토토 캔 내용의 길이(바이트).
대상 포털의 이름(빈 문자열은 이름이 없는 포털을 선택합니다).
소스 준비된 문의 이름(빈 문자열은 이름이 없는 준비된 문의 선택).
뒤에 오는 매개변수 형식 코드의 수(표시C아래). 매개변수가 없거나 매개변수가 모두 기본 형식(텍스트)을 사용함을 나타내기 위해 0일 수 있습니다. 또는 하나. 이 경우 지정된 형식 코드가 모든 매개변수에 적용됩니다. 또는 실제 매개변수 수와 같을 수도 있습니다.
C]매개변수 형식 코드. 각각은 현재 0(텍스트) 또는 1(이진)이어야 합니다.
뒤에 오는 매개변수 값의 수(0일 수도 있음). 이는 쿼리에 필요한 매개변수 수와 일치해야 합니다.
다음으로, 각 매개변수에 대해 다음 필드 쌍이 나타납니다:
매개변수 값의 길이(바이트)(이 개수에는 자체가 포함되지 않음). 0일 수 있습니다. 특별한 경우로 -1은 NULL 매개변수 값을 나타냅니다. NULL 경우에는 값 바이트가 뒤따르지 않습니다.
n관련 형식 코드가 나타내는 형식의 매개변수 값.n위의 길이입니다.
마지막 매개변수 뒤에 다음 필드가 나타납니다:
다음 결과-열 형식 코드의 수(표시R아래). 결과 열이 없거나 결과 열이 모두 기본 형식(텍스트)을 사용해야 함을 나타내기 위해 0일 수 있습니다. 또는 하나. 이 경우 지정된 형식 코드는 모든 결과 열(있는 경우)에 적용됩니다. 또는 쿼리의 실제 결과 열 수와 같을 수도 있습니다.
R]결과-열 형식 코드. 각각은 현재 0(텍스트) 또는 1(이진)이어야 합니다.
토토 캔를 바인드 완료 표시기로 식별합니다.
자신을 포함한 토토 캔 내용의 길이(바이트).
자신을 포함한 토토 캔 내용의 길이(바이트).
취소 요청 코드입니다. 값은 다음을 포함하도록 선택됩니다.1234최상위 16비트 및5678최하위 16비트. (혼란을 피하기 위해 이 코드는 프로토콜 버전 번호와 동일해서는 안 됩니다.)
대상 백엔드의 프로세스 ID.
대상 백엔드의 비밀 키입니다.
토토 캔를 닫기 명령으로 식별합니다.
자신을 포함한 토토 캔 내용의 길이(바이트).
'S' 준비된 진술을 닫으려면; 또는 'P' 포털을 닫습니다.
닫을 준비된 문 또는 포털의 이름(빈 문자열은 이름이 지정되지 않은 준비된 문 또는 포털을 선택합니다).
토토 캔를 닫기 완료 표시기로 식별합니다.
자신을 포함한 토토 캔 내용의 길이(바이트).
토토 캔를 명령 완료 응답으로 식별합니다.
자신을 포함한 토토 캔 내용의 길이(바이트).
명령 태그입니다. 이는 일반적으로 어떤 SQL 명령이 완료되었는지 식별하는 단일 단어입니다.
다음을 위해삽입명령, 태그는삽입, 여기서oid 행행은 삽입된 행 수입니다.oid인 경우 삽입된 행의 개체 ID입니다.행는 1이고 대상 테이블에 OID가 있습니다. 그렇지 않으면oid0입니다.
a삭제명령, 태그는삭제어디에서행행삭제된 행 수입니다.
에 대한업데이트명령, 태그는업데이트어디에서행행업데이트된 행 수입니다.
a선택또는다음으로 테이블 생성명령, 태그는선택어디에서행행검색된 행 수입니다.
a이동명령, 태그는이동어디에서행행은 커서 위치가 변경된 행 수입니다.
a가져오기명령, 태그는가져오기어디에서행행은 커서에서 검색된 행 수입니다.
a복사명령, 태그는복사어디에서행행는 복사된 행 수입니다. (참고: 행 개수는포스트그레SQL8.2 이상.)
메시지를 다음과 같이 식별합니다.복사데이터.
자신을 포함한 토토 캔 내용의 길이(바이트).
na의 일부를 구성하는 데이터복사데이터 스트림. 백엔드에서 보낸 토토 캔는 항상 단일 데이터 행에 해당하지만 프런트엔드에서 보낸 토토 캔는 데이터 스트림을 임의로 나눌 수 있습니다.
메시지를 다음으로 식별합니다.복사-완료 표시기.
자신을 포함한 토토 캔 내용의 길이(바이트).
메시지를 다음으로 식별합니다.복사-실패 표시기.
자신을 포함한 토토 캔 내용의 길이(바이트).
실패 원인으로 보고하는 오류 토토 캔입니다.
메시지를 복사 시작 응답으로 식별합니다. 이제 프런트엔드에서 카피인 데이터를 보내야 합니다(그렇게 할 준비가 되지 않은 경우 CopyFail 메시지를 보냅니다).
자신을 포함한 토토 캔 내용의 길이(바이트).
0은 전체를 나타냅니다.복사형식은 텍스트입니다(줄바꿈으로 구분된 행, 구분 문자로 구분된 열 등). 1은 전체 복사 형식이 이진(DataRow 형식과 유사)임을 나타냅니다. 참조복사더 많은 정보를 원하시면.
복사할 데이터의 열 수(표시N아래).
N]각 열에 사용되는 형식 코드. 각각은 현재 0(텍스트) 또는 1(이진)이어야 합니다. 전체 복사 형식이 텍스트인 경우 모두 0이어야 합니다.
메시지를 복사 시작 응답으로 식별합니다. 이 메시지 뒤에 복사 데이터가 표시됩니다.
자신을 포함한 토토 캔 내용의 길이(바이트).
0은 전체를 나타냅니다.복사형식은 텍스트입니다(줄바꿈으로 구분된 행, 구분 문자로 구분된 열 등). 1은 전체 복사 형식이 이진(DataRow 형식과 유사)임을 나타냅니다. 참조복사더 많은 정보를 원하시면.
복사할 데이터의 열 수(표시N아래).
N]각 열에 사용되는 형식 코드. 각각은 현재 0(텍스트) 또는 1(이진)이어야 합니다. 전체 복사 형식이 텍스트인 경우 모두 0이어야 합니다.
메시지를 둘 다 복사 시작 응답으로 식별합니다. 이 메시지는 스트리밍 복제에만 사용됩니다.
자신을 포함한 토토 캔 내용의 길이(바이트).
0은 전체를 나타냅니다.복사형식은 텍스트입니다(줄바꿈으로 구분된 행, 구분 문자로 구분된 열 등). 1은 전체 복사 형식이 이진(DataRow 형식과 유사)임을 나타냅니다. 참조복사더 많은 정보를 원하시면.
복사할 데이터의 열 수(표시N아래).
N]각 열에 사용되는 형식 코드. 각각은 현재 0(텍스트) 또는 1(이진)이어야 합니다. 전체 복사 형식이 텍스트인 경우 모두 0이어야 합니다.
토토 캔를 데이터 행으로 식별합니다.
자신을 포함한 토토 캔 내용의 길이(바이트).
다음 열 값의 수(아마도 0).
다음으로 각 열에 대해 다음 필드 쌍이 나타납니다.
열 값의 길이(바이트)(이 개수에는 자체가 포함되지 않음). 0일 수 있습니다. 특별한 경우로 -1은 NULL 열 값을 나타냅니다. NULL 경우에는 값 바이트가 뒤따르지 않습니다.
n관련 형식 코드가 나타내는 형식의 열 값.n위의 길이입니다.
토토 캔를 설명 명령으로 식별합니다.
자신을 포함한 토토 캔 내용의 길이(바이트).
'S' 준비된 진술을 설명하기 위해; 또는 'P' 포털을 설명합니다.
설명할 준비된 문 또는 포털의 이름(빈 문자열은 이름이 지정되지 않은 준비된 문 또는 포털을 선택합니다).
메시지를 빈 쿼리 문자열에 대한 응답으로 식별합니다. (이것은 CommandComplete를 대체합니다.)
자신을 포함한 토토 캔 내용의 길이(바이트).
토토 캔를 오류로 식별합니다.
자신을 포함한 토토 캔 내용의 길이(바이트).
메시지 본문은 하나 이상의 식별된 필드로 구성되며 그 뒤에 종결자로 0바이트가 옵니다. 필드는 어떤 순서로든 나타날 수 있습니다. 각 필드에는 다음이 있습니다.
필드 유형을 식별하는 코드; 0인 경우 이는 메시지 종결자이며 뒤에 오는 문자열은 없습니다. 현재 정의된 필드 유형은 다음과 같습니다.PostgreSQL : 문서 : 11 : 53.8. 배트맨 토토 및 통지 메시지 필드. 앞으로 더 많은 필드 유형이 추가될 수 있으므로 프런트엔드는 인식할 수 없는 유형의 필드를 자동으로 무시해야 합니다.
필드 값입니다.
토토 캔를 실행 명령으로 식별합니다.
자신을 포함한 토토 캔 내용의 길이(바이트).
실행할 포털의 이름(빈 문자열은 이름이 없는 포털을 선택합니다).
포털에 행을 반환하는 쿼리가 포함된 경우 반환할 최대 행 수(그렇지 않으면 무시됨). 0은 나타냄“제한 없음”.
토토 캔를 플러시 명령으로 식별합니다.
자신을 포함한 토토 캔 내용의 길이(바이트).
토토 캔를 함수 호출로 식별합니다.
자신을 포함한 토토 캔 내용의 길이(바이트).
호출할 함수의 개체 ID를 지정합니다.
뒤에 오는 인수 형식 코드의 수(표시됨C아래). 인수가 없거나 인수가 모두 기본 형식(텍스트)을 사용함을 나타내기 위해 0일 수 있습니다. 또는 하나. 이 경우 지정된 형식 코드가 모든 인수에 적용됩니다. 또는 실제 인수 수와 같을 수도 있습니다.
C]인수 형식 코드. 각각은 현재 0(텍스트) 또는 1(이진)이어야 합니다.
함수에 제공되는 인수의 수를 지정합니다.
다음으로, 각 인수에 대해 다음 필드 쌍이 나타납니다:
인수 값의 길이(바이트)(이 개수에는 자체가 포함되지 않음). 0일 수 있습니다. 특별한 경우로 -1은 NULL 인수 값을 나타냅니다. NULL 경우에는 값 바이트가 뒤따르지 않습니다.
n관련 형식 코드가 나타내는 형식의 인수 값.n위의 길이입니다.
마지막 인수 뒤에 다음 필드가 나타납니다:
함수 결과의 형식 코드. 현재 0(텍스트) 또는 1(이진)이어야 합니다.
토토 캔를 함수 호출 결과로 식별합니다.
자신을 포함한 토토 캔 내용의 길이(바이트).
함수 결과 값의 길이(바이트)(이 개수에는 자체가 포함되지 않음). 0일 수 있습니다. 특별한 경우로 -1은 NULL 함수 결과를 나타냅니다. NULL 경우에는 값 바이트가 뒤따르지 않습니다.
n관련 형식 코드가 나타내는 형식의 함수 결과 값.n위의 길이입니다.
메시지를 GSSAPI 또는 SSPI 응답으로 식별합니다. 이는 SASL 및 비밀번호 응답 메시지에도 사용됩니다. 정확한 메시지 유형은 문맥을 통해 추론할 수 있습니다.
자신을 포함한 토토 캔 내용의 길이(바이트).
nGSSAPI/SSPI 특정 메시지 데이터.
토토 캔를 프로토콜 버전 협상 토토 캔로 식별합니다.
자신을 포함한 토토 캔 내용의 길이(바이트).
클라이언트가 요청한 주요 프로토콜 버전에 대해 서버가 지원하는 최신 부 프로토콜 버전입니다.
서버가 인식하지 못하는 프로토콜 옵션의 수.
그런 다음, 서버가 인식하지 못하는 프로토콜 옵션의 경우 다음과 같습니다:
옵션 이름입니다.
토토 캔를 데이터 없음 표시로 식별합니다.
자신을 포함한 토토 캔 내용의 길이(바이트).
토토 캔를 알림으로 식별합니다.
자신을 포함한 토토 캔 내용의 길이(바이트).
메시지 본문은 하나 이상의 식별된 필드로 구성되며 그 뒤에 종결자로 0바이트가 옵니다. 필드는 어떤 순서로든 나타날 수 있습니다. 각 필드에는 다음이 있습니다.
필드 유형을 식별하는 코드입니다. 0인 경우 이는 메시지 종결자이며 뒤에 오는 문자열은 없습니다. 현재 정의된 필드 유형은 다음과 같습니다.PostgreSQL : 문서 : 11 : 53.8. 배트맨 토토 및 통지 메시지 필드. 앞으로 더 많은 필드 유형이 추가될 수 있으므로 프런트엔드는 인식할 수 없는 유형의 필드를 자동으로 무시해야 합니다.
필드 값입니다.
토토 캔를 알림 응답으로 식별합니다.
자신을 포함한 토토 캔 내용의 길이(바이트).
알림 백엔드 프로세스의 프로세스 ID입니다.
알림이 발생한 채널의 이름.
그“페이로드”문자열이 알림 프로세스에서 전달되었습니다.
토토 캔를 매개변수 설명으로 식별합니다.
자신을 포함한 토토 캔 내용의 길이(바이트).
문에 사용된 매개변수의 수(0일 수 있음).
그러면 각 매개변수에 대해 다음이 있습니다:
매개변수 데이터 유형의 개체 ID를 지정합니다.
토토 캔를 런타임 매개변수 상태 보고서로 식별합니다.
자신을 포함한 토토 캔 내용의 길이(바이트).
보고되는 런타임 매개변수의 이름입니다.
매개변수의 현재 값.
토토 캔를 구문 분석 명령으로 식별합니다.
자신을 포함한 토토 캔 내용의 길이(바이트).
대상 준비된 문의 이름(빈 문자열은 이름이 없는 준비된 문의 선택).
파싱할 쿼리 문자열입니다.
지정된 매개변수 데이터 유형의 수(0일 수 있음). 이는 쿼리 문자열에 나타날 수 있는 매개변수 수를 나타내는 것이 아니라 프런트엔드에서 유형을 미리 지정하려는 수일 뿐입니다.
그러면 각 매개변수에 대해 다음이 있습니다:
매개변수 데이터 유형의 개체 ID를 지정합니다. 여기에 0을 두는 것은 유형을 지정하지 않은 채로 두는 것과 같습니다.
토토 캔를 구문 분석 완료 표시기로 식별합니다.
자신을 포함한 토토 캔 내용의 길이(바이트).
토토 캔를 비밀번호 응답으로 식별합니다. 이는 GSSAPI, SSPI 및 SASL 응답 토토 캔에도 사용됩니다. 정확한 토토 캔 유형은 문맥을 통해 추론할 수 있습니다.
자신을 포함한 토토 캔 내용의 길이(바이트).
비밀번호(요청 시 암호화됨).
토토 캔를 포털 일시 중단 표시기로 식별합니다. 이는 실행 토토 캔의 행 개수 제한에 도달한 경우에만 나타납니다.
자신을 포함한 토토 캔 내용의 길이(바이트).
토토 캔를 간단한 쿼리로 식별합니다.
자신을 포함한 토토 캔 내용의 길이(바이트).
쿼리 문자열 자체입니다.
토토 캔 유형을 식별합니다. ReadyForQuery는 백엔드가 새로운 쿼리 주기를 준비할 때마다 전송됩니다.
자신을 포함한 토토 캔 내용의 길이(바이트).
현재 백엔드 트랜잭션 상태 표시기. 가능한 값은 '입니다.I' 유휴 상태인 경우(트랜잭션 블록에 있지 않음) 'T' 트랜잭션 블록에 있는 경우; 또는 'E' 실패한 트랜잭션 블록에 있는 경우(블록이 종료될 때까지 쿼리가 거부됩니다.)
토토 캔를 행 설명으로 식별합니다.
자신을 포함한 토토 캔 내용의 길이(바이트).
행의 필드 수를 지정합니다(0일 수 있음).
그리고 각 필드에 대해 다음이 있습니다:
필드 이름입니다.
필드가 특정 테이블의 열로 식별될 수 있는 경우 테이블의 개체 ID입니다. 그렇지 않으면 0입니다.
필드가 특정 테이블의 열로 식별될 수 있는 경우 열의 속성 번호. 그렇지 않으면 0입니다.
필드 데이터 유형의 개체 ID.
데이터 유형 크기(참조pg_type.typlen). 음수 값은 가변 너비 유형을 나타냅니다.
유형 수정자(참조pg_attribute.atttypmod). 수정자의 의미는 유형별로 다릅니다.
필드에 사용되는 형식 코드. 현재는 0(텍스트) 또는 1(이진)입니다. 설명의 문 변형에서 반환된 RowDescription에서 형식 코드는 아직 알려지지 않았으며 항상 0입니다.
토토 캔를 초기 SASL 응답으로 식별합니다. 이는 GSSAPI, SSPI 및 비밀번호 응답 토토 캔에도 사용됩니다. 정확한 토토 캔 유형은 컨텍스트에서 추론됩니다.
자신을 포함한 토토 캔 내용의 길이(바이트).
클라이언트가 선택한 SASL 인증 메커니즘의 이름.
뒤에 나오는 SASL 메커니즘 특정 "초기 클라이언트 응답"의 길이 또는 초기 응답이 없는 경우 -1.
nSASL 메커니즘 특정 "초기 응답".
토토 캔를 SASL 응답으로 식별합니다. 이는 GSSAPI, SSPI 및 비밀번호 응답 토토 캔에도 사용됩니다. 정확한 토토 캔 유형은 문맥을 통해 추론할 수 있습니다.
자신을 포함한 토토 캔 내용의 길이(바이트).
nSASL 메커니즘 특정 메시지 데이터.
자신을 포함한 토토 캔 내용의 길이(바이트).
그SSL요청 코드. 값은 다음을 포함하도록 선택됩니다.1234최상위 16비트 및5679최하위 16비트. (혼란을 피하기 위해 이 코드는 프로토콜 버전 번호와 동일해서는 안 됩니다.)
자신을 포함한 토토 캔 내용의 길이(바이트).
프로토콜 버전 번호. 가장 중요한 16비트는 주요 버전 번호입니다(여기에 설명된 프로토콜의 경우 3). 최하위 16비트는 부 버전 번호(여기에 설명된 프로토콜의 경우 0)입니다.
프로토콜 버전 번호 뒤에는 하나 이상의 매개변수 이름 및 값 문자열 쌍이 옵니다. 마지막 이름/값 쌍 뒤에는 종결자로 0바이트가 필요합니다. 매개변수는 어떤 순서로든 나타날 수 있습니다.사용자은 필수이고 나머지는 선택사항입니다. 각 매개변수는 다음과 같이 지정됩니다.
매개변수 이름. 현재 인식되는 이름은 다음과 같습니다.
사용자연결할 데이터베이스 사용자 이름. 필수; 기본값은 없습니다.
데이터베이스연결할 데이터베이스입니다. 기본값은 사용자 이름입니다.
옵션백엔드에 대한 명령줄 인수. (개별 런타임 매개변수 설정을 위해 더 이상 사용되지 않습니다.) 이 문자열 내의 공백은 백슬래시()로 이스케이프하지 않는 한 별도의 인수로 간주됩니다.\); 쓰다\\문자 그대로 백슬래시를 나타냅니다.
복제SQL 문 대신 작은 복제 명령 집합을 실행할 수 있는 스트리밍 복제 모드에서 연결하는 데 사용됩니다. 값은 다음과 같습니다.참, 거짓, 또는데이터베이스, 기본값은거짓. 참조섹션 53.4자세한 내용은.
위 외에도 다른 매개변수가 나열될 수 있습니다. 로 시작하는 매개변수 이름_pq_.은 프로토콜 확장으로 사용하도록 예약되어 있는 반면 다른 것들은 백엔드 시작 시간에 설정되는 런타임 매개변수로 처리됩니다. 이러한 설정은 백엔드 시작 중에 적용되며(있는 경우 명령줄 인수를 구문 분석한 후) 세션 기본값으로 작동합니다.
매개변수 값입니다.
토토 캔를 동기화 명령으로 식별합니다.
자신을 포함한 토토 캔 내용의 길이(바이트).
토토 캔를 종료로 식별합니다.
자신을 포함한 토토 캔 내용의 길이(바이트).