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 đá 88 đượ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 đá 88 được hỗ trợ của PostgreSQL.
Bạn có thể muốn xem cùng tỷ lệ kèo bóng đá 88 trang chohiện tạiPhiên bản hoặc tỷ lệ kèo bóng đá 88 trong các phiên bản được hỗ trợ khác được liệt kê ở trên thay thế.

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

Phần này mô tả luồng tỷ lệ kèo bóng đá 88 và ngữ nghĩa của mỗi loại tin nhắn. (Chi tiết về biểu diễn chính xác của mỗi tin nhắn xuất hiện trongPhần 52.7.) Có tỷ lệ kèo bóng đá 88 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 quy định đặc biệt cho các hoạt động không đồng bộ (bao gồm các phản hồi tỷ lệ kèo bóng đá 88 và hủy lệnh), có thể xảy ra bất cứ lúc nào sau giai đoạn khởi động.

52.2.1. Khởi nghiệp

Để bắt đầu phiên, Frontend mở kết nối đến máy chủ và gửi tin nhắn khởi động. tỷ lệ kèo bóng đá 88 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ó cũng xác định phiên bản giao thức cụ thể sẽ được sử dụng. (Tùy chọn, tỷ lệ kèo bóng đá 88 khởi động có thể bao gồm các cài đặt bổ sung cho các tham số thời gian chạy.) Sau đó, máy chủ sử dụng thông tin này và nội dung của các tệp cấu hình của nó (chẳng hạn nhưpg_hba.conf) Để xác định xem kết nối có được chấp nhận tạm thời hay tỷ lệ kèo bóng đá 88 và yêu cầu xác thực bổ sung nào (nếu có).

12813_13307

Chu kỳ xác thực kết thúc bằng máy chủ từ chối cố gắng kết nối (ErrorResponse) hoặc gửi xác thực.

tỷ lệ kèo bóng đá 88 tin nhắn 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 đó đóng ngay kết nối.

xác thực

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

xác thựckerberosv5

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

xác thựcCleartextPassword

Frontend hiện phải gửi Mật khẩu có 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ủ sẽ phản hồi bằng xác thực, nếu không nó sẽ trả lời với tỷ lệ kèo bóng đá 88 errorResponse.

xác thựcMD5Password

14584_1497014990_15064. (Hãy ghi nhớmd5 ()Hàm trả về kết quả của nó dưới dạng chuỗi hex.)

Xác thựcScmCredential

Phản hồi này chỉ có thể đối với các kết nối miền đơn vị cục bộ trên các nền tảng hỗ trợ các thông tin chứng thực SCM. Frontend phải phát hành một tỷ lệ kèo bóng đá 88 thông tin đăng nhập SCM và sau đó gửi một byte dữ liệu duy nhất. . .

xác thựcgss

Frontend hiện phải bắt đầu đàm phán GSSAPI. Frontend sẽ gửi tỷ lệ kèo bóng đá 88 GSSResponse với phần đầu tiên của luồng dữ liệu GSSAPI để đáp ứng với điều này. Nếu cần thêm tin nhắn, máy chủ sẽ phản hồi với xác thựcgsscontinue.

xác thựcpi

Frontend hiện phải bắt đầu đàm phán SSPI. Frontend sẽ gửi GSSResponse với phần đầu tiên của luồng dữ tỷ lệ kèo bóng đá 88 SSPI để đáp ứng điều này. Nếu cần thêm tin nhắn, máy chủ sẽ phản hồi với xác thựcgsscontinue.

xác thựcgsscontinue

tỷ lệ kèo bóng đá 88 này chứa dữ liệu phản hồi từ bước trước của đàm phán GSSAPI hoặc SSPI (xác thựcGSS, xác thựcSPI hoặc xác thực trước đây). Nếu dữ liệu GSSAPI hoặc SSPI trong tỷ lệ kèo bóng đá 88 này cho biết cần nhiều dữ liệu hơn để hoàn thành xác thực, thì Frontend phải gửi dữ liệu đó dưới dạng tỷ lệ kèo bóng đá 88 GSSResponse khác. Nếu xác thực GSSAPI hoặc SSPI được hoàn thành bởi tỷ lệ kèo bóng đá 88 này, máy chủ tiếp theo sẽ gửi xác thực để chỉ ra xác thực thành công hoặc errorResponse để chỉ ra lỗi.

xác thựcaSl

