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 tỷ lệ kèo bó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 / 8.1 / 8.0 / 7.4
Tài liệu này dành cho phiên bản tỷ lệ kèo bó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ế.

44.2. Lưu lượng tỷ lệ kèo bóng đá báo

Phần này mô tả luồng thông báo và ngữ nghĩa của mỗi loại tỷ lệ kèo bóng đá. (Chi tiết về đại diện chính xác của mỗi thông báo xuất hiện trongkèo bóng đá10313_10643

10724_10746

Để bắt đầu một phiên, một frontend mở kết nối với máy chủ và gửi một thông báo khởi động. Thông báo này bao gồm Tên của người dùng và cơ sở dữ liệu mà người dùng muốn kết nối ĐẾN; nó cũng xác định phiên bản giao thức cụ thể là đã sử dụng. (Tùy chọn, thông báo khởi động có thể bao gồm bổ sung Cài đặt cho tham số thời gian chạy.) Sau đó, máy chủ sử dụng cái này thông tỷ lệ kèo bóng đá và nội dung của các tệp cấu hình của nó (như BẰNGpg_hba.conf) để xác định xem có kết nối được chấp nhận tạm thời và những gì bổ sung yêu cầu xác thực (nếu có).

Máy chủ sau đó gửi yêu cầu xác thực thích hợp tỷ lệ kèo bóng đá, mà frontend phải trả lời một cách thích hợp Thông báo phản hồi xác thực (như mật khẩu). TRONG Nguyên tắc, chu kỳ yêu cầu/phản hồi xác thực có thể yêu cầu nhiều lần lặp, nhưng không có gì hiện tại Phương pháp xác thực Sử dụng nhiều hơn một yêu cầu và phản hồi. Trong một số phương pháp, không cần phản hồi từ Frontend, và do đó không có yêu cầu xác thực xảy ra.

Chu kỳ xác thực kết thúc với máy chủ từ chối nỗ lực kết nối (errorresponse) hoặc gửi Xác thực.

Các tỷ lệ kèo bóng đá có thể từ máy chủ trong giai đoạn này là:

errorResponse

Nỗ lực kết nối đã bị từ chối. Máy chủ sau đó ngay lập tức đóng kết nối.

xác thực

Trao đổi xác thực là thành công hoàn thành.

xác thựcKerberSv4

Frontend hiện phải tham gia Kerberos V4 Hộp thoại xác thực (không được mô tả ở đây, tỷ lệ kèo bóng đá phần của Đặc tả Kerberos) với máy chủ. Nếu đây là Thành công, máy chủ phản hồi với xác thực, nếu không thì nó phản hồi với tỷ lệ kèo bóng đá errorresponse.

xác thựcKerberSv5

Frontend hiện phải tham gia Kerberos V5 Hộp thoại xác thực (không được mô tả ở đây, tỷ lệ kèo bóng đá phần của Đặc tả Kerberos) với máy chủ. Nếu đây là Thành công, máy chủ phản hồi với xác thực, nếu không thì nó phản hồi với tỷ lệ kèo bóng đá errorresponse.

xác thựcCleartextPassword

Frontend bây giờ phải gửi mật khẩu chứa mật khẩu ở dạng văn bản rõ ràng. Nếu đây là mật khẩu chính xác, máy chủ trả lời với Xác thực, nếu tỷ lệ kèo bóng đá nó trả lời với ErrorResponse.

xác thựcCryptPassword

Frontend bây giờ phải gửi mật khẩu chứa mật khẩu được mã hóa qua mật mã (3), sử dụng Muối 2 ký tự được chỉ định trong tỷ lệ kèo bóng đá báo xác thựcCryptPassword. Nếu đây là mật khẩu chính xác, máy chủ trả lời với Xác thực, nếu không nó trả lời với ErrorResponse.

xác thựcMD5Password

Frontend bây giờ phải gửi mật khẩu chứa mật khẩu được mã hóa qua MD5, sử dụng Muối 4 ký tự được chỉ định trong Thông báo xác thựcMD5Password. Nếu đây là đúng Mật khẩu, máy chủ trả lời với xác thực, nếu không thì nó phản hồi với tỷ lệ kèo bóng đá errorresponse.

Xác thựcScmCredential

14556_15106

Nếu Frontend tỷ lệ kèo bóng đá hỗ trợ phương thức xác thực được yêu cầu bởi máy chủ, sau đó nó sẽ đóng ngay lập tức sự liên quan.

Sau khi nhận được xác thực, frontend phải Chờ tỷ lệ kèo bóng đá thêm từ máy chủ. Trong giai đoạn này A quá trình phụ trợ đang được bắt đầu và mặt tiền chỉ là một người ngoài cuộc quan tâm. Vẫn có thể cho startup cố gắng thất bại (errorResponse), nhưng trong trường hợp bình thường Backend sẽ gửi một số tỷ lệ kèo bóng đá tham số, BackendKeyData, và cuối cùng đã sẵn sàng.

Trong giai đoạn này, phụ trợ sẽ cố gắng áp dụng bất kỳ Cài đặt tham số thời gian chạy bổ sung đã được đưa ra trong tỷ lệ kèo bóng đá báo khởi động. Nếu thành công, các giá trị này sẽ trở thành phiên mặc định. Lỗi gây ra errorResponse và exit.

Các tỷ lệ kèo bóng đá có thể từ phần phụ trợ trong giai đoạn này là:

BackendKeyData

Thông báo này 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 Hủy yêu cầu sau. Frontend không nên trả lời điều này tỷ lệ kèo bóng đá, nhưng nên tiếp tục lắng nghe cho một ReadyForQuery Message.

parameterstatus

16501_16624client_encodinghoặcDatestyle. Mặt trận có thể bỏ qua điều này tỷ lệ kèo bóng đá báo hoặc ghi lại các cài đặt cho việc sử dụng trong tương lai của nó; nhìn thấyPhần 44.2.6Để biết thêm chi tiết. Mặt trận không nên Trả lời tỷ lệ kèo bóng đá này, nhưng nên tiếp tục nghe cho một tỷ lệ kèo bóng đá ReadyForQuery.

ReadyForQuery

Khởi nghiệp được hoàn thành. Frontend bây giờ có thể phát hành các lệnh.

errorResponse

Khởi nghiệp không thành công. Kết nối được đóng sau gửi tỷ lệ kèo bóng đá này.

noticeResponse

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

Thông báo ReadyForQuery giống như phần phụ trợ mà phần phụ trợ sẽ phát hành sau mỗi chu kỳ lệnh. Tùy thuộc vào mã hóa nhu cầu của mặt tiền, thật hợp lý khi xem xét ReadyForQuery như bắt đầu tỷ lệ kèo bóng đá chu kỳ chỉ huy, hoặc để xem xét ReadyForQuery là kết thúc giai đoạn khởi nghiệp và mỗi lần tiếp theo Chu kỳ lệnh.

44.2.2. Truy vấn đơn giản

18082_18774

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

CommandComplete

lệ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 Frontend sang tỷ lệ kèo bóng đá cái bàn; nhìn thấyPhần 44.2.5.

CopyouTresponse

phụ trợ đã sẵn sàng sao chép dữ liệu từ bảng sang bảng vào phía trước; nhìn thấyPhần 44.2.5.

Rowdescrip

chỉ ra rằng các hàng sắp được trả lại Phản hồi cho AChọn, Fetch, truy vấn vv. Nội dung của cái này Thông báo Mô tả bố cục cột của các hàng. Điều này sẽ được theo sau bởi một tỷ lệ kèo bóng đá Datarow cho mỗi hàng đã trở về phía trước.

Datarow

tỷ lệ kèo bóng đá trong những hàng hàng được trả về bởi AChọn, Fetch,, vv truy vấn.

trốngqueryresponse

tỷ lệ kèo bóng đá chuỗi truy vấn trống đã được công nhận.

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 thông báo đượ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. (Nhãn hiệu CommandComplete kết thú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, 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 báo cảnh báo đã được ban hành 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ần phụ trợ sẽ tiếp tục xử lý lệnh.

Phản hồi cho AChọnTruy vấn (hoặc Các truy vấn khác trả về các bộ hàng, chẳng hạn nhưGiải thíchhoặcshow) Thông thường bao gồm Rowdescrip, 0 hoặc nhiều Datarow tỷ lệ kèo bóng đá và sau đó chỉ huyPlete.sao chépĐến hoặc từ Frontend gọi Đặc biệt giao thức như được mô tả trongPhần 44.2.5. Tất cả Các loại truy vấn khác thường chỉ tạo ra một lệnh chỉ huy tỷ lệ kèo bóng đá.

Vì chuỗi truy vấn có thể chứa tỷ lệ kèo bóng đá số truy vấn (cách nhau bởi dấu chấm phẩy), có thể có tỷ lệ kèo bóng đá số phản ứng như vậy Trình tự trước khi hoàn thành phụ trợ xử lý truy vấn sợi dây. ReadyForQuery được phát hành khi toàn bộ chuỗi đã được được xử lý và phụ trợ đã sẵn sàng để chấp nhận tỷ lệ kèo bóng đá truy vấn mới sợi dây.

Nếu hoàn toàn trống (tỷ lệ kèo bóng đá có nội dung nào khác ngoài khoảng trắng) Chuỗi truy vấn được nhận, phản hồi là trốngqueryResponse theo sau là ReadyForQuery.

Trong trường hợp lỗi, ErrorResponse được cấp theo sau Bằng cách sẵn sàng. Tất cả việc xử lý thêm chuỗi truy vấn là Bị hủy bỏ bởi ErrorResponse (ngay cả khi vẫn còn nhiều truy vấn trong đó). Lưu ý rằng điều này có thể xảy ra một phần thông qua chuỗi tỷ lệ kèo bóng đá được tạo bởi một truy vấn riêng lẻ.

Trong chế độ truy vấn đơn giản, định dạng của các giá trị được truy xuất là luôn luôn văn bản, ngoại trừ khi lệnh đã cho làFetchTừ con trỏ được khai tỷ lệ kèo bóng đá vớinhị phân22646_22807

22818_22969Phần 44.2.6Liên quan đến các tỷ lệ kèo bóng đá mà phụ trợ có thể tạo ra do Các sự kiện bên ngoài.

Thực tiễn được đề xuất là mã Frontends trong một máy nhà nước kiểu sẽ chấp nhận bất kỳ loại tỷ lệ kèo bóng đá nào bất cứ lúc nào có thể có ý nghĩa, thay vì nối dây trong các giả định về Chuỗi tỷ lệ kèo bóng đá chính xác.

44.2.3. Truy vấn mở rộng

Giao thức truy vấn mở rộng bị phá vỡ Giao thức truy vấn đơn giản thành nhiều bước. Kết quả của Các bước chuẩn bị có thể được sử dụng lại nhiều lần để cải thiện hiệu quả. Hơn nữa, các tính năng bổ sung có sẵn, chẳng hạn như khả năng cung cấp các giá trị dữ liệu là riêng biệt tham số thay vì phải chèn chúng trực tiếp vào query string.

Trong giao thức mở rộng, Frontend trước tiên gửi một phân tích cú pháp thông báo, chứa chuỗi truy vấn văn bản, tùy chọn một số thông tỷ lệ kèo bóng đá về các loại dữ liệu của các trình giữ chỗ tham số và Tên của một đối tượng đã chuẩn bị đích (một trống Chuỗi chọn câu lệnh đã chuẩn bị không tên). Phản hồi là Parsecomplete hoặc errorresponse. Các loại dữ liệu tham số có thể được chỉ định bởi OID; Nếu không được đưa ra, trình phân tích cú pháp cố gắng suy luận các loại dữ liệu theo cùng một cách như nó sẽ làm cho không cần thiết Hằng số chuỗi theo nghĩa đen.

tỷ lệ kèo bóng đá ý:Chuỗi truy vấn có trong phân tích cú pháp Thông báo không thể bao gồm nhiều hơn tỷ lệ kèo bóng đá câu lệnh SQL; khác a Lỗi cú pháp được báo cáo. Hạn chế này không tồn tại trong giao thức đơn giản, nhưng nó tồn tại trong giao thức mở rộng, bởi vì cho phép các tuyên bố đã chuẩn bị hoặc các cổng để chứa nhiều lệnh sẽ làm phức tạp giao thức quá mức.

24968_25584Chuẩn bịthực thi.

Một khi một câu lệnh đã chuẩn bị tồn tại, nó có thể được sẵn sàng Thực thi bằng một thông báo ràng buộc. Thông điệp ràng buộc cho tên của câu lệnh được chuẩn bị nguồn (chuỗi trống biểu thị Tuyên bố đã chuẩn bị không tên), tên của cổng thông tỷ lệ kèo bóng đá đích (Chuỗi trống biểu thị cổng thông tỷ lệ kèo bóng đá không tên) và các giá trị để Sử dụng cho bất kỳ người giữ chỗ tham số nào có trong quá trình chuẩn bị tuyên bố. Bộ tham số được cung cấp phải phù hợp với các tập hợp cần thiết bởi tuyên bố đã chuẩn bị. Liên kết cũng chỉ định định dạng thành sử dụng cho bất kỳ dữ liệu nào được trả về bởi truy vấn; Định dạng có thể là được chỉ định tổng thể, hoặc trên mỗi cột. Phản hồi là BindComplete hoặc ErrorResponse.

tỷ lệ kèo bóng đá ý:Sự lựa chọn giữa văn bản và đầu ra nhị phân được xác định bởi các mã định dạng được đưa ra trong ràng buộc, bất kể của lệnh SQL liên quan. Thenhị phânthuộc tính trong các khai báo con trỏ là tỷ lệ kèo bóng đá liên quan khi sử dụng giao thức truy vấn mở rộng.

Nếu được tạo thành công, một đối tượng cổng thông tin có tên kéo dài cho đến khi kết thúc giao dịch hiện tại, trừ khi rõ ràng bị phá hủy. Một cổng thông tin giấu tên bị phá hủy ở cuối giao dịch hoặc ngay khi câu lệnh liên kết tiếp theo chỉ định Cổng thông tin không tên là điểm đến được phát hành. (Lưu ý rằng a Thông điệp truy vấn đơn giản cũng phá hủy cổng thông tin không tên.) Được đặt tên Cổng phải được đóng một cách rõ ràng trước khi chúng có thể được xác định lại bằng một tỷ lệ kèo bóng đá ràng buộc, nhưng điều này không bắt buộc đối với Cổng thông tin. Các cổng được đặt tên cũng có thể được tạo và truy cập tại Cấp lệnh SQL, sử dụngKhai tỷ lệ kèo bóng đá Con trỏFetch.

27443_27657"Tìm nạp tất cả hàng "). Số lượng hàng kết quả chỉ có ý nghĩa đối với Các cổng chứa các lệnh trả về các bộ hàng; trong khác Các trường hợp lệnh luôn được thực thi để hoàn thành và hàng Đếm bị bỏ qua. Các câu trả lời có thể để thực thi là Giống như những mô tả ở trên cho các truy vấn được phát hành tỷ lệ kèo bóng đá qua đơn giản Giao thức truy vấn, ngoại trừ việc thực thi không gây ra sự sẵn sàng được ban hành.

28106_28797

Khi hoàn thành từng loạt các tỷ lệ kèo bóng đá trình độ mở rộng, Frontend sẽ phát hành một thông báo đồng bộ. Không tham số này tỷ lệ kèo bóng đá khiến phụ trợ đóng giao dịch hiện tại nếu nó không ở trong mộtbắt đầu/cam kếtKhối giao dịch ("Đóng"Có nghĩa là cam kết nếu không có lỗi hoặc cuộn trở lại nếu lỗi). Sau đó, một phản hồi ReadyForQuery được ban hành. Các Mục đích đồng bộ là cung cấp một điểm đồng bộ hóa cho phục hồi lỗi. Khi phát hiện lỗi trong khi xử lý bất kỳ Thông báo Trận đấu mở rộng, phần phụ trợ phát hành ErrorResponse, sau đó đọc và loại bỏ tỷ lệ kèo bóng đá cho đến khi đạt được đồng bộ hóa, sau đó Các vấn đề sẵn sàng và trở lại xử lý tỷ lệ kèo bóng đá thông thường. (Nhưng lưu ý rằng không có bỏ qua xảy ra nếu phát hiện lỗitrong khiĐồng bộ hóa xử lý --- Điều này đảm bảo rằng có tỷ lệ kèo bóng đá và chỉ tỷ lệ kèo bóng đá ReadyForQuery được gửi cho mỗi đồng bộ.)

tỷ lệ kèo bóng đá ý:SYNC tỷ lệ kèo bóng đá gây ra khối giao dịch đã mở bằngbắt đầu29972_30125

Ngoài các hoạt động cơ bản, cần thiết, ở đó là tỷ lệ kèo bóng đá số hoạt động tùy chọn có thể được sử dụng với Giao thức trình biết mở rộng.

Thông báo mô tả (biến thể cổng thông tỷ lệ kèo bóng đá) Chỉ định tên của một cổng thông tỷ lệ kèo bóng đá hiện có (hoặc một chuỗi trống cho cổng thông tỷ lệ kèo bóng đá không tên). Phản hồi là thông báo Rowdescrip mô tả các hàng Điều đó sẽ được trả lại bằng cách thực hiện cổng thông tỷ lệ kèo bóng đá; hoặc một cái gật đầu thông báo nếu cổng thông tỷ lệ kèo bóng đá không chứa một truy vấn sẽ quay lại hàng; hoặc errorResponse nếu không có cổng thông tỷ lệ kèo bóng đá như vậy.

30718_31464

Tip:Trong hầu hết các tình huống, Frontend sẽ phát hành tỷ lệ kèo bóng đá hoặc biến thể khác của mô tả trước khi phát hành Thực thi, để đảm bảo rằng nó biết cách giải thích kết quả nó sẽ trở lại.

31787_32229

Thông báo xả không gây ra bất kỳ đầu ra cụ thể nào được tạo ra, nhưng buộc phần phụ trợ để cung cấp bất kỳ dữ liệu đang chờ xử lý Trong bộ đệm đầu ra của nó. Một tuôn ra phải được gửi sau bất kỳ Lệnh mở rộng-Trận đấu ngoại trừ đồng bộ hóa, nếu Frontend muốn Kiểm tra kết quả của lệnh đó trước khi phát hành thêm lệnh. Không có sự tuôn ra, các tỷ lệ kèo bóng đá được trả về bởi phần phụ trợ sẽ được kết hợp vào số lượng gói tối thiểu có thể giảm thiểu chi phí mạng.

tỷ lệ kèo bóng đá ý:Thông báo truy vấn đơn giản xấp xỉ tương đương với loạt phân tích, ràng buộc, mô tả cổng thông tin, Thực thi, đóng, đồng bộ, sử dụng câu lệnh đã chuẩn bị không tên và đối tượng cổng thông tin và không có tham số. Một điểm khác biệt là rằng nó sẽ chấp nhận nhiều câu lệnh SQL trong truy vấn Chuỗi, tự động thực hiện liên kết/mô tả/thực thi Trình tự cho mỗi người liên tiếp. Một sự khác biệt khác là rằng nó sẽ không trả lại Parsecomplete, BindComplete, CloseComplete hoặc tỷ lệ kèo bóng đá NODATA.

44.2.4. Chức năng gọi

Chức năng gọi phụ cho phép khách hàng yêu cầu tỷ lệ kèo bóng đá cuộc gọi trực tiếp của bất kỳ chức năng nào tồn tại trong cơ sở dữ liệuPG_PROCDanh mục hệ thống. Khách hàng Phải có quyền thực thi cho chức năng.

tỷ lệ kèo bóng đá ý:Chức năng gọi phụ là tỷ lệ kèo bóng đá di sản Tính năng có lẽ tốt nhất là tránh trong mã mới. Tương tự Kết quả có thể được thực hiện bằng cách thiết lập tỷ lệ kèo bóng đá tuyên bố khôngChọn chức năng ($ 1, ...). Chu kỳ cuộc gọi chức năng sau đó có thể được thay thế với BIND/EXECUTE.

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

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

errorResponse

Đã xảy ra lỗi.

functionCallResponse

Cuộc gọi chức năng đã được hoàn thành và trả về kết quả được đưa ra trong tỷ lệ kèo bóng đá. (Lưu ý rằng cuộc gọi chức năng giao thức chỉ có thể xử lý một kết quả vô hướng duy nhất, không phải RowType hoặc bộ kết quả.)

ReadyForQuery

35124_35286

noticeResponse

tỷ lệ kèo bóng đá thông điệp 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, tức là, phần phụ trợ sẽ tiếp tục xử lý yêu cầu.

44.2.5. Sao chép hoạt động

TheCopyLệnh cho phép tốc độ cao Chuyển dữ liệu số lượng lớn vào hoặc từ máy chủ. Sao chép và sao chép hoạt động mỗi chuyển đổi kết nối thành tỷ lệ kèo bóng đá giao thức phụ, kéo dài cho đến khi hoạt động hoàn thành.

36006_36096Sao chép từ StdinTuyên bố SQL. Phần phụ trợ gửi tỷ lệ kèo bóng đá CopyInresponse đến Mặt trận. Frontend sau đó sẽ gửi không hoặc nhiều hơn tỷ lệ kèo bóng đá CopyData, tạo thành một luồng dữ liệu đầu vào. (tỷ lệ kèo bóng đá ranh giới không bắt buộc phải làm gì với hàng ranh giới, mặc dù đó thường là một lựa chọn hợp lý.) Frontend có thể chấm dứt chế độ sao chép bằng cách gửi tỷ lệ kèo bóng đá copyDone (cho phép chấm dứt thành công) hoặc tỷ lệ kèo bóng đá copyfail (sẽ gây raCopyCâu lệnh SQL bị lỗi). Các phụ trợ sau đó trở lại chế độ xử lý lệnh mà nó đã ở TrướcCopybắt đầu, sẽ hoặc giao thức truy vấn đơn giản hoặc mở rộng. Nó sẽ gửi tiếp theo CommandComplete (nếu thành công) hoặc errorResponse (nếu tỷ lệ kèo bóng đá).

Trong trường hợp lỗi được phát hiện theo phụ trợ trong chế độ sao chép (bao gồm cả việc nhận tỷ lệ kèo bóng đá copyfail), phần phụ trợ sẽ phát hành một tỷ lệ kèo bóng đá ErrorResponse. NếuCopyLệnh đã được ban hành thông qua trình điều khiển mở rộng tỷ lệ kèo bóng đá, phần phụ trợ bây giờ sẽ loại bỏ các tỷ lệ kèo bóng đá phía trước cho đến khi Thông báo đồng bộ được nhận, sau đó nó sẽ phát hành ReadyForQuery và trở lại xử lý bình thường. NếuCopy37439_37689

37700_38113Sao chép từ Stdin.)

