이 문서는 지원되지 않는 버전의 토토 용입니다.
당신은에 대해 같은 페이지를 볼 수 있습니다PostgreSQL : 문서 : 17 : 53.7. 토토 핫 형식버전 또는 위에 나열된 다른 지원 버전 중 하나입니다.

4.4. 토토 형식

이 섹션에서는 각 토토의 자세한 형식에 대해 설명합니다. 각각은 프론트 엔드 (F), 우체국 장/백엔드로 보낼 수 있습니다. (b) 또는 둘 다 (F & B).

Asciirow (b)
byte1 ( 'd')

토토를 A로 식별합니다ASCII데이터 행. (사전 RowDescription 토토 필드 수를 정의합니다 행과 데이터 유형에.)

byten

행에 각 토토마다 하나의 비트가있는 비트 맵. 첫 번째 토토는 첫 번째의 비트 7 (MSB)에 해당합니다. 바이트, 두 번째 토토는 1st의 비트 6에 해당합니다. 바이트, 8 번째 토토는 비트 0 (LSB)에 해당합니다. 첫 번째 바이트, 9 번째 토토는 비트 7에 해당합니다. 두 번째 바이트 등. 값의 경우 각 비트가 설정됩니다 해당 토토는 NULL이 아닙니다. 수의 경우 토토는 8의 배수가 아니며 나머지는 비트 맵의 ​​마지막 바이트는 낭비됩니다.

그런 다음 널 값이 아닌 각 필드마다 다음은 다음과 같습니다.

int32

값의 크기를 지정합니다 이 크기를 포함한 토토

바이트n

토토 자체의 값을 지정ASCII캐릭터.n위의 것입니다 크기 마이너스 4. 현장 데이터; 프론트 엔드는 하나를 추가해야합니다 하나를 원한다.

Authenticationok (b)

byte1 ( 'r')

토토를 인증으로 식별합니다 요구.

int32 (0)

인증이 임명되었음을 지정합니다 성공적인.

AuthenticationKerberoSv4 (b)

byte1 ( 'r')

토토를 인증으로 식별합니다 요구.

int32 (1)

Kerberos v4 인증이임을 지정합니다 필수의.

AuthenticationKerberoSV5 (b)

byte1 ( 'r')

토토를 인증으로 식별합니다 요구.

int32 (2)

Kerberos v5 인증이임을 지정합니다 필수의.

AuthenticationUnencryptedPassword (b)

byte1 ( 'r')

토토를 인증으로 식별합니다 요구.

int32 (3)

암호화되지 않은 비밀번호를 지정합니다 필수의.

AuthenticationEnceCryptedPassword (b)

byte1 ( 'r')

토토를 인증으로 식별합니다 요구.

int32 (4)

암호화 된 비밀번호를 지정합니다 필수의.

byte2

암호를 암호화 할 때 사용할 소금.

BackendKeyData (b)

byte1 ( 'k')

토토를 취소 키 데이터로 식별합니다. 프론트 엔드는 원하는 경우이 값을 저장해야합니다. 나중에 CancelRequest 토토를 발행 할 수 있습니다.

int32

이 백엔드의 프로세스 ID.

int32

이 백엔드의 비밀 키.

Barinarrow (b)

byte1 ( 'b')

메시지를 이진 데이터 행으로 식별합니다. (에이 이전 RowDescription 메시지는 수를 정의합니다 행의 필드 및 데이터 유형.)

바이트n

행에 각 토토마다 하나의 비트가있는 비트 맵. 첫 번째 토토는 첫 번째의 비트 7 (MSB)에 해당합니다. 바이트, 두 번째 토토는 1st의 비트 6에 해당합니다. 바이트, 8 번째 토토는 비트 0 (LSB)에 해당합니다. 첫 번째 바이트, 9 번째 토토는 비트 7에 해당합니다. 두 번째 바이트 등. 값의 경우 각 비트가 설정됩니다 해당 토토는 NULL이 아닙니다. 수의 경우 토토는 8의 배수가 아니며 나머지는 비트 맵의 ​​마지막 바이트는 낭비됩니다.

그런 다음, 널 값이 아닌 각 필드마다 다음은 다음과 같습니다.

int32

값의 크기를 지정합니다 토토,이 크기 제외.

byten

토토 자체의 값을 지정합니다 이진 형식.n위의 크기입니다.

CancelRequest (F)

int32 (16)

바이트의 패킷의 크기.

int32 (80877102)

취소 요청 코드. 값은 선택됩니다 가장 중요한 16 비트에 "1234"를 포함하십시오 최소 16 개의 중요한 비트에서 "5678". (피하기 위해 혼란,이 코드는 어느 것과 동일하지 않아야합니다. 프로토콜 버전 번호.)

int32

