지원되지 않는 버전 :6.3
이 문서는 지원되지 않는 버전의 PostgreSQL 용입니다.
당신은에 대해 같은 페이지를 볼 수 있습니다현재버전 또는 위에 나열된 다른 지원 버전 중 하나입니다.
PostgreSQL
이전 50 장. 프론트 엔드/백엔드 프로토콜 다음

프로토콜

이 섹션에서는 메시지 흐름을 설명합니다. 4 개가 있습니다 연결 상태에 따라 다른 유형의 흐름 : 인증, 쿼리, 기능 호출 및 종료.

인증

프론트 엔드는 startuppacket을 보냅니다. 우체국 장은 이것을 사용합니다 pg_hba.conf (5) 파일의 내용을 결정하기위한 내용 인증 방법 프론트 엔드를 사용해야합니다. 그때 우체국 장 다음 메시지 중 하나로 응답합니다.

ErrorResponse

우체국 장은 즉시 연결을 닫습니다.

Authenticationok

Postmaster는 백엔드로 넘어갑니다. 그만큼 우체국 장은 커뮤니케이션에 더 이상 참여하지 않습니다.

AuthenticationKerberOSV4

프론트 엔드는 Kerberos v4에 참여해야합니다. 포스트 마스터와 인증 대화 상자 (여기에 설명되지 않음). 이것이 성공하면 우체국 장은 An과 응답합니다 Authenticationok, 그렇지 않으면 응답합니다 ErrorResponse.

AuthenticationKerberOSV5

프론트 엔드는 Kerberos v5에 참여해야합니다. 포스트 마스터와 인증 대화 상자 (여기에 설명되지 않음). 이것이 성공하면 우체국 장은 An과 응답합니다 Authenticationok, 그렇지 않으면 응답합니다 ErrorResponse.

AuthenticationUnencryptedPassword

프론트 엔드는 암호화되지 않은 passwordpacket을 보내야합니다. 만약에 이것은 올바른 비밀번호이며 우체국 장은 Authenticationok, 그렇지 않으면 응답합니다 ErrorResponse.

AuthenticationEnceCryptedPassword

프론트 엔드는 암호화 된 PasswordPacket을 보내야합니다. 만약에 이것은 올바른 비밀번호이며 우체국 장은 Authenticationok, 그렇지 않으면 응답합니다 ErrorResponse.

프론트 엔드가 인증 방법을 지원하지 않는 경우 우체국 장이 요청한 다음 즉시 닫아야합니다. 연결.

쿼리

프론트 엔드는 백엔드에 쿼리 메시지를 보냅니다. 응답 백엔드에 의해 전송되는 것은 쿼리의 내용에 따라 다릅니다. 그만큼 가능한 응답은 다음과 같습니다.

완성한 응답

쿼리가 정상적으로 완료되었습니다.

CopyInResponse

백엔드는 프론트 엔드에서 데이터를 관계. 그런 다음 프론트 엔드는 CopyDatarows 메시지를 보내야합니다. 그런 다음 백엔드는 완료된 응답 메시지로 응답합니다 "복사"의 태그와 함께.

CopyOUtResponse

백엔드는 관계에서 데이터를 복사 할 준비가되었습니다. 프론트 엔드. 그런 다음 CopyDatarows 메시지를 보낸 다음 a "Copy"의 태그가있는 완료된 응답 메시지.

cursorResponse

쿼리는 삽입 (l), delete (l), update (l)입니다. 페치 (l) 또는 select (l) 명령. 거래가 있었다면 중단 된 후 백엔드는 완성 된 응답 메시지를 보냅니다 "*Abort State*"의 태그. 그렇지 않으면 다음 응답이 있습니다 전송된.

삽입 (l) 명령의 경우 백토토 핫 a를 보냅니다 "insert의 태그가 포함 된 완료된 응답 메시지OID " 어디는 수입니다 줄이 삽입되고OIDis 삽입 된 행의 객체 IDis 1, 그렇지 않으면OIDis 0입니다.

삭제 (l) 명령의 경우 백토토 핫 a를 보냅니다 "delete의 태그가 포함 된 완료된 응답 메시지"여기삭제 된 행 수입니다.

업데이트 (l) 명령의 경우 백토토 핫 a를 보냅니다 "update의 태그가 포함 된 완료된 응답 메시지"여기줄 수가 삭제되었습니다.

페치 (l) 또는 선택 (l) 명령의 경우 백엔드는 rowdescription 메시지. 그런 다음 Asciirow 또는 이어집니다 이진 커서인지 여부에 따라 바이러스로 메시지 지정) 각 행에 대해 프론트 엔드로 반환됩니다. 마지막으로, 백엔드는 a로 완성 된 응답 메시지를 보냅니다 "select"의 태그.

emptyQueryResponse

쿼리가 비어있었습니다.

ErrorResponse

오류가 발생했습니다.

NOTICERSPONSE

쿼리와 관련하여 경고 메시지가 발행되었습니다. 통지는 다른 응답에 추가됩니다. 백엔드 즉시 다른 응답 메시지를 보낼 것입니다.

NotificationResponse

A Notify (l) 명령이 실행되었습니다. 이전 청취 명령이 실행되었습니다. 알림 다른 응답에 추가됩니다. 백엔드가 보내집니다 즉시 또 다른 응답 메시지.

ErrorResponse를 수락 할 준비가되어 있어야합니다 다른 유형의 다른 유형을 예상 할 때마다 aliceresponse 메시지 메시지.

함수 부르다

프론트 엔드는 백엔드에 기능을 보내는 메시지를 보냅니다. 그만큼 백엔드에 의해 전송 된 응답은 기능 결과에 따라 다릅니다. 부르다. 가능한 응답은 다음과 같습니다.

ErrorResponse

오류가 발생했습니다.

FunctionResulTresponse

함수 호출이 실행되어 결과를 반환했습니다.

functionVoidResponse

함수 호출이 실행되어 결과가 없습니다.

NoticerEsponse

경고 메시지가 기능 호출. 통지는 다른 응답에 추가됩니다. 백토토 핫 즉시 다른 응답 메시지를 보냅니다 나중에.

ErrorResponse를 수락 할 준비가되어 있어야합니다 다른 유형의 다른 유형을 예상 할 때마다 aliceresponse 메시지 메시지.

종료

프론트 엔드는 종료 메시지를 보내고 즉시 닫습니다 연결. 메시지를 받으면 즉시 백엔드가 있습니다 연결을 닫고 종료합니다.


이전 다음
Frontend/백엔드 규약 up 메시지 데이터 유형