Chế độ sao chép (truyền dữ liệu từ máy chủ) được bắt đầu Khi phần phụ trợ thực thiSao chép vào StdoutTuyên bố SQL. Phần phụ trợ gửi một bản sao Thông báo đến Frontend, theo sau là không hoặc nhiều COPYDATA tỷ lệ kèo bóng đá (luôn luôn một mỗi hàng), theo sau là CopyDone. Các phụ trợ sau đó trở lại chế độ xử lý lệnh mà nó đã ở TrướcCopyBắt đầu và gửi CommandComplete. Frontend không thể hủy bỏ việc chuyển nhượng (ngoại trừ bằng cách đóng kết nối hoặc đưa ra yêu cầu hủy), nhưng nó có thể loại bỏ các tỷ lệ kèo bóng đá copyData và copyDone không mong muốn.

Trong trường hợp lỗi được phát hiện theo hướng phụ chế độ, phần phụ trợ sẽ phát hành tỷ lệ kèo bóng đá ErrorResponse và hoàn nguyên về xử lý bình thường. Frontend nên xử lý biên lai của ErrorResponse khi chấm dứt chế độ sao chép.

Có thể tỷ lệ kèo bóng đá của NoticeResponse xen kẽ giữa các tỷ lệ kèo bóng đá copyData; Mặt trận phải xử lý trường hợp này, và nên được chuẩn bị cho sự không đồng bộ khác Các loại tỷ lệ kèo bóng đá là tốt (xemPhần 44.2.6). Nếu không, bất kỳ loại tỷ lệ kèo bóng đá nào khác ngoài copyData hoặc copyDone có thể được coi là chế độ sao chép kết thúc.

