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

48.6. Plugin đầu tỷ lệ kèo bóng đá trực tuyến hôm nay mã logic

Một plugin đầu tỷ lệ kèo bóng đá trực tuyến hôm nay ví dụ có thể được tìm thấy trongPREDT/TEST_DECODINGSubdirectory của cây nguồn PostgreSQL.

48.6.1. Chức năng khởi tạo

Plugin đầu tỷ lệ kèo bóng đá trực tuyến hôm nay được tải bằng cách tự động tải thư viện dùng chung với tên plugin đầu tỷ lệ kèo bóng đá trực tuyến hôm nay làm tên cơ sở thư viện. Đường dẫn tìm kiếm thư viện thông thường được sử dụng để định vị thư viện. Để cung cấp các cuộc gọi lại plugin đầu tỷ lệ kèo bóng đá trực tuyến hôm nay cần thiết và để chỉ tỷ lệ kèo bóng đá trực tuyến hôm nay rằng thư viện thực sự là một plugin đầu tỷ lệ kèo bóng đá trực tuyến hôm nay, nó cần cung cấp một chức năng có tên_pg_output_plugin_init. Hàm này được thông qua một cấu trúc cần được lấp đầy bằng các con trỏ chức năng gọi lại cho các hành động riêng lẻ.

Typedef Struct OutputPluginCallbacks

    Logicaldecodestartupcb startup_cb;
    LogicalDecodeBeginCB BẮT ĐẦU_CB;
    LogicalDecodeChangecb Change_cb;
    Logicaldecodetruncatecb cắt ngắn_cb;
    Logicaldecodecommitcb cam kết_cb;
    Logicaldecodemessagecb message_cb;
    Logicaldecodefilterbyorigincb filter_by_origin_cb;
    Logicaldecodeshutdowncb shutdown_cb;
 Outputplugincallbacks;

typedef void ( *logicOutputplugIninit) (struct outputplugincallbacks *cb);

TheBEGIN_CB, Change_cbcam kết_cbgọi lại là bắt buộc, trong khistartup_cb, Filter_by_origin_cb, ​​cắt ngắn_cbshutdown_cblà tùy chọn. Nếu nhưcắt ngắn_cbkhông được đặt mà làcắt ngắnsẽ được tỷ lệ kèo bóng đá trực tuyến hôm nay mã, hành động sẽ bị bỏ qua.

48.6.2. Khả năng

Để giải mã, định dạng và thay đổi đầu tỷ lệ kèo bóng đá trực tuyến hôm nay, các plugin đầu tỷ lệ kèo bóng đá trực tuyến hôm nay có thể sử dụng hầu hết cơ sở hạ tầng bình thường của phụ trợ, bao gồm các chức năng đầu tỷ lệ kèo bóng đá trực tuyến hôm nay. Chỉ đọc quyền truy cập vào các mối quan hệ được cho phép miễn là chỉ có các quan hệ được truy cập mà đã được tạo bởiinitDBtrongpg_catalogSchema hoặc đã được đánh dấu là các bảng danh mục được cung cấp của người dùng bằng cách sử dụng

ALTER BẢNG user_catalog_table set (user_catalog_table = true);
Tạo bảng khác_catalog_table (văn bản dữ liệu) với (user_catalog_table = true);

Bất kỳ hành động nào dẫn đến gán ID giao dịch đều bị cấm. Rằng, trong số những người khác, bao gồm ghi vào bảng, thực hiện các thay đổi DDL và gọipg_cien_xact_id ().

48.6.3. Chế độ đầu tỷ lệ kèo bóng đá trực tuyến hôm nay

Cuộc gọi lại plugin đầu tỷ lệ kèo bóng đá trực tuyến hôm nay có thể truyền dữ liệu cho người tiêu dùng ở các định dạng gần như tùy ý. Đối với một số trường hợp sử dụng, như xem các thay đổi thông qua SQL, trả về dữ liệu trong một loại dữ liệu có thể chứa dữ liệu tùy ý (ví dụ:bytea) là cồng kềnh. Nếu plugin đầu tỷ lệ kèo bóng đá trực tuyến hôm nay chỉ xuất dữ liệu văn bản trong mã hóa của máy chủ, thì có thể khai báo rằng bằng cách đặtOutputPlugInOptions.Output_Typeđếnoutput_plugin_textual_outputthay vìoutput_plugin_binary_outputtrongGọi lại khởi động. Trong trường hợp đó, tất cả dữ liệu phải có trong mã hóa của máy chủ để ATextDatum có thể chứa nó. Điều này được kiểm tra trong các bản dựng hỗ trợ xác nhận.

48.6.4. Gọi cho plugin đầu tỷ lệ kèo bóng đá trực tuyến hôm nay

Một plugin đầu tỷ lệ kèo bóng đá trực tuyến hôm nay được thông báo về các thay đổi đang xảy tỷ lệ kèo bóng đá trực tuyến hôm nay thông qua các cuộc gọi lại khác nhau mà nó cần cung cấp.

