ngày 8 tháng 5 năm 2025:2542_2604 | 2667_2703
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 kèo bóng đá cúp c2 đượ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 kèo bóng đá cúp c2 được hỗ trợ của PostgreSQL.
Bạn có thể muốn xem cùng kèo bóng đá cúp c2 trang chohiện tạiPhiên bản hoặc kèo bóng đá cúp c2 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 kèo bóng đá cúp c2 báo

Phần này mô tả luồng thông báo và ngữ nghĩa của mỗi loại kèo bóng đá cúp c2. (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 đá việt nam:.) Có kèo bóng đá cúp c2 số giao thức phụ 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,Copy, và chấm dứt. Ngoài ra còn có các điều khoản đặc biệt cho các hoạt động không đồng bộ (bao gồm cả phản hồi kèo bóng đá cúp c2 báo và hủy lệnh), có thể xảy ra Bất cứ lúc nào sau giai đoạn khởi động.

44.2.1. Khởi nghiệp

Để 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 kèo bóng đá cúp c2 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ó).

11437_11925

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 kèo bóng đá cúp c2 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ựcKerberSv5

Frontend hiện phải tham gia Kerberos V5 Hộp thoại xác thực (không được mô tả ở đây, kèo bóng đá cúp c2 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 kèo bóng đá cúp c2 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 kèo bóng đá cúp c2 nó trả lời với ErrorResponse.

xác thựcCryptPassword

Frontend hiện 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 kèo bóng đá cúp c2 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 hiện 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 kèo bóng đá cúp c2 errorresponse.

Xác thựcScmCredential

Phản hồi này chỉ có thể đối với miền đơn vị địa phương Kết nối trên các nền tảng hỗ trợ chứng chỉ SCM kèo bóng đá cúp c2. Frontend phải cấp chứng chỉ SCM thông báo và sau đó gửi một byte dữ liệu duy nhất. (Nội dung của byte dữ liệu là không thú vị; Nó chỉ được sử dụng để đảm bảo rằng máy chủ chờ đủ lâu để nhận Thông báo thông tin đăng nhập.) Nếu thông tin xác thực được chấp nhận, máy chủ phản hồi với xác thực, nếu không thì nó trả lời với một errorResponse.

14801_14943

Sau khi nhận được xác thực, frontend phải Chờ kèo bóng đá cúp c2 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ố kèo bóng đá cúp c2 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 kèo bóng đá cúp c2 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 kèo bóng đá cúp c2 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 kèo bóng đá cúp c2, nhưng nên tiếp tục lắng nghe cho một ReadyForQuery Message.

Parameterstatus

kèo bóng đá cúp c2 báo này kèo bóng đá cúp c2 báo cho Frontend về hiện tại (ban đầu) Cài đặt tham số phụ trợ, chẳng hạn nhưclient_encodinghoặcDatestyle. Frontend có thể bỏ qua kèo bóng đá cúp c2 này hoặc ghi lại 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. Frontend không nên trả lời điều này kèo bóng đá cúp c2, nhưng nên tiếp tục lắng nghe cho một ReadyForQuery Message.

ReadyForQuery

16849_16920

ErrorResponse

Khởi nghiệp không thành công. Kết nối được đóng sau gửi kèo bóng đá cúp c2 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ị kèo bóng đá cúp c2 nhưng tiếp tục nghe ReadyForQuery hoặc ErrorResponse.

17357_17686

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

Một chu kỳ truy vấn đơn giản được bắt đầu bởi frontend gửi một Truy vấn kèo bóng đá cúp c2 cho phần phụ trợ. Thông báo bao gồm SQL Lệnh (hoặc lệnh) được thể hiện dưới dạng chuỗi văn bản. Phụ trợ sau đó gửi một hoặc nhiều kèo bóng đá cúp c2 phản hồi tùy thuộc vào nội dung của chuỗi lệnh truy vấn và cuối cùng là một ReadyForQuery Repest thông báo. ReadyForQuery thông báo cho Frontend rằng nó có thể gửi một lệnh mới một cách an toàn. (Nó không phải là thực sự cần thiết để frontend chờ đợi sẵn sàng Trước khi ban hành một lệnh khác, nhưng frontend sau đó phải lấy trách nhiệm tìm ra những gì xảy ra nếu sớm hơn Lệnh không thành công và đã được cấp các lệnh sau thành công.)

kèo bóng đá cúp c2 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 kèo bóng đá cúp c2 cái bàn; nhìn thấyPhần 44.2.5.

CopyouTresponse

19035_19115Phầ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, vv Truy vấn. 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 kèo bóng đá cúp c2 Datarow cho mỗi hàng đã trở về phía trước.

Datarow

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

BlessqueryResponse

kèo bóng đá cúp c2 chuỗi truy vấn trống đã được công nhận.

errorResponse

Đã xảy ra lỗi.

ReadyForQuery

20123_20503

noticeResponse

kèo bóng đá cúp c2 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 kèo bóng đá cúp c2 và sau đó chỉ huyPlete.CopyĐế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 kèo bóng đá cúp c2.

Vì chuỗi truy vấn có thể chứa kèo bóng đá cúp c2 số truy vấn (cách nhau bởi dấu chấm phẩy), có thể có kèo bóng đá cúp c2 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 kèo bóng đá cúp c2 truy vấn mới sợi dây.

Nếu hoàn toàn trống (kèo bóng đá cúp c2 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 có 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 kèo bóng đá cúp c2 đượ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 kèo bóng đá cúp c2 vớinhị phânTùy chọn. Trong trường hợp đó, việc lấy lại Giá trị ở định dạng nhị phân. Các mã định dạng được đưa ra trong kèo bóng đá cúp c2 báo Rowdescrip cho biết định dạng nào đang được sử dụng.

Frontend phải được chuẩn bị để chấp nhận ErrorResponse và kèo bóng đá cúp c2 noticeResponse bất cứ khi nào nó đang mong đợi bất kỳ loại nào khác kèo bóng đá cúp c2. Xem thêmPhần 44.2.6Liên quan đến các kèo bóng đá cúp c2 mà phụ trợ có thể tạo ra do Các sự kiện bên ngoài.

22864_23088

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 chuỗi truy vấn.

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 kèo bóng đá cúp c2 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.

kèo bóng đá cúp c2 ý:kèo bóng đá cúp c2 kiểu dữ liệu tham số có thể được để lại không xác định bằng cách đặt nó thành 0 hoặc bằng cách tạo mảng loại tham số OIDS ngắn hơn số tham số Biểu tượng (24505_24508n) Được sử dụng trong chuỗi truy vấn. Khác Trường hợp đặc biệt là loại tham số có thể được chỉ định làvoid(nghĩa là oid củavoid24751_24943void24967_25154foo ($ 1, $ 2, $ 3, $ 4)có thể khớp với kèo bóng đá cúp c2 hàm với hai trong và hai đối số ra, nếu$ 3$ 4là được chỉ định là có loạivoid.

kèo bóng đá cúp c2 ý: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 kèo bóng đá cúp c2 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.

Nếu được tạo thành công, một đối tượng đã chuẩn bị được đặt tên kéo dài cho đến cuối phiên hiện tại, trừ khi rõ ràng bị phá hủy. Một tuyên bố đã được chuẩn bị không tên chỉ kéo dài cho đến khi Tuyên bố phân tích tiếp theo chỉ định câu lệnh không tên là điểm đến được ban hành. (Lưu ý rằng một thông báo truy vấn đơn giản cũng phá hủy tuyên bố không tên.) Các tuyên bố đã được chuẩn bị được đặt tên 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ởi một phân tích kèo bóng đá cúp c2, nhưng điều này là không cần thiết cho tuyên bố không tên. Các câu lệnh được chuẩn bị được đặt tên cũng có thể được tạo và truy cập tại Cấp lệnh SQL, sử dụngChuẩn bịthực thi.

26657_27160voidtham số trong kèo bóng đá cúp c2 báo phân tích cú pháp, vượt qua NULL các giá trị cho chúng trong kèo bóng đá cúp c2 báo liên kết.) Liên kết cũng chỉ định Định dạng để 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ể được chỉ định tổng thể, hoặc trên mỗi cột. Phản hồi là BindComplete hoặc ErrorResponse.

kèo bóng đá cúp c2 ý: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à kèo bóng đá cúp c2 liên quan khi sử dụng giao thức truy vấn mở rộng.

Lập kế hoạch truy vấn cho các đối tượng đã chuẩn bị được đặt tên Khi thông báo phân tích được xử lý. Nếu một truy vấn sẽ liên tục được thực hiện với các tham số khác nhau, nó có thể là có lợi khi gửi một kèo bóng đá cúp c2 phân tích đơn lẻ có chứa Truy vấn được tham số hóa, theo sau là nhiều ràng buộc và thực thi kèo bóng đá cúp c2. Điều này sẽ tránh thay thế truy vấn trên mỗi thực thi.

28265_28617

kèo bóng đá cúp c2 ý:28699_29364

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 kèo bóng đá cúp c2 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 kèo bóng đá cúp c2 Con trỏFetch.

Một khi một cổng thông tin tồn tại, nó có thể được thực thi bằng cách sử dụng một thực thi kèo bóng đá cúp c2. Thông báo thực thi chỉ định tên cổng thông tin (trống Chuỗi biểu thị cổng thông tin không tên) và hàng kết quả tối đa Đếm (không có nghĩa là"Tìm nạp tất cả hàng "30357_30768

Nếu thực thi chấm dứt trước khi hoàn thành việc thực thi A Cổng thông tin (do đạt được số lượng hàng kết quả khác), nó sẽ Gửi kèo bóng đá cúp c2 PortalSusPends; sự xuất hiện của thông điệp này nói với Frontend rằng một thực thi khác nên được ban hành chống lại cùng một cổng thông tin để hoàn thành hoạt động. Các kèo bóng đá cúp c2 CommandComplete cho biết hoàn thành SQL nguồn SQL Lệnh không được gửi cho đến khi hoàn thành việc thực thi cổng thông tin. Do đó, một pha thực thi luôn bị chấm dứt bởi sự xuất hiện của chính xác một trong những thông điệp sau: CommandComplete, TrốngqueryResponse (nếu cổng thông tin được tạo từ trống chuỗi truy vấn), errorresponse hoặc portalsuspends.

Khi hoàn thành từng loạt kèo bóng đá cúp c2 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 kèo bóng đá cúp c2 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"31818_32318trong khiĐồng bộ hóa xử lý - Điều này đảm bảo rằng có kèo bóng đá cúp c2 và chỉ kèo bóng đá cúp c2 sẵn sàng được gửi cho mỗi đồng bộ.)

kèo bóng đá cúp c2 ý:Đồng bộ hóa kèo bóng đá cúp c2 gây ra khối giao dịch đã mở bằngbắt đầusẽ được đóng lại. Nó có thể phát hiện tình huống này kể từ ReadyForQuery thông báo bao gồm trạng thái giao dịch thông kèo bóng đá cúp c2.

Ngoài các hoạt động cơ bản, cần thiết, ở đó là kèo bóng đá cúp c2 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 kèo bóng đá cúp c2) Chỉ định tên của một cổng thông kèo bóng đá cúp c2 hiện có (hoặc một chuỗi trống cho cổng thông kèo bóng đá cúp c2 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 kèo bóng đá cúp c2; hoặc một cái gật đầu thông báo nếu cổng thông kèo bóng đá cúp c2 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 kèo bóng đá cúp c2 như vậy.

33389_34135

Tip:Trong hầu hết các tình huống, Frontend sẽ phát hành kèo bóng đá cúp c2 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.

Thông điệp gần gũi đóng một câu lệnh đã chuẩn bị hiện có hoặc Cổng thông kèo bóng đá cúp c2 và phát hành tài nguyên. Nó không phải là một lỗi để phát hành Đóng chống lại một tuyên bố hoặc tên cổng thông kèo bóng đá cúp c2 không tồn tại. Các Phản hồi thường kết thúc hoàn chỉnh, nhưng có thể là errorresponse Nếu một số khó khăn gặp phải trong khi phát hành tài nguyên. Lưu ý rằng việc đóng một tuyên bố đã chuẩn bị ngầm đóng bất kỳ Mở cổng được xây dựng từ câu lệnh đó.

Thông báo Flush 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 kèo bóng đá cúp c2 đượ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.

kèo bóng đá cúp c2 ý:35464_36005

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 kèo bóng đá cúp c2 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.

kèo bóng đá cúp c2 ý:Chức năng gọi phụ là kèo bóng đá cúp c2 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 kèo bóng đá cúp c2 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.

36868_37222

kèo bóng đá cúp c2 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 kèo bóng đá cúp c2. (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 loại hàng hoặc bộ 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 đi, cho dù xử lý chấm dứt thành công hoặc với lỗi.

noticeResponse

kèo bóng đá cúp c2 thông điệp cảnh báo đã được ban hành 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 kèo bóng đá cúp c2 giao thức phụ, kéo dài cho đến khi hoạt động hoàn thành.

Chế độ sao chép (truyền dữ liệu vào máy chủ) được bắt đầu khi phụ trợ thực thi kèo bóng đá cúp c2Sao chép từ StdinCâu lệnh SQL. Phần phụ trợ gửi kèo bóng đá cúp c2 CopyInresponse đến Mặt trận. Frontend sau đó sẽ gửi không hoặc nhiều hơn kèo bóng đá cúp c2 CopyData, tạo thành một luồng dữ liệu đầu vào. (kèo bóng đá cúp c2 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 kèo bóng đá cúp c2 copyDone (cho phép chấm dứt thành công) hoặc kèo bóng đá cúp c2 copyfail (sẽ gây raCopyTuyên bố 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 kèo bóng đá cúp c2).

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 kèo bóng đá cúp c2 copyfail), phần phụ trợ sẽ phát hành một kèo bóng đá cúp c2 ErrorResponse. NếuCopyLệnh đã được cấp thông qua trình điều khiển mở rộng kèo bóng đá cúp c2, phần phụ trợ bây giờ sẽ loại bỏ các kèo bóng đá cúp c2 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ếuCopy40111_40361

40372_40785Sao 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 kèo bóng đá cúp c2 (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 kèo bóng đá cúp c2 copyData và copyDone không mong muốn.

41486_41728

Có thể kèo bóng đá cúp c2 của NoticeResponse xen kẽ giữa các kèo bóng đá cúp c2 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 kèo bóng đá cúp c2 là tốt (xemPhần 44.2.6). Nếu không, bất kỳ loại kèo bóng đá cúp c2 nào khác ngoài copyData hoặc copyDone có thể được coi là chế độ sao chép kết thúc.

kèo bóng đá cúp c2 CopyInresponse và CopyouTresponse bao gồm Các trường thông báo cho số lượng cột trên mỗi Hàng và mã định dạng đang được sử dụng cho mỗi cột. (Như của Trình bày triển khai, tất cả các cột trong một đã choCopyHoạt động sẽ sử dụng cùng một định dạng, nhưng Thiết kế kèo bóng đá cúp c2 không giả định điều này.)

44.2.6. Hoạt động kèo bóng đá cúp c2 đồng bộ

Có một số trường hợp phụ trợ sẽ gửi các kèo bóng đá cúp c2 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 kèo bóng đá cúp c2 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 kèo bóng đá cúp c2 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 kèo bóng đá cúp c2 noticeResponse, ngay cả khi kết nối là Đang nhàn rỗi.

kèo bóng đá cúp c2 Parameterstatus 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 máy chủ. Ngoài ra, nếu kèo bóng đá cúp c2setLệnh được cuộn trở lại, kèo bóng đá cúp c2 Thông báo tham số thích hợp sẽ được tạo để báo cáo giá trị hiệu quả hiện tại.

Hiện tại có kèo bóng đá cúp c2 bộ tham số có dây cứng mà Parameterstatus sẽ được tạo: chúng làserver_version, server_encoding, client_encoding, is_superuser, session_Authorization, Datestyle, timezone, integer_datetimesStandard_Conforming_Strings. (server_encoding, timezoneinteger_datetimeskèo bóng đá cúp c2 được báo cáo bởi các bản phát hành trước 8.0;Standard_Conforming_Stringskhông được báo cáo bởi phát hành trước 8.1.) kèo bóng đá cúp c2 ý rằngserver_version, server_encodinginteger_datetimeslà giả tưởng giả đó không thể thay đổi sau khi khởi động. Tập hợp này có thể thay đổi trong Tương lai, hoặc thậm chí trở thành cấu hình. Theo đó, kèo bóng đá cúp c2 mặt trận chỉ nên bỏ qua tham số không hiểu hoặc quan tâm đến.

Nếu Frontend phát hành ANghelệnh, sau đó phần phụ trợ sẽ gửi một thông báo kèo bóng đá cúp c2 (không bị nhầm lẫn với NoticeResponse!) Bất cứ khi nàokèo bóng đá cúp c2 báolệnh được thực thi cho Tên kèo bóng đá cúp c2 báo giống nhau.

kèo bóng đá cúp c2 ý:Hiện tại, thông báo chỉ có thể được gửi bên ngoài kèo bóng đá cúp c2 giao dịch, và do đó nó sẽ không xảy ra ở giữa kèo bóng đá cúp c2 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

Trong quá trình xử lý truy vấn, Frontend có thể yêu cầu hủy bỏ truy vấn. Yêu cầu hủy không được gửi trực tiếp trên kết nối mở với phần phụ trợ vì lý do Hiệu quả thực hiện: Chúng tôi không muốn có phần 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 kèo bóng đá cúp c2 hình phạt trong trường hợp bình thường.

Để đư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 kèo bóng đá cúp c2 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.

Thông báo hủyRequest sẽ bị bỏ qua trừ khi nó chứa Dữ liệu chính tương tự (khóa PID và Bí mật) được chuyển đến Frontend Trong quá trình khởi động kết nối. Nếu yêu cầu khớp với PID và Khóa bí mật cho kèo bóng đá cúp c2 phụ trợ hiện đang thực hiện, việc xử lý Các truy vấn hiện tại bị hủy bỏ. (Trong triển khai hiện có, Điều này được thực hiện bằng cách gửi kèo bóng đá cúp c2 tín hiệu đặc biệt đến quá trình phụ trợ đó là xử lý truy vấn.)

Tín hiệu hủy có thể có hoặc không có bất kỳ ảnh hưởng nào - đối với 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 kèo bóng đá cúp c2 thông báo lỗi.

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

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ó kèo bóng đá cúp c2 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 kèo bóng đá cúp c2 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 kèo bóng đá cúp c2 chấm dứt và ngay lập tức đóng sự liên quan. Khi nhận được kèo bóng đá cúp c2 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 kèo bóng đá cúp c2 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.

49686_50289

50300_50472ChọnTruy vấ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 ngắt kết nối. Nếu truy vấn nằm ngoài bất kỳ khối giao dịch nào (bắt đầu...cam kếttrình tự) sau đó kết quả của nó có thể là cam kết trước khi ngắt kết nối được nhận ra.

44.2.9.SSLPhiên Mã hóa

nếuPostgreSQLđã được xây dựng vớiSSLHỗ trợ, Truyền kèo bóng đá cúp c2 phía trước/phụ trợ có thể được mã hóa bằng cách sử dụngSSL. Điều này cung cấp Bảo mật giao tiếp trong môi trường nơi những kẻ tấn công có thể có thể nắm bắt lưu lượng phiên. Để biết thêm thông kèo bóng đá cúp c2 về mã hóaPostgreSQLPhiên vớiSSL, xemPhần 16.7.

Để bắt đầuSSLkết nối được kết nối, phía trước Ban đầu gửi kèo bóng đá cúp c2 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 kèo bóng đá cúp c2 muốn trình diễnSSL, tương ứng. Frontend có thể đóng kết nối tại thời điểm này nếu nó là kèo bóng đá cúp c2 hài lòng với phản ứng. Để tiếp tục sauS, thực hiệnSSL52165_52223SSLĐặ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 kèo bóng đá cúp c2 thường. Trong trường hợp này StartupMessage và tất cả dữ liệu tiếp theo sẽ làSSL-encrypted. Để tiếp tục saun, Gửi phần khởi động kèo bóng đá cúp c2 thường và tiến hành mà không mã hóa.

Frontend cũng nên được chuẩn bị để xử lý kèo bóng đá cúp c2 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ổ sungSSLHỗ trợ choPOSTGRESQL. Trong trường hợp này, kết nối phải được đóng lại, nhưng frontend có thể chọn mở kèo bóng đá cúp c2 cái mới kết nối và tiến hành mà không yêu cầuSSL.

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

Trong khi bản thân giao thức kèo bóng đá cúp c2 cung cấp cách máy chủ buộcSSLMã hóa, quản trị viên có thể định cấu hình máy chủ thành Từ chối các phiên kèo bóng đá cúp c2 được mã hóa như là sản phẩm phụ của xác thực kiểm tra.