Phiên bản không được hỗ trợ:6.4
Tài liệu này dành cho phiên bản không được hỗ trợ của PostgreSQL.
Bạn có thể muốn xem cùng tỷ lệ kèo bóng đá trang chohiện tạiPhiên bản hoặc tỷ lệ kèo bóng đá trong các phiên bản được hỗ trợ khác được liệt kê ở trên thay thế.

tỷ lệ kèo bóng đá

Phần này mô tả luồng tỷ lệ kèo bóng đá. Có bốn Các loại luồng khác nhau tùy thuộc vào trạng thái của kết nối: Khởi động, truy vấn, gọi chức năng và chấm dứt. Ngoài ra còn có Các quy định đặc biệt cho các phản hồi và lệnh tỷ lệ kèo bóng đá hủy bỏ, có thể xảy ra bất cứ lúc nào sau khi khởi động giai đoạn.

Khởi động

Khởi động được chia thành giai đoạn xác thực và phụ trợ Giai đoạn khởi động.

Ban đầu, Frontend gửi tỷ lệ kèo bóng đá startuppacket. Các nhân viên bưu điện Sử dụng thông tin này và nội dung của tệp pg_hba.conf (5) Xác định phương pháp xác thực mà Frontend phải sử dụng. Các Postmaster sau đó trả lời với tỷ lệ kèo bóng đá trong các tin nhắn sau:

errorResponse

Bưu điện sau đó đóng ngay kết nối.

xác thực

Bưu điện sau đó bàn tỷ lệ kèo bóng đá cho phụ trợ. Các Postmaster không tham gia thêm vào tỷ lệ kèo bóng đá tiếp.

xác thựckerberosv4

Frontend sau đó phải tham gia Kerberos V4 Hộp thoại Xác thực (không được mô tả ở đây) với Postmaster. Nếu điều này thành công, người bưu điện sẽ trả lời với Xác thực, nếu không nó trả lời với ErrorResponse.

xác thựckerberosv5

Frontend sau đó phải tham gia Kerberos V5 Hộp thoại Xác thực (không được mô tả ở đây) với Postmaster. Nếu điều này thành công, người bưu điện sẽ trả lời với Xác thực, nếu không nó trả lời với ErrorResponse.

xác thựcNencryptedPassword

Frontend sau đó phải gửi tỷ lệ kèo bóng đá uncryptedpasswordPacket. Nếu như Đây là mật khẩu chính xác, người gửi bưu điện trả lời Xác thực, nếu không nó trả lời với ErrorResponse.

alaictionCryptedPassword

Frontend sau đó phải gửi tỷ lệ kèo bóng đá mã hóa được mã hóa. Nếu như Đây là mật khẩu chính xác, người gửi bưu điện trả lời Xác thực, nếu không nó trả lời với ErrorResponse.

Nếu frontend không hỗ trợ phương thức xác thực được yêu cầu bởi người nhận bưu điện, sau đó nó sẽ đóng ngay lập tức sự liên quan.

Sau khi gửi xác thực khởi chạy tỷ lệ kèo bóng đá quá trình phụ trợ. Vì điều này có thể thất bại, hoặc phụ trợ có thể gặp phải tỷ lệ kèo bóng đá thất bại trong khi khởi động, frontend phải đợi Đối với phần phụ trợ để thừa nhận khởi nghiệp thành công. Mặt trận Nên không gửi tin nhắn tại thời điểm này. Các tin nhắn có thể từ Phần phụ trợ trong giai đoạn này là:

BackendKeyData

Thông báo này được phát hành sau khi khởi động phụ trợ thành công. Nó cung cấp dữ liệu khóa bí mật mà frontend phải lưu nếu nó muốn có thể phát hành các yêu cầu hủy sau này. Mặt trận không nên trả lời tin nhắn này, nhưng nên tiếp tục lắng nghe tỷ lệ kèo bóng đá tin nhắn ReadyForQuery.

ReadyForQuery

Khởi động phụ trợ thành công. Frontend bây giờ có thể phát hành Truy vấn hoặc tỷ lệ kèo bóng đá cuộc gọi chức năng.

errorResponse

Khởi động phụ trợ không thành công. Kết nối được đóng sau gửi tin nhắn này.

noticeResponse

tỷ lệ kèo bóng đá thông điệp cảnh báo đã được ban hành. Mặt trận nên Hiển thị tin nhắn nhưng tiếp tục lắng nghe ReadyForQuery hoặc ErrorResponse.