대상 백엔드의 프로세스 ID.

int32

대상 백엔드의 비밀 키.

완성한 응답 (b)

byte1 ( 'c')

토토를 완료된 것으로 식별합니다 응답.

String

명령 태그. 이것은 보통 (하지만 항상 아닙니다) 어떤 SQL 명령을 식별하는 단일 단어 완전한.

CopyDatarows (B & F)

이것은 각 행이 종료되는 행의 스트림입니다. 바이트 1 ( '\ n'). 그런 다음 시퀀스가 ​​뒤 따릅니다 byte1 ( '\\'), byte1 ( '.'), byte1 ( '\ n').

CopyInResponse (b)

byte1 ( 'g')

토토를 시작 사본으로 식별합니다 응답. 프론트 엔드는 이제 CopyDatarows를 보내야합니다 토토.

CopyOUtresponse (b)

byte1 ( 'h')

메시지를 시작 복사로 식별합니다 응답. 이 메시지는 다음과 같습니다 CopyDatarows 메시지.

cursorResponse (b)

byte1 ( 'p')

토토를 커서 응답으로 식별합니다.

String

커서의 이름. 이것은 "공백"입니다 커서는 암시 적입니다.

EmptyQueryResponse (B)

byte1 ( 'i')

토토를 빈에 대한 응답으로 식별합니다 쿼리 문자열.

String ( "")

사용되지 않은.

EncryptedPasswordPacket (F)

int32

바이트의 패킷의 크기.

String

암호화 된 (crypt () 사용) 비밀번호.

ErrorResponse (b)

byte1 ( 'e')

토토를 오류로 식별합니다.

String

오류 토토 자체.

FunctionCall (F)

byte1 ( 'f')

토토를 함수 호출로 식별합니다.

String ( "")

미사용.

int32

함수의 객체 ID를 지정합니다 부르다.

int32

제공되는 인수 수를 지정합니다 기능에.

그런 다음 각 인수에 대해 수행원:

int32

값의 크기를 지정합니다 이 크기를 제외한 인수.

byten

토토 자체의 값을 지정합니다 이진 형식.n위의 크기입니다.

FunctionResulTresponse (b)

byte1 ( 'V')

토토를 함수 호출로 식별합니다 결과.

byte1 ( 'g')

비어 있지 않은 결과가 반환되었음을 지정합니다.

int32

결과 값의 크기를 지정합니다. 이 크기 제외.

바이트n

이진에서 결과 자체의 값을 지정합니다 체재.nis 위의 크기.

byte1 ( '0')

사용되지 않았습니다. (엄격하게 말하면, 함수 룰트 루피 그리고 functionVoidResponse는 동일하지만 토토의 일부 선택 부분.)

functionVoidResponse (b)

byte1 ( 'V')

토토를 함수 호출로 식별합니다 결과.

byte1 ( '0')

빈 결과가 반환되었음을 지정합니다.

uniceresponse (b)

byte1 ( 'n')

토토를 통지로 식별합니다.

String

통지 토토 자체.

NotificationResponse (b)

byte1 ( 'a')

토토를 알림으로 식별합니다 응답.

int32

알림 백엔드의 프로세스 ID 프로세스.

String

통지가 있었던 조건의 이름 제기.

query (f)

byte1 ( 'q')

토토를 쿼리로 식별합니다.

String

쿼리 문자열 자체.

ReadyForquery (b)

byte1 ( 'z')

토토 유형을 식별합니다. ReadyForquery가 전송됩니다 백엔드가 새 쿼리를 준비 할 때마다 주기.

RowDescription (b)

byte1 ( 't')

토토를 행 설명으로 식별합니다.

int16

연속 토토 수를 지정합니다 ( 영).

그런 다음 각 필드마다 다음이 있습니다.

String

토토 이름을 지정합니다.

int32

토토의 객체 ID를 지정합니다 유형.

int16

유형 크기를 지정합니다.

int32

유형 수정자를 지정합니다.

startuppacket (f)

int32 (296)

바이트의 패킷의 크기.

int32

프로토콜 버전 번호. 가장 중요한 16 비트는 주요 버전 번호입니다. 최소 16 중요한 비트는 사소한 버전 번호입니다.

limstring64

데이터베이스 이름은 사용자 이름으로 기본값을 표시합니다 비어 있는.

limstring32

사용자 이름.

limstring64

추가 명령 줄 인수가 전달됩니다 우체국 장의 백엔드에.

limstring64

미사용.

limstring64

백엔드가 사용해야하는 선택 사항 디버깅 토토.

종료 (f)

byte1 ( 'x')

토토를 종료로 식별합니다.

암호화되지 않은 PasswordPacket (F)

int32

바이트의 패킷의 크기.

String

암호화되지 않은 암호.