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 bóng đá hom nay phiên bản được hỗ trợ khác được liệt kê ở trên thay thế.

51.1. Tổng kèo bóng đá hom nay

Giao thức có kèo bóng đá hom 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ủ.

Trong quá trình hoạt động bình thường, Frontend gửi kèo bóng đá hom nay truy vấn và kèo bóng đá hom 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 bóng đá hom 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 bóng đá hom 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 bóng đá hom 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 bóng đá hom 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"Giao thức, Frontend chỉ cần gửi chuỗi truy vấn văn bản, được phân tích cú pháp và ngay lập tức được thực hiện bởi phụ trợ. Trong"Truy vấn mở rộng"Giao thức, xử lý kèo bóng đá hom 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 bóng đá hom 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.

Hoạt động bình thường có kèo bóng đá hom nay giao thức phụ bổ sung cho kèo bóng đá hom nay hoạt động đặc biệt nhưCopy.

51.1.1. Tổng kèo bóng đá hom nay nhắn tin

Tất cả kèo bóng đá hom 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).

Để 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ộ kèo bóng đá hom nay 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.

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 bóng đá hom 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 bóng đá hom nay nhắn trong bộ đệm trước khi bắt đầu gửi nó.

51.1.2. Tổng kèo bóng đá hom nay truy vấn mở rộng

Trong giao thức Trận đấu mở rộng, việc thực thi kèo bóng đá hom nay lệnh SQL được chia thành nhiều bước. Trạng thái được giữ lại giữa kèo bóng đá hom nay bước được biểu thị bằng hai loại đối tượng:kèo bóng đá hom nay câu lệnh được chuẩn bịCổng thông kèo bóng đá hom 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.tham số. Một cổng thông kèo bóng đá hom nay đại diện cho một câu lệnh sẵn sàng để thực hiện hoặc đã được thực hiện trong phần, với bất kỳ giá trị tham số bị thiếu nào được điền vào. (Đối vớiChọnCâu lệnh, một cổng thông kèo bóng đá hom 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 bóng đá hom 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 bóng đá hom 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 bóng đá hom nay phiên). kèo bóng đá hom 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 bóng đá hom nay tên được gán khi chúng được tạo."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 bóng đá hom nay đối tượng được đặt tên, kèo bóng đá hom 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 bóng đá hom nay hoạt động trên kèo bóng đá hom 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.

51.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 bóng đá hom 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 bóng đá hom 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.

Biểu diễn văn bản của kèo bóng đá hom nay giá trị là bất kỳ chuỗi nào được tạo và chấp nhận bởi kèo bóng đá hom 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;

Đại diện nhị phân cho số nguyên sử dụng đơn đặt hàng byte (kèo bóng đá hom 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.