Thông báo ReadyForQuery là cùng tỷ lệ kèo bóng đá tin nhắn mà phần phụ trợ sẽ Vấn đề sau mỗi chu kỳ truy vấn. Tùy thuộc vào nhu cầu mã hóa của Frontend, thật hợp lý khi coi ReadyForQuery là bắt đầu Chu kỳ truy vấn (và sau đó backendKeyData cho biết thành công Kết luận về giai đoạn khởi động) hoặc để xem xét ReadyForQuery là Kết thúc giai đoạn khởi động và mỗi chu kỳ truy vấn tiếp theo.

tỷ lệ kèo bóng đá

Chu kỳ truy vấn được bắt đầu bởi frontend gửi tỷ lệ kèo bóng đá truy vấn thông báo cho phần phụ trợ. Phần phụ trợ sau đó gửi tỷ lệ kèo bóng đá hoặc nhiều phản hồi tin nhắn tùy thuộc vào nội dung của chuỗi lệnh truy vấn và Cuối cùng là tỷ lệ kèo bóng đá thông báo phản hồi ReadyForQuery. ReadyForQuery thông báo cho phía trước mà nó có thể gửi tỷ lệ kèo bóng đá cách an toàn tỷ lệ kèo bóng đá cuộc gọi truy vấn hoặc chức năng mới.

tỷ lệ kèo bóng đá phản hồi có thể từ phần phụ trợ là:

Đã hoàn thànhResponse

tỷ lệ kèo bóng đánh SQL hoàn thành bình thường.

CopyInresponse

Phần phụ trợ đã sẵn sàng sao chép dữ liệu từ phía trước sang A mối quan hệ. Frontend sau đó sẽ gửi tin nhắn CopyDatarows. Phần phụ trợ sau đó sẽ trả lời bằng tỷ lệ kèo bóng đá thông báo hoàn thành với tỷ lệ kèo bóng đá thẻ "sao chép".

CopyouTresponse

Phần phụ trợ đã sẵn sàng sao chép dữ liệu từ mối quan hệ đến phía trước. Sau đó nó gửi tỷ lệ kèo bóng đá tin nhắn copyDatarows, và sau đó là tỷ lệ kèo bóng đá Đã hoàn thành thông báo phản hồi với thẻ "Sao chép".

CursorResponse

Truy vấn là tỷ lệ kèo bóng đá phần chèn (l), xóa (l), update (l), Tìm nạp (l) hoặc lệnh CHỌN (L). Nếu giao dịch đã được bị hủy bỏ sau đó phụ trợ gửi tỷ lệ kèo bóng đá tin nhắn hoàn thành tỷ lệ kèo bóng đá thẻ của "*Bệnh tật Bang*". Nếu không các câu trả lời sau đây là đã gửi.

Đối với lệnh chèn (l), phần phụ trợ sau đó gửi tỷ lệ kèo bóng đá Đã hoàn thành thông báo phản hồi với thẻ "Chènoid hàng" Ở đâuhànglà số lượng của Hàng được chèn vàoidlà ID đối tượng của hàng được chèn nếuhànglà 1, nếu khôngoidlà 0.

Đối với lệnh xóa (l), phần phụ trợ sau đó gửi tỷ lệ kèo bóng đá Đã hoàn thành thông báo phản hồi với thẻ "Xóahàng"Trong đóhànglà số lượng hàng bị xóa.

Để cập nhật (l), phần phụ trợ sau đó gửi tỷ lệ kèo bóng đá Đã hoàn thành tin nhắn phản hồi với thẻ "Cập nhậthàng"Trong đóhànglà số lượng hàng bị xóa.

Đối với lệnh tìm nạp (l) hoặc chọn (l), phụ trợ gửi tỷ lệ kèo bóng đá Thông báo Rowdescrip. Điều này sau đó được theo sau bởi tỷ lệ kèo bóng đá asciirow hoặc Thông điệp Binaryrow (tùy thuộc vào việc con trỏ nhị phân có phải là được chỉ định) cho mỗi hàng được trả lại cho mặt trận. Cuối cùng, phụ trợ gửi tỷ lệ kèo bóng đá tin nhắn hoàn thành Tag của "Chọn".

trốngQueryResponse

tỷ lệ kèo bóng đá chuỗi truy vấn trống đã được công nhận. (Nhu cầu đặc biệt Phân biệt trường hợp này là lịch sử.)

ErrorResponse

Đã xảy ra lỗi.

ReadyForQuery

Xử lý chuỗi truy vấn đã hoàn tất. tỷ lệ kèo bóng đá riêng biệt tin nhắn được gửi để cho biết điều này vì chuỗi truy vấn có thể chứa nhiều lệnh SQL. (Đã hoàn thành phản hồi đánh dấu sự kết thúc của việc xử lý tỷ lệ kèo bóng đá lệnh SQL, không phải toàn bộ chuỗi.) ReadyForQuery sẽ luôn được gửi đi, cho dù xử lý chấm dứt thành công hoặc với lỗi.