39469_39711CopyHoạt động sẽ sử dụng cùng một định dạng, nhưng Thiết kế tỷ lệ kèo bóng đá không giả định điều này.)

44.2.6. Hoạt động tỷ lệ kèo bóng đá đồng bộ

Có một số trường hợp phụ trợ sẽ gửi các tỷ lệ kèo bóng đá không được nhắc nhở cụ thể bởi Frontend's Luồng lệnh. Frontends phải được chuẩn bị để đối phó với những điều này tỷ lệ kèo bóng đá bất cứ lúc nào, ngay cả khi không tham gia vào một truy vấn. Tại Tối thiểu, người ta nên kiểm tra các trường hợp này trước khi bắt đầu Đọc phản hồi truy vấn.

Có thể tạo các tỷ lệ kèo bóng đá báo NoticeResponse được tạo do hoạt động bên ngoài; Ví dụ: nếu cơ sở dữ liệu Quản trị viên lệnh A"Fast"Tắt cơ sở dữ liệu, phần phụ trợ sẽ gửi một NoticeResponse chỉ ra thực tế này trước khi đóng kết nối. Theo đó, các frontends phải luôn luôn được chuẩn bị để chấp nhận và hiển thị các tỷ lệ kèo bóng đá noticeResponse, ngay cả khi kết nối là Đang nhàn rỗi.