Frontend hiện phải bắt đầu tỷ lệ kèo bóng đá 88 cuộc đàm phán SASL, sử dụng tỷ lệ kèo bóng đá 88 trong các cơ chế SASL được liệt kê trong tin nhắn. Frontend sẽ gửi tỷ lệ kèo bóng đá 88 saslinitialresponse với tên của cơ chế đã chọn và phần đầu tiên của luồng dữ liệu SASL để đáp ứng với điều này. Nếu cần thêm các tin nhắn, máy chủ sẽ phản hồi với xác thựcaSlContinue. Nhìn thấyPhần 52.3Để biết chi tiết.

xác thựcaSlContinue

tỷ lệ kèo bóng đá 88 này chứa dữ liệu thách thức từ bước trước của đàm phán SASL (xác thựcasL hoặc trước đây xác thựcaSlContinue). Frontend phải trả lời bằng tin nhắn Saslresponse.

xác thựcaSlfinal

Xác thực SASL đã hoàn thành với dữ liệu dành riêng cho cơ chế bổ sung cho máy khách. Máy chủ tiếp theo sẽ gửi xác thực để chỉ ra xác thực thành công hoặc ErrorResponse để chỉ ra lỗi. tỷ lệ kèo bóng đá 88 này chỉ được gửi nếu cơ chế SASL chỉ định dữ liệu bổ sung sẽ được gửi từ máy chủ đến máy khách khi hoàn thành.

Đàm phánColversion

Máy chủ không hỗ trợ phiên bản giao thức nhỏ được khách hàng yêu cầu, nhưng không hỗ trợ phiên bản trước của giao thức; tỷ lệ kèo bóng đá 88 này cho biết phiên bản nhỏ được hỗ trợ cao nhất. tỷ lệ kèo bóng đá 88 này cũng sẽ được gửi nếu khách hàng yêu cầu các tùy chọn giao thức không được hỗ trợ (nghĩa là, bắt đầu bằng_PQ_.) trong gói khởi động. tỷ lệ kèo bóng đá 88 này sẽ được theo sau bởi ErrorResponse hoặc một tỷ lệ kèo bóng đá 88 cho biết sự thành công hay thất bại của xác thực.

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

Sau khi nhận được xác thực, frontend phải chờ thêm tin nhắn từ máy chủ. Trong giai đoạn này, một quá trình phụ trợ đang được bắt đầu, và Frontend chỉ là một người ngoài cuộc quan tâm. Vẫn có thể cố gắng khởi động không thành công (ErrorResponse) hoặc máy chủ từ chối hỗ trợ cho phiên bản giao thức nhỏ được yêu cầu (đàm phánEprotocolversion), nhưng trong trường hợp bình thường, phần phụ sẽ gửi một số tỷ lệ kèo bóng đá 88 tham số, backendKeyData và cuối cùng là sẵn sàng.

19531_19760

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

BackendKeyData

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

Parameterstatus

tỷ lệ kèo bóng đá 88 này tỷ lệ kèo bóng đá 88 cho Frontend về cài đặt (ban đầu) hiện tại của các tham số phụ trợ, chẳng hạn nhưclient_encodinghoặcDatestyle20508_20597Phần 52.2.7Để biết thêm chi tiết. Frontend không nên trả lời tin nhắn này, nhưng sẽ tiếp tục nghe tỷ lệ kèo bóng đá 88 tin nhắn ReadyForQuery.

ReadyForQuery

Khởi nghiệp được hoàn thành. Frontend hiện có thể phát hành tỷ lệ kèo bóng đá 88 lệnh.

ErrorResponse

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

noticeResponse

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

tỷ lệ kèo bóng đá 88 ReadyForQuery là cùng một tin nhắn mà phần phụ trợ sẽ phát hành sau mỗi chu kỳ lệnh. 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 một chu kỳ lệnh hoặc xem xét ReadyForQuery là kết thúc giai đoạn khởi động và mỗi chu kỳ lệnh tiếp theo.

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

21806_22458

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

CommandComplete

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

CopyInresponse

Phần phụ trợ đã sẵn sàng sao chép dữ tỷ lệ kèo bóng đá 88 từ phía trước sang bảng; nhìn thấyPhần 52.2.6.

CopyouTresponse

Phần phụ trợ đã sẵn sàng sao chép dữ tỷ lệ kèo bóng đá 88 từ bảng đến mặt trận; nhìn thấyPhần 52.2.6.

ROWDescrip