Giao dịch đồng thời được tỷ lệ kèo bóng đá trực tuyến hôm nay mã theo thứ tự cam kết và chỉ các thay đổi thuộc về một giao dịch cụ thể được tỷ lệ kèo bóng đá trực tuyến hôm nay mã giữaBắt đầucam kếtgọi lại. Các giao dịch đã được cuộn trở lại rõ ràng hoặc ngầm không bao giờ được tỷ lệ kèo bóng đá trực tuyến hôm nay mã. Các điểm lưu thành công được gấp lại vào giao dịch có chứa chúng theo thứ tự chúng được thực hiện trong giao dịch đó.

Lưu ý

Chỉ các giao dịch đã được xử lý an toàn vào đĩa sẽ được tỷ lệ kèo bóng đá trực tuyến hôm nay mã. Điều đó có thể dẫn đến mộtcam kếtKhông được tỷ lệ kèo bóng đá trực tuyến hôm nay mã ngay lập tức theo saupg_logical_slot_get_changes ()Khisynchronous_commitđược đặt thànhTẮT.

48.6.4.1. Khởi động gọi lại

Tùy chọnstartup_cbCallback được gọi bất cứ khi nào một khe sao

15559_15763

Theis_initTham số sẽ đúng khi khe sao chép được tạo và sai nếu không.Tùy chọnTruyền vào một cấu trúc của các tùy chọn mà các plugin đầu tỷ lệ kèo bóng đá trực tuyến hôm nay có thể đặt:

Typedef Struct OutputPlugInOptions

    OutputPlugInOutputType output_type;
    bool nhận_rewrites;
 OutputPlugInOptions;

output_typephải được đặt thànhoutput_plugin_textual_outputhoặcoutput_plugin_binary_output. Xem thêmPhần 48.6.3. Nếu nhưnhận_rewriteslà đúng, plugin đầu tỷ lệ kèo bóng đá trực tuyến hôm nay cũng sẽ được gọi cho các thay đổi được thực hiện bởi các bản viết lại heap trong các hoạt động DDL nhất định. Đây là những điều đáng quan tâm đối với các plugin xử lý sao chép DDL, nhưng chúng yêu cầu xử lý đặc biệt.

Cuộc gọi lại khởi động sẽ xác nhận các tùy chọn có trongctx- output_plugin_options. Nếu plugin đầu tỷ lệ kèo bóng đá trực tuyến hôm nay cần có trạng thái, nó có thể sử dụngctx- output_plugin_privateĐể lưu trữ nó.

48.6.4.2. Tắt máy gọi lại

Tùy chọnshutdown_cbCallback được gọi bất cứ khi nào một khe sao chép hoạt động trước đây không được sử dụng nữa và có thể được sử dụng để giải quyết các tài nguyên riêng tư cho plugin đầu tỷ lệ kèo bóng đá trực tuyến hôm nay. Khe không nhất thiết phải bị loại bỏ, phát trực tuyến chỉ bị dừng.

17643_17724

48.6.4.3. Giao dịch bắt đầu gọi lại

Yêu cầuBEGIN_CBGọi lại được gọi bất cứ khi nào bắt đầu một giao dịch đã được tỷ lệ kèo bóng đá trực tuyến hôm nay mã. Các giao dịch bị hủy bỏ và nội dung của chúng không bao giờ được tỷ lệ kèo bóng đá trực tuyến hôm nay mã.

18226_18365

TheTXNTham số chứa thông tin meta về giao dịch, như dấu thời gian mà nó đã được cam kết và XID của nó.

48.6.4.4. Gọi lại kết thúc giao dịch

Yêu cầucam kết_cbGọi lại được gọi bất cứ khi nào một cam kết giao dịch đã được tỷ lệ kèo bóng đá trực tuyến hôm nay mã. TheChange_cbGọi lại cho tất cả các hàng đã được sửa đổi sẽ được gọi trước đó, nếu đã có bất kỳ hàng sửa đổi nào.

19127_19330

48.6.4.5. Thay đổi gọi lại

Yêu cầuChange_cbGọi lại được gọi cho mỗi sửa đổi hàng riêng lẻ trong một giao dịch, có thể là mộtChèn, Cập nhậthoặcXóa. Ngay cả khi lệnh ban đầu đã sửa đổi một số hàng cùng một lúc, cuộc gọi lại sẽ được gọi riêng cho mỗi hàng.

20003_20270

TheCTXTXNTham số có cùng nội dung vớiBEGIN_CBcam kết_cbCallbacks, nhưng ngoài tỷ lệ kèo bóng đá trực tuyến hôm nay là mô tả quan hệMối quan hệchỉ vào mối quan hệ hàng thuộc về và một cấu trúcthay đổiMô tả sửa đổi hàng được thông qua.

Lưu ý

Chỉ các thay đổi trong các bảng do người dùng xác định không được tính toán (xemkhông bao gồm) và không tạm thời (xemtạm thờihoặcTemp) có thể được trích xuất bằng cách tỷ lệ kèo bóng đá trực tuyến hôm nay.