tỷ lệ kèo bóng đá parametStatus sẽ được tạo bất cứ khi nào thay đổi giá trị hoạt động cho bất kỳ tham số nào mà phụ trợ Tin rằng Frontend nên biết về. Phổ biến nhất là điều này xảy ra để đáp ứng vớisetSQL lệnh được thực hiện bởi frontend và trường hợp này có hiệu quả đồng bộ --- nhưng cũng có thể cho trạng thái tham số thay đổi xảy ra vì quản trị viên đã thay đổi Tệp cấu hình và sau đó đã gửiSIGHUPTín hiệu cho Postmaster. Ngoài ra, nếu a Lệnh đặt được cuộn trở lại, một tham số thích hợp tỷ lệ kèo bóng đá sẽ được tạo để báo cáo hiệu lực hiện tại giá trị.

Hiện tại có tỷ lệ kèo bóng đá bộ tham số có dây cứng mà Parameterstatus sẽ được tạo: chúng làserver_version(tỷ lệ kèo bóng đá tham số giả không thể thay đổi sau khi khởi động);client_encoding, is_superuser, session_AuthorizationDatestyle. Bộ này có thể thay đổi trong tương lai, Hoặc thậm chí trở thành cấu hình. Theo đó, tỷ lệ kèo bóng đá mặt trận nên chỉ đơn giản là bỏ qua Parameterstatus cho các tham số mà nó không hiểu hoặc quan tâm đến.

