이 문서는 지원되지 않는 PostgreSQL 버전에 대한 것입니다.
당신은 다음과 같은 페이지를 보고 싶을 수도 있습니다.PostgreSQL : 문서 : 17 : 53.7. 토토 핫 형식버전 또는 위에 나열된 다른 지원 버전 중 하나를 사용하세요.

4.4. 토토 형식

이 섹션에서는 각 토토의 자세한 형식을 설명합니다. 각각은 프론트엔드(F), 포스트마스터/백엔드에 의해 전송될 수 있습니다. (B) 또는 둘 다(F & B).

AsciiRow (B)
바이트1('D')

메시지를 다음으로 식별합니다.ASCII데이터 행. (이전 RowDescription 메시지는 필드 수를 정의합니다. 행 및 해당 데이터 유형에 포함됩니다.)

바이트n

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

그런 다음 NULL이 아닌 값을 가진 각 필드에 대해 다음은 다음과 같습니다:

Int32

값의 크기를 지정합니다. 이 크기를 포함한 필드입니다.

바이트n

필드 자체의 값을 지정합니다.ASCII문자.n위와 같습니다 크기에서 4를 뺀 값입니다. 뒤에 '\0'이 없습니다. 현장 데이터; 프런트 엔드는 하나를 추가해야 합니다. 하나 원해요.

인증확인 (B)

바이트1('R')

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

Int32(0)

인증이 이루어졌음을 지정합니다. 성공했습니다.

인증KerberosV4 (B)

바이트1('R')

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

Int32(1)

Kerberos V4 인증이 다음임을 지정합니다. 필수입니다.

인증KerberosV5 (B)

바이트1('R')

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

Int32(2)

Kerberos V5 인증이 다음임을 지정합니다. 필수입니다.

인증암호화되지 않은 비밀번호 (B)

바이트1('R')

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

Int32(3)

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

인증암호화된 비밀번호 (B)

바이트1('R')

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

Int32(4)

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

바이트2

비밀번호를 암호화할 때 사용할 솔트입니다.

백엔드키데이터 (B)

바이트1('K')

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

Int32

이 백엔드의 프로세스 ID.

Int32

이 백엔드의 비밀 키입니다.

BinaryRow (B)

바이트1('B')

메시지를 바이너리 데이터 행으로 식별합니다. (A 이전 RowDescription 메시지는 행의 필드와 해당 데이터 유형.)

바이트n

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

그런 다음 NULL이 아닌 값을 가진 각 필드에 대해 다음은 다음과 같습니다:

Int32

값의 크기를 지정합니다. 필드, 이 크기는 제외됩니다.

바이트n

필드 자체의 값을 지정합니다. 바이너리 형식입니다.n위의 크기입니다.

취소요청 (F)

Int32(16)

패킷의 크기(바이트).

Int32(80877102)

취소 요청 코드입니다. 값은 다음과 같이 선택됩니다. 최상위 16비트에 "1234"가 포함되고, 최소 16개의 유효 비트에서 "5678"입니다. (피하려면 혼란스럽습니다. 이 코드는 다른 코드와 동일해서는 안 됩니다. 프로토콜 버전 번호.)

Int32

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

Int32

대상 백엔드의 비밀 키입니다.

완료응답 (B)

바이트1('C')

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

문자열

명령 태그입니다. 이는 일반적으로(항상 그런 것은 아님) 어떤 SQL 명령이 사용되었는지 식별하는 단일 단어 완료되었습니다.

CopyDataRows (B & F)

이것은 각 행이 다음으로 끝나는 행 스트림입니다. 바이트1('\n'). 그 다음은 이런 순서로 이어집니다 바이트1('\\'), 바이트1('.'), 바이트1('\n').

CopyInResponse (B)

바이트1('G')

토토를 복사 시작으로 식별합니다. 응답. 이제 프런트엔드에서 CopyDataRows를 보내야 합니다. 토토.

CopyOutResponse (B)

바이트1('H')

토토를 복사 시작으로 식별합니다. 응답. 이 토토 뒤에는 CopyDataRows 토토입니다.

커서응답 (B)

바이트1('P')

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

문자열

커서의 이름. 다음과 같은 경우 "공백"이 됩니다. 커서는 암시적입니다.

EmptyQueryResponse (B)

바이트1('나')

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

문자열("")

미사용.

암호화된 비밀번호 패킷(F)

Int32

패킷의 크기(바이트).

문자열

암호화된(crypt()를 사용하여) 비밀번호입니다.

오류 응답 (B)

바이트1('E')

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

문자열

오류 토토 그 자체입니다.

펑션콜(F)

바이트1('F')

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

문자열("")

미사용.

Int32

함수의 개체 ID를 지정합니다. 전화해.

Int32

제공되는 인수의 수를 지정합니다 함수에.

그런 다음 각 인수에 대해 다음이 있습니다. 다음:

Int32

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

바이트n

필드 자체의 값을 지정합니다. 바이너리 형식입니다.n위의 크기입니다.

함수결과응답 (B)

바이트1('V')

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

바이트1('G')

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

Int32

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

바이트n

결과 자체의 값을 바이너리로 지정합니다. 형식.n이것은 위의 크기.

바이트1('0')

미사용. (엄밀히 말하면 FunctionResultResponse FunctionVoidResponse는 동일하지만 메시지의 일부 선택적 부분입니다.)

함수Void응답 (B)

바이트1('V')

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

바이트1('0')

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

통지응답 (B)

바이트1('N')

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

문자열

알림 토토 그 자체입니다.

알림 응답 (B)

바이트1('A')

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

Int32

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

문자열

알림이 이루어진 조건의 이름 에 제기되었습니다.

쿼리(F)

바이트1('Q')

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

문자열

쿼리 문자열 자체.

ReadyForQuery (B)

바이트1('Z')

토토 유형을 식별합니다. ReadyForQuery가 전송되었습니다. 백엔드가 새 쿼리를 수행할 준비가 될 때마다 주기.

행 설명 (B)

바이트1('T')

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

Int16

행의 필드 수를 지정합니다(일 수도 있음). 제로).

그리고 각 필드에는 다음이 있습니다:

문자열

필드 이름을 지정합니다.

Int32

필드의 개체 ID를 지정합니다 유형.

Int16

글자 크기를 지정합니다.

Int32

Specifies the type modifier.

StartupPacket (F)

Int32(296)

패킷의 크기(바이트).

Int32

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

LimString64

데이터베이스 이름은 다음과 같은 경우 사용자 이름으로 기본 설정됩니다. 비어있습니다.

LimString32

사용자 이름입니다.

LimString64

전달할 추가 명령줄 인수 포스트마스터가 백엔드에 전달합니다.

LimString64

미사용.

LimString64

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

해지(F)

바이트1('X')

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

암호화되지 않은 비밀번호 패킷(F)

Int32

패킷의 크기(바이트).

문자열

암호화되지 않은 비밀번호입니다.