48.6.4.6. Cắt gọi lại

Thecắt ngắn_cbCallback được gọi chocắt ngắnlệnh.

21658_21993

Các tham số tương tự nhưChange_cbgọi lại. Tuy nhiên, vìcắt ngắnHành động trên các bảng được kết nối bởi các khóa nước ngoài cần được thực hiện cùng nhau, cuộc gọi lại này nhận được một loạt các mối quan hệ thay vì chỉ một. Xem mô tả củacắt ngắnCâu lệnh để biết chi tiết.

48.6.4.7. Trai gọi bộ lọc gốc

Tùy chọnFilter_by_origin_cbGọi lại được gọi để xác định xem dữ liệu đã được phát lại từOrigin_idđược plugin đầu tỷ lệ kèo bóng đá trực tuyến hôm nay quan tâm.

22989_23146

TheCTXTham số có cùng nội dung với các cuộc gọi lại khác. Không có thông tin nhưng nguồn gốc có sẵn. Để báo hiệu rằng những thay đổi bắt nguồn từ nút được truyền trong nút là không liên quan, trả về đúng, khiến chúng được lọc đi; sai nếu không. Các cuộc gọi lại khác sẽ không được gọi cho các giao dịch và các thay đổi đã được lọc đi.

Điều này rất hữu ích khi thực hiện các tỷ lệ kèo bóng đá trực tuyến hôm nay pháp sao chép xếp tầng hoặc đa hướng. Lọc theo nguồn gốc cho phép ngăn chặn việc sao chép các thay đổi tương tự qua lại trong các thiết lập như vậy. Mặc dù các giao dịch và thay đổi cũng mang thông tin về nguồn gốc, nhưng việc lọc qua cuộc gọi lại này hiệu quả hơn đáng kể.

48.6.4.8. Gọi lại thông báo chung

Tùy chọnmessage_cbCallback được gọi bất cứ khi nào một thông báo tỷ lệ kèo bóng đá trực tuyến hôm nay đã được giải mã.

24314_24761

TheTXNTham số chứa thông tin meta về giao dịch, giống như dấu thời gian mà nó đã được cam kết và XID của nó. Tuy nhiên, lưu ý rằng nó có thể là NULL khi tin nhắn không chuyển đổi và XID chưa được chỉ định trong giao dịch đã đăng nhập tin nhắn. TheLSNCó vị trí Wal của tin nhắn. TheGiao dịchNói rằng tin nhắn được gửi dưới dạng giao dịch hay không. Thetiền tốlà tiền tố được chấm dứt null tùy ý có thể được sử dụng để xác định các tin nhắn thú vị cho tỷ lệ kèo bóng đá trực tuyến hôm nay hiện tại. Và cuối cùng làtin nhắnTham số giữ thông báo thực tế củamessage_sizekích thước.

Cần chú ý thêm để đảm bảo rằng tiền tố mà Plugin đầu tỷ lệ kèo bóng đá trực tuyến hôm nay cho là thú vị là duy nhất. Sử dụng tên của tiện ích mở rộng hoặc bản thân plugin đầu tỷ lệ kèo bóng đá trực tuyến hôm nay thường là một lựa chọn tốt.

48.6.5. Các chức năng để tạo tỷ lệ kèo bóng đá trực tuyến hôm nay đầu tỷ lệ kèo bóng đá trực tuyến hôm nay

Để thực sự tạo tỷ lệ kèo bóng đá trực tuyến hôm nay đầu tỷ lệ kèo bóng đá trực tuyến hôm nay, các plugin đầu tỷ lệ kèo bóng đá trực tuyến hôm nay có thể ghi dữ liệu vàoStringInfoBộ đệm đầu tỷ lệ kèo bóng đá trực tuyến hôm nay trongctx- outKhi ở bên trongBEGIN_CB, cam kết_cbhoặcChange_cbgọi lại. Trước khi ghi vào bộ đệm đầu tỷ lệ kèo bóng đá trực tuyến hôm nay,OutputPlugInprepareWrite (CTX, Last_Write)phải được gọi và sau khi hoàn thành việc viết vào bộ đệm,OutputPlugInwrite (CTX, Last_Write)phải được gọi để thực hiện ghi. Thelast_writeCho biết liệu một bản ghi cụ thể có phải là bản ghi cuối cùng của cuộc gọi không.

Ví dụ sau đây cho thấy cách xuất dữ liệu cho người tiêu dùng plugin đầu tỷ lệ kèo bóng đá trực tuyến hôm nay:

outputPlugInprepareWrite (CTX, true);
EXTRINGTRINGINFO (CTX- OUT, "Bắt đầu %U", TXN- XID);
OutputplugInwrite (ctx, true);

Gửi hiệu chỉnh

Nếu bạn thấy bất cứ điều gì trong tài liệu không chính xác, không khớp Kinh nghiệm của bạn với tính năng cụ thể hoặc yêu cầu làm rõ thêm, Vui lòng sử dụngMẫu nàyĐể báo cáo vấn đề tài liệu.