42118_42143nghelệnh, sau đó phần phụ trợ sẽ gửi một thông báo tỷ lệ kèo bóng đá (không bị nhầm lẫn với NoticeResponse!) Bất cứ khi nàotỷ lệ kèo bóng đá báolệnh được thực thi cho Tên tỷ lệ kèo bóng đá báo giống nhau.

tỷ lệ kèo bóng đá ý:Hiện tại, thông báo chỉ có thể được gửi bên ngoài tỷ lệ kèo bóng đá giao dịch, và do đó nó sẽ không xảy ra ở giữa tỷ lệ kèo bóng đá loạt phản hồi lệnh, mặc dù nó có thể xảy ra ngay trước khi ReadyForQuery. Thiết kế không khôn ngoan Frontend Logic giả định rằng, tuy nhiên. Thực hành tốt là để có thể chấp nhận thông báo định nghĩa tại bất kỳ điểm nào trong giao thức.

44.2.7. Hủy yêu cầu đang được tiến hành

43054_43533

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

43927_44358

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

44679_45093

Vì yêu cầu hủy được gửi qua kết nối mới đến máy chủ chứ không phải trên frontend/phụ trợ thông thường liên kết giao tiếp, có thể yêu cầu hủy bỏ được ban hành bởi bất kỳ quy trình nào, không chỉ là frontend mà truy vấn của họ là 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 Xây dựng các ứng dụng nhiều quá trình. Nó cũng giới thiệu 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 bỏ Truy vấn. Rủi ro bảo mật được giải quyết bằng cách yêu cầu Khóa bí mật được tạo tự động được cung cấp trong Hủy yêu cầu.