noticeResponse

tỷ lệ kèo bóng đá thông điệp cảnh báo đã được đưa ra liên quan đến truy vấn. Thông báo ngoài các câu trả lời khác, tức là. phụ trợ sẽ tiếp tục xử lý lệnh.

tỷ lệ kèo bóng đá frontend phải được chuẩn bị để chấp nhận ErrorResponse và Tin nhắn noticeResponse bất cứ khi nào nó đang mong đợi bất kỳ loại tin nhắn.

Trên thực tế, có thể cho NoticeResponse đến ngay cả khi Frontend không mong đợi bất kỳ loại tin nhắn nào, nghĩa là phụ trợ là nhàn rỗi trên danh nghĩa. (Đặc biệt, phụ trợ có thể chỉ huy chấm dứt bởi bưu điện của nó. Trong trường hợp đó, nó sẽ gửi tỷ lệ kèo bóng đá NoticeResponse trước khi đóng kết nối.) rằng phía trước kiểm tra các thông báo không đồng bộ như vậy ngay trước đó phát hành bất kỳ lệnh mới nào.

Ngoài ra, nếu frontend phát hành bất kỳ lệnh nghe (l) thì nó phải được chuẩn bị để chấp nhận tỷ lệ kèo bóng đá tin nhắn bất cứ lúc nào; Xem bên dưới.

Hàm Gọi

Chu kỳ cuộc gọi chức năng được bắt đầu bởi frontend gửi tỷ lệ kèo bóng đá Thông báo chức năng vào phần phụ trợ. Phần phụ trợ sau đó gửi tỷ lệ kèo bóng đá hoặc Thêm thông báo phản hồi tùy thuộc vào kết quả của chức năng Gọi, và cuối cùng là tỷ lệ kèo bóng đá thông báo phản hồi ReadyForQuery. ReadyForQuery thông báo cho frontend rằng nó có thể gửi tỷ lệ kèo bóng đá truy vấn mới tỷ lệ kèo bóng đá cách an toàn hoặc gọi chức năng.

tỷ lệ kèo bóng đá phản hồi có thể từ phần phụ trợ là:

ErrorResponse

Đã xảy ra lỗi.

functionResulTresponse

Cuộc gọi chức năng được thực thi và trả về kết quả.

functionVoidResponse

Cuộc gọi chức năng được thực thi và trả về không có kết quả.

ReadyForQuery

Xử lý cuộc gọi chức năng đã hoàn tất. ReadyForQuery sẽ luôn được gửi, liệu việc xử lý chấm dứt thành công hoặc với tỷ lệ kèo bóng đá lỗi.

noticeResponse

tỷ lệ kèo bóng đá thông báo cảnh báo đã được đưa ra liên quan đến Gọi chức năng. Thông báo ngoài các câu trả lời khác, tức là. phần phụ trợ sẽ tiếp tục xử lý lệnh.

Frontend phải được chuẩn bị để chấp nhận ErrorResponse và Tin nhắn noticeResponse bất cứ khi nào nó đang mong đợi bất kỳ loại tin nhắn. Ngoài ra, nếu nó đưa ra bất kỳ lệnh nghe (l) thì nó phải chuẩn bị để chấp nhận tỷ lệ kèo bóng đá tin nhắn bất cứ lúc nào; nhìn thấy dưới.

tỷ lệ kèo bóng đá Phản hồi

Nếu tỷ lệ kèo bóng đá frontend đưa ra lệnh nghe (l), thì phụ trợ sẽ Gửi tin nhắn thông báo phản hồi (không bị nhầm lẫn với NoticeResponse!) Bất cứ khi nào lệnh thông báo (l) được thực thi cho Tên thông báo giống nhau.

Phản hồi thông báo được phép tại bất kỳ điểm nào trong Giao thức (sau khi khởi động), ngoại trừ trong tỷ lệ kèo bóng đá tin nhắn phụ trợ khác. Do đó, mặt tiền phải được chuẩn bị để nhận ra tỷ lệ kèo bóng đá Thông báo Thông báo Tin nhắn bất cứ khi nào nó đang mong đợi bất kỳ tin nhắn nào. Thật vậy, nó sẽ có thể xử lý các thông báo tin nhắn ngay cả khi nó không tham gia vào tỷ lệ kèo bóng đá truy vấn.

tỷ lệ kèo bóng đá báoResponse

tỷ lệ kèo bóng đá lệnh thông báo (l) đã được thực thi cho tỷ lệ kèo bóng đá tên Lệnh nghe (l) trước đó đã được thực thi. Thông báo có thể được được gửi bất cứ lúc nào.