Cho biết rằng tỷ lệ kèo bóng đá 88 hàng sắp được trả lại để đáp ứng với AChọn, Fetch, v.v. Nội dung của tỷ lệ kèo bóng đá 88 này 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 đá 88 Datarow cho mỗi hàng được trả về phía trước.

Datarow

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

trốngQueryResponse

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

errorResponse

Đã xảy ra lỗi.

ReadyForQuery

23997_24329

noticeResponse

24396_24557

Phản hồi cho AChọnTruy vấn (hoặc tỷ lệ kèo bóng đá 88 truy vấn khác trả về tỷ lệ kèo bóng đá 88 bộ hàng, chẳng hạn nhưGiải thíchhoặcshow24763_24861CopyĐến hoặc từ Frontend gọi giao thức đặc biệt như được mô tả trongPhần 52.2.6. Tất cả các loại truy vấn khác thường chỉ tạo ra một tỷ lệ kèo bóng đá 88 CommandComplete.

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

Nếu nhận được chuỗi hoàn toàn trống (tỷ lệ kèo bóng đá 88 có nội dung nào khác ngoài khoảng trắng)

Trong trường hợp có lỗi, ErrorResponse được cấp theo sau là ReadyForQuery. Tất cả việc xử lý tiếp theo của chuỗi truy vấn đều 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 tỷ lệ kèo bóng đá 88 qua chuỗi các tin nhắn đượ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 tỷ lệ kèo bóng đá 88 giá trị truy xuất luôn luôn là văn bản, ngoại trừ khi lệnh đã cho làFetchTừ con trỏ được khai tỷ lệ kèo bóng đá 88 vớinhị phânTùy chọn. Trong trường hợp đó, các giá trị được truy xuất ở định dạng nhị phân. Các mã định dạng được đưa ra trong tỷ lệ kèo bóng đá 88 Rowdescrip cho biết định dạng nào đang được sử dụng.

tỷ lệ kèo bóng đá 88 frontend phải được chuẩn bị để chấp nhận các tin nhắn ErrorResponse và NoticeResponse bất cứ khi nào nó mong đợi bất kỳ loại tin nhắn nào khác. Xem thêmPhần 52.2.7Liên quan đến tỷ lệ kèo bóng đá 88 tin nhắn mà phần phụ trợ có thể tạo do tỷ lệ kèo bóng đá 88 sự kiện bên ngoài.

26627_26839

52.2.3. Truy vấn mở rộng

27009_27384

Trong giao thức mở rộng, Frontend trước tiên gửi một tỷ lệ kèo bóng đá 88 phân tích, chứa một chuỗi truy vấn văn bản, tùy chọn một số thông tin về các kiểu giữ chỗ dữ liệu và tên của một đối tượng định tuyến chuẩn bị đích (một chuỗi trống chọn câu lệnh được chuẩn bị không được đặt 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 ra các loại dữ liệu theo cách tương tự như nó sẽ làm cho các hằng số chuỗi theo nghĩa đen chưa được xác định.

Lưu ý

tỷ lệ kèo bóng đá 88 loại dữ liệu tham số có thể được xác định bằng cách đặt nó thành 0 hoặc bằng cách làm cho mảng của loại tham số OIDS ngắn hơn số lượng ký hiệu tham số ($n) Được sử dụng trong chuỗi truy vấn. tỷ lệ kèo bóng đá 88 trường hợp đặc biệt khác là loại tham số có thể được chỉ định làvoid(nghĩa là oid củavoidPseudo-type). Điều này có nghĩa là để cho phép các ký hiệu tham số được sử dụng cho các tham số chức năng thực sự là các tham số. tỷ lệ kèo bóng đá 88 thường không có bối cảnh trong đó mộtvoidTham số có thể được sử dụng, nhưng nếu tỷ lệ kèo bóng đá 88 biểu tượng tham số như vậy xuất hiện trong danh sách tham số của hàm, nó sẽ bị bỏ qua tỷ lệ kèo bóng đá 88 cách hiệu quả. Ví dụ: cuộc gọi chức năng nhưfoo ($ 1, $ 2, $ 3, $ 4)có thể khớp với tỷ lệ kèo bóng đá 88 hàm với hai trong và hai đối số ra, nếu$ 3$ 4được chỉ định là có loạivoid.

Lưu ý

Chuỗi truy vấn có trong tỷ lệ kèo bóng đá 88 phân tích không thể bao gồm nhiều câu lệnh SQL; khác là một 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 Trận đấu đơ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 câu lệnh hoặc cổng được chuẩn bị chứa nhiều lệnh sẽ làm phức tạp giao thức.

Nếu được tạo thành công, tỷ lệ kèo bóng đá 88 đố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 bị phá hủy rõ ràng. tỷ lệ kèo bóng đá 88 tuyên bố được chuẩn bị không tên chỉ kéo dài cho đến khi câu lệnh phân tích điện phân tiếp theo chỉ định câu lệnh không tên là đích được đưa ra. . Các câu lệnh đã chuẩn bị cũng có thể được tạo và truy cập ở cấp lệnh SQL, sử dụngChuẩn bịthực thi.

Sau khi có một câu lệnh đã chuẩn bị, nó có thể được sẵn sàng để thực thi bằng tin nhắn liên kết. tỷ lệ kèo bóng đá 88 ràng buộc cho biết tên của câu lệnh được chuẩn bị nguồn (chuỗi trống biểu thị câu lệnh đã chuẩn bị không tên), tên của cổng thông tin đích (chuỗi trống biểu thị cổng thông tin không tên) và các giá trị sẽ sử dụng cho bất kỳ người giữ chỗ tham số nào có trong câu lệnh đã chuẩn bị. Bộ tham số được cung cấp phải phù hợp với các thông số cần thiết bởi câu lệnh đã chuẩn bị. (Nếu bạn đã tuyên bố bất kỳvoid30567_30830

Lưu ý

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

Kế hoạch truy vấn thường xảy ra khi tỷ lệ kèo bóng đá 88 liên kết được xử lý. Nếu câu lệnh đã chuẩn bị không có tham số hoặc được thực thi nhiều lần, máy chủ có thể lưu gói đã tạo và sử dụng lại nó trong các tỷ lệ kèo bóng đá 88 ràng buộc tiếp theo cho cùng một câu lệnh đã chuẩn bị. Tuy nhiên, nó sẽ chỉ làm như vậy nếu nó thấy rằng một kế hoạch chung có thể được tạo ra không kém hiệu quả hơn nhiều so với kế hoạch phụ thuộc vào các giá trị tham số cụ thể được cung cấp. Điều này xảy ra trong suốt cho đến khi giao thức có liên quan.

31655_32227Tuyên bố con trỏFetch.

Sau khi tồn tại một cổng thông tin, nó có thể được thực thi bằng tin nhắn thực thi. tỷ lệ kèo bóng đá 88 thực thi chỉ định tên cổng thông tin (chuỗi trống biểu thị cổng thông tin không tên) và số lượng hàng kết quả tối đa (không có nghĩa làTìm nạp tất cả tỷ lệ kèo bóng đá 88 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 các trường hợp khác, lệnh luôn được thực thi để hoàn thành và số lượng hàng bị bỏ qua. Các câu trả lời có thể xảy ra đối với thực thi giống như những câu trả lời được mô tả ở trên cho các truy vấn được phát hành tỷ lệ kèo bóng đá 88 qua giao thức truy vấn đơn giản, ngoại trừ việc thực thi không khiến ReadyForQuery hoặc Rowdes mô tả.

32979_33630

Khi hoàn thành mỗi loạt các tin nhắn trình độ mở rộng, Frontend sẽ phát hành tin nhắn đồng bộ hóa. tỷ lệ kèo bóng đá 88 không tham số này khiến phần phụ trợ đóng giao dịch hiện tại nếu nó không ở trongbắt đầu/cam kếtkhối giao dịch (Đóng33986_34454trong khiXử lý đồng bộ hóa - Điều này đảm bảo rằng có tỷ lệ kèo bóng đá 88 và chỉ tỷ lệ kèo bóng đá 88 ReadyForQuery được gửi cho mỗi lần đồng bộ hóa.)

Lưu ý

SYNC tỷ lệ kèo bóng đá 88 gây ra khối giao dịch được mở bằngbắt đầusẽ được đóng lại. Có thể phát hiện tình huống này vì tỷ lệ kèo bóng đá 88 ReadyForQuery bao gồm thông tin trạng thái giao dịch.

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

35023_35383

35389_36091

tip

36142_36319

36332_36750

tỷ lệ kèo bóng đá 88 Flush không gây ra bất kỳ đầu ra cụ thể nào được tạo, nhưng buộc phần phụ trợ để cung cấp bất kỳ dữ liệu nào đang chờ xử lý trong bộ đệm đầu ra của nó. Một tuôn ra phải được gửi sau khi bất kỳ lệnh trình độ mở rộng nào 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 ban hành nhiều lệnh hơn. Nếu không có Flush, các tin nhắn đượ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.

Lưu ý

tỷ lệ kèo bóng đá 88 truy vấn đơn giản xấp xỉ tương đương với chuỗi phân tích, BIND, Cổng mô tả, thực thi, đóng, đồng bộ hóa, sử dụng câu lệnh được 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à nó sẽ chấp nhận nhiều câu lệnh SQL trong chuỗi truy vấn, tự động thực hiện trình tự BIND/MÔ TẢ/thực thi cho mỗi câu liên tiếp. Một điểm khác biệt khác là nó sẽ không trả về các tin nhắn Parsecomplete, BindComplete, CloseComplete hoặc Nodata.

52.2.4. Pipelining

Sử dụng giao thức truy vấn mở rộng cho phépđường ống, có nghĩa là gửi tỷ lệ kèo bóng đá 88 loạt các truy vấn mà không chờ đợi trước đó để hoàn thành. Điều này làm giảm số lượng các chuyến đi vòng mạng cần thiết để hoàn thành tỷ lệ kèo bóng đá 88 loạt các hoạt động nhất định. Tuy nhiên, người dùng phải xem xét cẩn thận hành vi cần thiết nếu tỷ lệ kèo bóng đá 88 trong các bước không thành công, vì các truy vấn sau sẽ đã được bay đến máy chủ.

tỷ lệ kèo bóng đá 88 cách để đối phó với điều đó là làm cho toàn bộ chuỗi truy vấn trở thành tỷ lệ kèo bóng đá 88 giao dịch duy nhất, kết thúc nó trongbắt đầu...cam kết. Tuy nhiên, điều này không giúp ích gì nếu tỷ lệ kèo bóng đá 88 người muốn tỷ lệ kèo bóng đá 88 số lệnh cam kết độc lập với người khác.

Giao thức truy vấn mở rộng cung cấp một cách khác để quản lý mối quan tâm này, đó là bỏ qua việc gửi tin nhắn đồng bộ hóa giữa các bước phụ thuộc. Vì sau khi bị lỗi, phần phụ trợ sẽ bỏ qua các tỷ lệ kèo bóng đá 88 lệnh cho đến khi tìm thấy đồng bộ hóa, điều này cho phép các lệnh sau đó trong đường ống được bỏ qua khi một lệnh trước đó không thành công, mà không cần máy khách phải quản lý điều đó một cách rõ ràng vớiBắt đầucam kết. Có thể phân tách các phân đoạn độc lập của đường ống có thể được phân tách bằng các tỷ lệ kèo bóng đá 88 đồng bộ hóa.

Nếu khách hàng tỷ lệ kèo bóng đá 88 phát hành rõ ràngbắt đầu, thì mỗi lần đồng bộ hóa thường gây ra tỷ lệ kèo bóng đá 88 ẩn úycam kếtNếu bước trước đó đã thành công hoặc ẩn úyrollbackNếu họ thất bại. Tuy nhiên, có tỷ lệ kèo bóng đá 88 vài lệnh DDL (chẳng hạn nhưTạo cơ sở dữ tỷ lệ kèo bóng đá 88) Không thể được thực thi bên trong tỷ lệ kèo bóng đá 88 khối giao dịch. Nếu tỷ lệ kèo bóng đá 88 trong số này được thực hiện trong tỷ lệ kèo bóng đá 88 đường ống, thì khi thành công, sẽ buộc tỷ lệ kèo bóng đá 88 cam kết ngay lập tức để bảo tồn tính nhất quán của cơ sở dữ liệu. Đồng bộ hóa ngay sau tỷ lệ kèo bóng đá 88 trong số này không có hiệu lực ngoại trừ để trả lời với ReadyForQuery.

Khi sử dụng phương pháp này, phải hoàn thành đường ống phải được xác định bằng cách đếm các tin nhắn ReadyForQuery và chờ điều đó đạt được số lượng đồng bộ hóa được gửi. Đếm các phản hồi hoàn thành lệnh là không đáng tin cậy, vì một số lệnh có thể không được thực thi và do đó không tạo ra tỷ lệ kèo bóng đá 88 hoàn thành.

52.2.5. Chức năng gọi

Hàm gọi phụ cho phép máy khách yêu cầu 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ữ tỷ lệ kèo bóng đá 88PG_PROCDanh mục hệ thống. Máy khách phải có quyền thực thi cho chức năng.

Lưu ý

Chức năng gọi phụ là tỷ lệ kèo bóng đá 88 tính năng di sản có lẽ được tránh tốt nhất trong mã mới. Kết quả tương tự có thể được thực hiện bằng cách thiết lập tỷ lệ kèo bóng đá 88 câu lệnh đã chuẩn bịChọn chức năng ($ 1, ...). Chu trình cuộc gọi chức năng sau đó có thể được thay thế bằng BIND/EXECUTE.

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

tỷ lệ kèo bóng đá 88 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 tin nhắn. (Lưu ý rằng giao thức cuộc gọi chức năng chỉ có thể xử lý tỷ lệ kèo bóng đá 88 kết quả vô hướng, không phải là loại hàng hoặc tập hợp kết quả.)

ReadyForQuery

41791_41933

noticeResponse

Một tỷ lệ kèo bóng đá 88 cảnh báo đã được ban hành liên quan đến cuộc gọi chức năng. Các tỷ lệ kèo bóng đá 88 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.

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

TheCopyLệnh cho phép truyền dữ liệu hàng loạt tốc độ cao đến hoặc từ máy chủ. Các hoạt động sao chép và sao chép mỗi lần chuyển kết nối thành tỷ lệ kèo bóng đá 88 giao thức phụ riêng biệt, kéo dài cho đến khi hoạt động hoàn tất.

Chế độ sao chép (truyền dữ tỷ lệ kèo bóng đá 88 vào máy chủ) được bắt đầu khi phần phụ trợ thực thiSao chép từ Stdin42725_43186CopyCâu tỷ lệ kèo bóng đá 88nh SQL bị lỗi). Phần phụ trợ sau đó trở lại chế độ xử lý tỷ lệ kèo bóng đá 88nh mà nó đã ở trước43355_4336143366_43517

43523_43685CopyLệnh đã được cấp thông qua một tỷ lệ kèo bóng đá 88 trình biết mở rộng, phần phụ trợ bây giờ sẽ loại bỏ các tin nhắn phía trước cho đến khi nhận được tin nhắn đồng bộ hóa, sau đó nó sẽ phát hành ReadyForQuery và trở lại xử lý thông thường. NếuCopyLệnh đã được cấp trong một tỷ lệ kèo bóng đá 88 truy vấn đơn giản, phần còn lại của tin nhắn đó bị loại bỏ và ReadyForQuery được cấp. Trong cả hai trường hợp, bất kỳ tin nhắn copyData, copyDone hoặc copyfail nào tiếp theo do frontend ban hành sẽ đơn giản là bị loại bỏ.

Phần phụ trợ sẽ bỏ qua các tin nhắn tuôn ra và đồng bộ hóa nhận được trong chế độ sao chép. Nhận bất kỳ loại tin nhắn không sao chép nào khác tạo thành tỷ lệ kèo bóng đá 88 lỗi sẽ hủy bỏ trạng thái sao chép như được mô tả ở trên. .Sao chép từ Stdin.)

Chế độ sao chép (truyền dữ tỷ lệ kèo bóng đá 88 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 tỷ lệ kèo bóng đá 88 CopyouTresponse đến phía trước, theo sau là không có hoặc nhiều tin nhắn copyData (luôn luôn một mỗi hàng), theo sau là copyDone. Phần phụ trợ sau đó trở lại chế độ xử lý lệnh mà nó đã ở trướcCopyBắt đầu và gửi CommandComplete. Frontend tỷ lệ kèo bóng đá 88 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 tin nhắn copyData và copyDone tỷ lệ kèo bóng đá 88 mong muốn.

45246_45476

Có thể tin nhắn noticeResponse và parameterstatus được xen kẽ giữa các tin nhắn copyData; Frontends phải xử lý các trường hợp này và cũng nên được chuẩn bị cho các loại tin nhắn tỷ lệ kèo bóng đá 88 đồng bộ khác (xemPhần 52.2.7). Nếu tỷ lệ kèo bóng đá 88, bất kỳ loại tin nhắn nào khác ngoài COPYDATA hoặc COPYDONE có thể được coi là Chế độ sao chép kết thúc.

Có tỷ lệ kèo bóng đá 88 chế độ liên quan đến bản sao khác được gọi là Copy-Both, cho phép truyền dữ liệu hàng loạt tốc độ cao sangTừ máy chủ. Copy-Both Mode được bắt đầu khi phần phụ trợ trong chế độ Walsender thực thistart_Replication46216_47213Phần 52.4Để biết thêm tỷ lệ kèo bóng đá 88 tin về Subrotocol được truyền qua chế độ sao chép-cả.

Tin nhắn CopyInresponse, CopyouTresponse và Copybothresponse bao gồm các trường tỷ lệ kèo bóng đá 88 cho số lượng cột mỗi hàng và mã định dạng được sử dụng cho mỗi cột. (Kể từ khi triển khai hiện tại, tất cả các cột trong một đã cho47680_47686Hoạt động sẽ sử dụng cùng tỷ lệ kèo bóng đá 88 định dạng, nhưng thiết kế tin nhắn không giả sử điều này.)

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

Có tỷ lệ kèo bóng đá 88 số trường hợp phụ trợ sẽ gửi các tin nhắn không được nhắc cụ thể bởi luồng lệnh của Frontend. Frontends phải được chuẩn bị để đối phó với các tin nhắn này bất cứ lúc nào, ngay cả khi không tham gia vào tỷ lệ kèo bóng đá 88 truy vấn. 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 tỷ lệ kèo bóng đá 88 tin nhắn NoticeResponse được tạo do hoạt động bên ngoài; Ví dụ: nếu quản trị viên cơ sở dữ liệu ra lệnhHồiFastHàngTắ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 đó, 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 đá 88 NoticeResponse, ngay cả khi kết nối không hoạt động.

Thông số tỷ lệ kèo bóng đá 88 sẽ được tạo bất cứ khi nào giá trị hoạt động thay đổi cho bất kỳ tham số nào mà phần phụ trợ tin rằng Frontend nên biết. Thông thường nhất là điều này xảy ra để đáp ứng vớisettỷ lệ kèo bóng đá 88nh SQL đượ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ể thay đổi trạng thái tham số 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 tỷ lệ kèo bóng đá 88setLệnh được quay lại, một tỷ lệ kèo bóng đá 88 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ó tỷ lệ kèo bóng đá 88 bộ tham số có dây cứng mà tham số sẽ được tạo ra: chúng làserver_version, server_encoding, client_encoding, application_name, is_superuser, session_Authorization, Datestyle, IntervalStyle, timezone, integer_datetimesStandard_Conforming_Strings. (server_encoding, timezoneinteger_datetimesKhông được tỷ lệ kèo bóng đá 88 cáo bởi các bản phát hành trước 8.0;Standard_Conforming_StringsKhông được tỷ lệ kèo bóng đá 88 cáo bởi các bản phát hành trước 8.1;IntervalStyleKhông được tỷ lệ kèo bóng đá 88 cáo bởi các bản phát hành trước 8.4;application_nameKhông được tỷ lệ kèo bóng đá 88 cáo bởi các bản phát hành trước 9.0.) Lưu ý rằngserver_version, server_encodinginteger_datetimes50627_50870

Nếu Frontend phát hành AngheLệnh, sau đó phần phụ trợ sẽ gửi tỷ lệ kèo bóng đá 88 tin nhắn (không bị nhầm lẫn với NoticeResponse!) Bất cứ khi nào Atỷ lệ kèo bóng đá 88tỷ lệ kèo bóng đá 88nh được thực thi cho cùng tên kênh.

Lưu ý

Hiện tại, tỷ lệ kèo bóng đá 88 chỉ có thể được gửi bên ngoài một giao dịch và do đó nó sẽ không xảy ra ở giữa một chuỗi phản hồi lệnh, mặc dù nó có thể xảy ra ngay trước khi ReadyForQuery. Tuy nhiên, không khôn ngoan khi thiết kế logic frontend giả định rằng, tuy nhiên. Thực tiễn tốt là có thể chấp nhận thông báoResponse tại bất kỳ điểm nào trong giao thức.

52.2.8. 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 truy vấn. Yêu cầu Hủy tỷ lệ kèo bóng đá 88 được gửi trực tiếp trên kết nối mở đến phần phụ trợ vì lý do hiệu quả thực hiện: Chúng tôi tỷ lệ kèo bóng đá 88 muốn có phần phụ trợ liên tục kiểm tra đầu vào mới từ phía trước trong quá trình xử lý truy vấn. Hủy yêu cầu phải tương đối tỷ lệ kèo bóng đá 88 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, Frontend mở kết nối mới đến máy chủ và gửi tin nhắn DECCEQUEST, thay vì tỷ lệ kèo bóng đá 88 StartupMessage thường được gửi qua kết nối mới. Máy chủ 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 cho tỷ lệ kèo bóng đá 88 yêu cầu hủy.

52542_52949

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

53246_53636

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 qua liên kết giao tiếp phía trước/phụ trợ tỷ lệ kèo bóng đá 88 thường, nên có thể yêu cầu hủy bỏ bởi bất kỳ quy trình nào, không chỉ là truy vấn của họ sẽ bị hủy. Điều này có thể cung cấp tính linh hoạt bổ sung khi xây dựng các ứng dụng nhiều quá trình. Nó cũng đưa ra một 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ằng cách yêu cầu khóa bí mật được tạo động để được cung cấp trong các yêu cầu hủy bỏ.

52.2.9. 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à ngay lập tức đóng kết nối. Khi nhận được tin nhắn này, phụ trợ đóng kết nối và chấm dứt.

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

Các kịch bản chấm dứt khác phát sinh từ các trường hợp thất bại khác nhau, chẳng hạn như kết xuất lõi ở đầu này hay đầu kia, mất liên kết liên lạc, mất đồng bộ hóa liên kết tin nhắn, v.v. Frontend có tùy chọn khởi chạy tỷ lệ kèo bóng đá 88 phụ trợ mới bằng cách giới thiệu lại 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 nhận được tỷ lệ kèo bóng đá 88 loại tin nhắn không thể nhận ra, vì điều này có thể cho thấy mất đồng bộ hóa giới hạn tin nhắn.

Đối với việc chấm dứt bình thường hoặc bất thường, bất kỳ giao dịch mở nào cũng được cuộn trở lại, không cam kết. Tuy nhiên, người ta nên lưu ý rằng nếu tỷ lệ kèo bóng đá 88 frontend ngắt kết nối trong khi khôngChọ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 sự 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ể được thực hiện trước khi ngắt kết nối được nhận ra.

52.2.10.SSLMã hóa phiên

nếuPostgreSQLđược xây dựng vớiSSLHỗ trợ, giao tiếp 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 truyền tỷ lệ kèo bóng đá 88 trong các môi trường nơi những kẻ tấn công có thể nắm bắt lưu lượng phiên. Để biết thêm tỷ lệ kèo bóng đá 88 tin về mã hóaPostgreSQLPhiên vớiSSL, xemPhần 18.9.

để bắt đầuSSL56775_56936Shoặcn, chỉ ra rằng nó sẵn sàng hoặc tỷ lệ kèo bóng đá 88 muốn thực hiệnSSL, 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 đá 88 hài lòng với phản hồi. Để tiếp tục sauS, thực hiệnSSLBắt tay khởi động (không được mô tả ở đây, tỷ lệ kèo bóng đá 88 phần củaSSLĐặc điểm kỹ thuật) với máy chủ. Nếu điều này thành công, tiếp tục gửi cho StartupMessage tỷ lệ kèo bóng đá 88 thường. Trong trường hợp này, startupMessage và tất cả các dữ liệu tiếp theo sẽ làSSL-encrypted. Để tiếp tục saun, Gửi phần khởi động tỷ lệ kèo bóng đá 88 thường và tiến hành mà không cần mã hóa.

Frontend cũng nên được chuẩn bị để xử lý phản hồi ErrorMessage 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. .SSL.

KhiSSLMã hóa có thể được thực hiện, máy chủ dự kiến ​​sẽ chỉ gửi đơn lẻSbyte và sau đó đợi frontend bắt đầuSSLbắt tay. Nếu các byte bổ sung có sẵn để đọc tại thời điểm này, điều đó có thể có nghĩa là tỷ lệ kèo bóng đá 88 người đàn ông đang cố gắng thực hiện tỷ lệ kèo bóng đá 88 cuộc tấn công quá trình đệm bộ đệm (CVE-2021-23222). Frontends nên được mã hóa để đọc chính xác tỷ lệ kèo bóng đá 88 byte từ ổ cắm trước khi chuyển ổ cắm sang thư viện SSL của họ hoặc coi nó là vi phạm giao thức nếu họ thấy họ đã đọc Byte bổ sung.

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

Trong khi bản thân giao thức tỷ lệ kèo bóng đá 88 cung cấp cách để máy chủ buộcSSL59189_59320