44.2.8. Chấm dứt

Quy trình chấm dứt bình thường, duyên dáng là Frontend gửi tỷ lệ kèo bóng đá chấm dứt và ngay lập tức đóng sự liên quan. Khi nhận được tỷ lệ kèo bóng đá này, phần phụ trợ sẽ đóng kết nối và chấm dứt.

Trong những trường hợp hiếm hoi (chẳng hạn như cơ sở dữ liệu được quản lý tắt máy) phụ trợ có thể ngắt kết nối mà không có bất kỳ mặt trận nào yêu cầu làm như vậy. Trong những trường hợp như vậy, phụ trợ sẽ cố gắng Gửi tỷ lệ kèo bóng đá lỗi hoặc thông báo thông báo đưa ra lý do cho ngắt kết nối trước khi đóng kết nối.

Các kịch bản chấm dứt khác phát sinh từ những thất bại khác nhau Các trường hợp, chẳng hạn như bãi rác lõi ở đầu này hay đầu kia, mất Liên kết truyền thông, mất đồng bộ hóa giới hạn tỷ lệ kèo bóng đá, v.v ... Nếu phía trước hoặc phụ trợ sẽ thấy một sự đóng cửa bất ngờ của kết nối, nó nên làm sạch và chấm dứt. Các Frontend có tùy chọn khởi chạy một phụ trợ mới của Tái cấu trúc máy chủ nếu nó không muốn tự chấm dứt. Đóng kết nối cũng được khuyến khích nếu không thể nhận ra Loại tỷ lệ kèo bóng đá được nhận, vì điều này có thể cho thấy mất Đồng bộ hóa giới hạn tỷ lệ kèo bóng đá.