Có thể đáng chỉ ra rằng các tên được sử dụng trong Lắng nghe và thông báo các lệnh không cần phải làm gì với tên của quan hệ (bảng) trong cơ sở dữ liệu SQL. Tên thông báo là Đơn giản chỉ cần chọn tên điều kiện được chọn tỷ lệ kèo bóng đá cách tùy ý.

Hủy bỏ Yêu cầu đang được tiến hành

Trong quá trình xử lý truy vấn, Frontend có thể yêu cầu hủy truy vấn bằng cách gửi tỷ lệ kèo bóng đá yêu cầu thích hợp cho Bưu điện. Yêu cầu hủy không được gửi trực tiếp đến phần phụ trợ vì lý do hiệu quả thực hiện: chúng tôi không muốn có phụ trợ liên tục kiểm tra đầu vào mới từ mặt trận trong thời gian xử lý truy vấn. Hủy yêu cầu phải tương đối không thường xuyên, Vì vậy, chúng tôi làm cho chúng hơi cồng kềnh để tránh hình phạt trong trường hợp bình thường.

Để đưa ra yêu cầu hủy bỏ, Frontend mở kết nối mới cho người nhận bưu điện và gửi tin nhắn hủyRequest, thay vì thông báo startuppacket thường sẽ được gửi qua tỷ lệ kèo bóng đá Kết nối mới. Người bưu điện sẽ xử lý yêu cầu này và sau đó Đóng kết nối. Vì lý do bảo mật, không có câu trả lời trực tiếp nào được thực hiện đến thông báo yêu cầu hủy.

Thông báo hủyRequest sẽ bị bỏ qua trừ khi nó chứa Cùng tỷ lệ kèo bóng đá dữ liệu khóa (Key PID và Bí mật) được chuyển đến Frontend trong Kết nối khởi động. Nếu yêu cầu khớp với khóa PID và bí mật Đối với tỷ lệ kèo bóng đá phụ trợ hiện đang được thực hiện, người nhận bưu điện báo hiệu phụ trợ để hủy bỏ xử lý truy vấn hiện tại.

Tín hiệu hủy có thể có hoặc không có bất kỳ ảnh hưởng nào --- cho Ví dụ, nếu nó đến sau khi phần phụ trợ đã hoàn thành quá trình Các truy vấn, sau đó nó sẽ không có hiệu lực. Nếu hủy bỏ là hiệu quả, nó dẫn đến lệnh hiện tại bị chấm dứt sớm với tỷ lệ kèo bóng đá thông báo lỗi.

Upshot của tất cả điều này là vì lý do của cả bảo mật và Hiệu quả, Frontend không có cách trực tiếp nào để biết liệu Hủy có yêu cầu đã thành công. Nó phải tiếp tục chờ đợi phần phụ trợ Trả lời truy vấn. Việc hủy bỏ chỉ đơn giản là cải thiện tỷ lệ cược rằng truy vấn hiện tại sẽ sớm kết thúc và cải thiện tỷ lệ cược nó sẽ thất bại với tỷ lệ kèo bóng đá thông báo lỗi thay vì thành công.

Vì yêu cầu Hủy được gửi đến Postmaster chứ không trên liên kết giao tiếp phía trước/phụ trợ thông thường, nó là có thể cho yêu cầu hủy được ban hành bởi bất kỳ quy trình nào, không Chỉ là frontend có truy vấn sẽ bị hủy bỏ. Điều này có thể có tỷ lệ kèo bóng đá số Lợi ích của sự linh hoạt trong việc xây dựng các ứng dụng nhiều quá trình. Nó cũng đưa ra tỷ lệ kèo bóng đá rủi ro bảo mật, trong đó những người trái phép có thể cố gắng hủy các truy vấn. Rủi ro bảo mật được giải quyết bởi yêu cầu tỷ lệ kèo bóng đá khóa bí mật được tạo động để được cung cấp trong Hủy yêu cầu.

Chấm dứt

Quy trình chấm dứt bình thường, duyên dáng là Frontend Gửi tin nhắn chấm dứt và đóng ngay lập tức kết nối. TRÊN nhận được tin nhắn, phần phụ trợ ngay lập tức đóng kết nối và chấm dứt.

tỷ lệ kèo bóng đá sự chấm dứt vô duyên có thể xảy ra do lỗi phần mềm (tức là, kết xuất cốt lõi) ở hai đầu. Nếu frontend hoặc phụ trợ nhìn thấy tỷ lệ kèo bóng đá sự đóng cửa bất ngờ của kết nối, nó sẽ dọn dẹp và chấm dứt. Frontend có tùy chọn khởi chạy tỷ lệ kèo bóng đá phụ trợ mới bằng cách tái cấu trúc bưu điện, nếu nó không muốn chấm dứt chính nó.