Phiên bản được hỗ trợ:hiện tại(17) /16 / 15 / 14 / 13
Phiên bản phát triển:18 / Devel
Phiên bản không được hỗ trợ:12 / 11 / 10 / 9.6 / 9.5 / 9.4 / 9.3 / 9.2 / 9.1 / 9.0 / 8.4 / 8.3 / 8.2
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 một trang cho​​hiện tạiPhiên bản hoặc một trong kèo chấp bóng đá hôm nay phiên bản được hỗ trợ khác được liệt kê ở trên thay thế.

49.1. Tổng kèo chấp bóng đá hôm nay

Giao thức có kèo chấp bóng đá hôm nay giai đoạn riêng cho khởi động và hoạt động bình thường. Trong giai đoạn khởi động, Frontend mở kết nối với máy chủ và tự xác thực với sự hài lòng của máy chủ. . Ngoại trừ thông báo yêu cầu khởi động ban đầu, phần này của giao thức được điều khiển bởi máy chủ.

Trong quá trình hoạt động bình thường, Frontend gửi kèo chấp bóng đá hôm nay truy vấn và kèo chấp bóng đá hôm nay lệnh khác đến phần phụ trợ và phần phụ trợ gửi kết quả truy vấn trở lại và kèo chấp bóng đá hôm nay câu trả lời khác. Có một vài trường hợp (chẳng hạn nhưThông báo) Trong đó phần phụ trợ sẽ gửi kèo chấp bóng đá hôm nay tin nhắn không được yêu cầu, nhưng phần lớn phần này của phiên này được điều khiển bởi kèo chấp bóng đá hôm nay yêu cầu Frontend.

Việc chấm dứt phiên thường là do Frontend Choice, nhưng có thể bị ép buộc bởi phụ trợ trong một số trường hợp nhất định. Trong mọi trường hợp, khi phụ trợ đóng kết nối, nó sẽ quay lại bất kỳ giao dịch mở (không đầy đủ) trước khi thoát.

Trong hoạt động bình thường, kèo chấp bóng đá hôm nay lệnh SQL có thể được thực thi thông qua một trong hai giao thức phụ. Trong"Truy vấn đơn giản"10726_10851"Truy vấn mở rộng"Giao thức, xử lý kèo chấp bóng đá hôm nay truy vấn được tách thành nhiều bước: phân tích cú pháp, liên kết kèo chấp bóng đá hôm nay giá trị tham số và thực thi. Điều này mang lại lợi ích linh hoạt và hiệu suất, với chi phí phức tạp hơn.

11102_11181Copy.

49.1.1. Tổng kèo chấp bóng đá hôm nay nhắn tin

Tất cả kèo chấp bóng đá hôm nay giao tiếp đều thông qua một luồng tin nhắn. Byte đầu tiên của một tin nhắn xác định loại tin nhắn và bốn byte tiếp theo chỉ định độ dài của phần còn lại của tin nhắn (số lượng độ dài này bao gồm chính nó, nhưng không phải là byte loại tin nhắn). kèo chấp bóng đá hôm nay nội dung còn lại của tin nhắn được xác định bởi loại tin nhắn. Vì lý do lịch sử, tin nhắn đầu tiên được gửi bởi máy khách (tin nhắn khởi động) không có byte loại tin nhắn ban đầu.

Để tránh mất đồng bộ hóa với luồng thông báo, cả máy chủ và máy khách thường đọc toàn bộ tin nhắn vào bộ đệm (sử dụng số byte) trước khi thử xử lý nội dung của nó. Điều này cho phép phục hồi dễ dàng nếu phát hiện lỗi trong khi xử lý nội dung. Trong kèo chấp bóng đá hôm nay tình huống cực đoan (chẳng hạn như không có đủ bộ nhớ để đệm thông báo), máy thu có thể sử dụng số byte để xác định số đầu vào để bỏ qua trước khi nó tiếp tục đọc tin nhắn.

Ngược lại, cả máy chủ và máy khách phải cẩn thận không bao giờ gửi kèo chấp bóng đá hôm nay nhắn không đầy đủ. Điều này thường được thực hiện bằng cách sắp xếp toàn bộ kèo chấp bóng đá hôm nay nhắn trong bộ đệm trước khi bắt đầu gửi nó. Nếu một lỗi liên lạc xảy ra giữa việc gửi hoặc nhận kèo chấp bóng đá hôm nay nhắn, phản hồi hợp lý duy nhất là từ bỏ kết nối, vì có rất ít hy vọng phục hồi đồng bộ hóa giới hạn kèo chấp bóng đá hôm nay nhắn.

49.1.2. Tổng kèo chấp bóng đá hôm nay truy vấn mở rộng