Để chấm dứt bình thường hoặc bất thường, bất kỳ mở nào Giao dịch được chuyển trở lại, không cam kết. tỷ lệ kèo bóng đá người nên lưu ý Tuy nhiên, nếu tỷ lệ kèo bóng đá frontend ngắt kết nối trong khi truy vấn không chọn đang được xử lý, phần phụ trợ có thể sẽ hoàn thành truy vấn Trước khi nhận thấy sự ngắt kết nối. Nếu truy vấn nằm ngoài bất kỳ Khối giao dịch (Bắt đầu...47375_47383trình tự) sau đó kết quả của nó có thể được cam kết trước khi ngắt kết nối được nhận ra.

44.2.9. SSL Mã hóa phiên

nếuPostgreSQLđã được xây dựng Với hỗ trợ SSL, giao tiếp Frontend/Backend có thể được mã hóa bằng SSL. Điều này cung cấp bảo mật truyền tỷ lệ kèo bóng đá trong môi trường nơi những kẻ tấn công có thể bắt được session traffic.

Để bắt đầu kết nối được mã hóa SSL, Frontend Ban đầu gửi tỷ lệ kèo bóng đá SSLRequest thay vì StartupMessage. Máy chủ sau đó trả lời với một byte duy nhất chứaShoặcn, chỉ ra rằng nó sẵn sàng hoặc tỷ lệ kèo bóng đá muốn thực hiện SSL, tương ứng. Mặt trận có thể đóng kết nối tại thời điểm này nếu nó tỷ lệ kèo bóng đá hài lòng với phản ứng. Để tiếp tục sauS, thực hiện tỷ lệ kèo bóng đá cái bắt tay khởi động SSL (không được mô tả ở đây, tỷ lệ kèo bóng đá phần của SSL đặc điểm kỹ thuật) với máy chủ. Nếu điều này thành công, hãy tiếp tục với việc gửi các công ty khởi nghiệp thông thường. Trong trường hợp này StartupMessage và tất cả các dữ liệu tiếp theo sẽ được mã hóa SSL. Để tiếp tục saun, Gửi tỷ lệ kèo bóng đá thường StartupMessage và tiến hành mà không cần mã hóa.

Frontend cũng nên được chuẩn bị để xử lý tỷ lệ kèo bóng đá ErrorMessage đáp ứng với sslRequest từ máy chủ. Điều này sẽ Chỉ xảy ra nếu máy chủ có trước việc bổ sung hỗ trợ SSL ĐẾNPOSTGRESQL. Trong trường hợp này kết nối phải được đóng, nhưng mặt tiền có thể chọn Mở kết nối mới và tiến hành mà tỷ lệ kèo bóng đá yêu cầu SSL.

SSLRequest ban đầu cũng có thể được sử dụng trong kết nối mà đang được mở để gửi tỷ lệ kèo bóng đá hủyRequest.

Trong khi chính giao thức tỷ lệ kèo bóng đá cung cấp cách máy chủ buộc mã hóa SSL, quản trị viên có thể định cấu hình máy chủ từ chối các phiên tỷ lệ kèo bóng đá được mã hóa dưới dạng sản phẩm phụ của Kiểm tra xác thực.