Trong giao thức Trận đấu mở rộng, việc thực thi kèo chấp bóng đá hôm nay lệnh SQL được chia thành nhiều bước. Trạng thái được giữ lại giữa kèo chấp bóng đá hôm nay bước được biểu thị bằng hai loại đối tượng:kèo chấp bóng đá hôm nay câu lệnh được chuẩn bịCổng thông kèo chấp bóng đá hôm nay. Một câu lệnh đã chuẩn bị đại diện cho kết quả phân tích phân tích và ngữ nghĩa của chuỗi truy vấn văn bản. Một câu lệnh đã chuẩn bị không sẵn sàng để thực thi, bởi vì nó có thể thiếu kèo chấp bóng đá hôm nay giá trị cụ thể chotham số13316_13450ChọnCâu lệnh, một cổng thông kèo chấp bóng đá hôm nay tương đương với con trỏ mở, nhưng chúng tôi chọn sử dụng một thuật ngữ khác vì con trỏ không xử lý khôngChọncâu lệnh.)

Chu kỳ thực thi tổng thể bao gồm mộtParseBước, tạo ra một câu lệnh đã chuẩn bị từ chuỗi truy vấn văn bản; MộtBINDBước, tạo ra một cổng thông kèo chấp bóng đá hôm nay được đưa ra một câu lệnh và giá trị đã chuẩn bị cho bất kỳ tham số cần thiết nào; và mộtthực thiBước chạy truy vấn cổng thông kèo chấp bóng đá hôm nay. Trong trường hợp truy vấn trả về hàng (Chọn, show, v.v.), bước thực thi có thể được yêu cầu chỉ tìm nạp một số lượng hạn chế, để có thể cần nhiều bước thực thi để hoàn thành thao tác.

Phần phụ trợ có thể theo dõi nhiều câu lệnh và cổng được chuẩn bị (nhưng lưu ý rằng chúng chỉ tồn tại trong một phiên và không bao giờ được chia sẻ trong kèo chấp bóng đá hôm nay phiên). kèo chấp bóng đá hôm nay câu lệnh và cổng thông tin được chuẩn bị hiện tại được tham chiếu bằng kèo chấp bóng đá hôm nay tên được gán khi chúng được tạo. Ngoài ra, một"Không tên"Tuyên bố và cổng thông tin đã được chuẩn bị tồn tại. Mặc dù chúng hoạt động phần lớn giống như kèo chấp bóng đá hôm nay đối tượng được đặt tên, kèo chấp bóng đá hôm nay hoạt động trên chúng được tối ưu hóa cho trường hợp thực hiện truy vấn chỉ một lần và sau đó loại bỏ nó, trong khi kèo chấp bóng đá hôm nay hoạt động trên kèo chấp bóng đá hôm nay đối tượng được đặt tên được tối ưu hóa dựa trên kỳ vọng của nhiều cách sử dụng.

49.1.3. Định dạng và mã định dạng

Dữ liệu của một loại dữ liệu cụ thể có thể được truyền trong bất kỳ một số khác nhauĐịnh dạng. Kể từPostgreSQL7.4 kèo chấp bóng đá hôm nay định dạng được hỗ trợ duy nhất là"Text""nhị phân", nhưng giao thức cung cấp cho kèo chấp bóng đá hôm nay phần mở rộng trong tương lai. Định dạng mong muốn cho bất kỳ giá trị nào được chỉ định bởi AMã định dạng. Máy khách có thể chỉ định mã định dạng cho mỗi giá trị tham số được truyền và cho mỗi cột của kết quả truy vấn. Văn bản có mã định dạng Zero, nhị phân có mã định dạng một và tất cả kèo chấp bóng đá hôm nay mã định dạng khác được dành riêng cho định nghĩa trong tương lai.

Biểu diễn văn bản của kèo chấp bóng đá hôm nay giá trị là bất kỳ chuỗi nào được tạo và chấp nhận bởi kèo chấp bóng đá hôm nay hàm chuyển đổi đầu vào/đầu ra cho kiểu dữ liệu cụ thể. Trong biểu diễn truyền tải, không có nhân vật null nào theo dõi; Frontend phải thêm một vào kèo chấp bóng đá hôm nay giá trị nhận được nếu nó muốn xử lý chúng dưới dạng chuỗi C. (Nhân tiện, định dạng văn bản không cho phép nulls nhúng.)

Đại diện nhị phân cho số nguyên sử dụng đơn đặt hàng byte (kèo chấp bóng đá hôm nay trọng nhất là byte đầu tiên). Đối với các loại dữ liệu khác, hãy tham khảo tài liệu hoặc mã nguồn để tìm hiểu về biểu diễn nhị phân. Hãy nhớ rằng các biểu diễn nhị phân cho các loại dữ liệu phức tạp có thể thay đổi trên các phiên bản máy chủ; Định dạng văn bản thường là lựa chọn di động hơn.