Một plugin đầu kèo tỷ số bóng đá euro hôm nay ví dụ có thể được tìm thấy trongGREPT/TEST_DECODING
Subdirectory của cây nguồn PostgreSQL.
Plugin đầu kèo tỷ số bóng đá euro 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 kèo tỷ số bóng đá euro 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._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 kèo tỷ số bóng đá euro hôm nay lại cho các hành động riêng lẻ.
Typedef Struct OutputPluginCallbacks
TheBEGIN_CB
, Change_cb
vàcam kết_cb
kèo tỷ số bóng đá euro hôm nay lại là bắt buộc, trong khistartup_cb
, cắt ngắn_cb
, message_cb
, Filter_by_origin_cb
vàshutdown_cb
là tùy chọn. Nếu nhưcắt ngắn_cb
không được đặt mà làcắt ngắn
sẽ được kèo tỷ số bóng đá euro hôm nay mã, hành động sẽ bị bỏ qua.
Một plugin đầu kèo tỷ số bóng đá euro hôm nay cũng có thể xác định các chức năng để hỗ trợ truyền phát các giao dịch lớn, đang thực hiện. Thestream_start_cb
, stream_stop_cb
, stream_abort_cb
, stream_commit_cb
vàstream_change_cb
được yêu cầu, trong khistream_message_cb
vàstream_truncate_cb
là tùy chọn. Thestream_prepare_cb
cũng được yêu cầu nếu plugin đầu kèo tỷ số bóng đá euro hôm nay cũng hỗ trợ cam kết hai pha.
Một plugin đầu ra cũng có thể xác định các chức năng để hỗ trợ các cam kết hai pha, cho phép các hành động được kèo tỷ số bóng đá euro hôm nay mã trênChuẩn bị giao dịch
. TheBEGIN_PREPARE_CB
, prepare_cb
, cam kết_prepared_cb
vàrollback_prepared_cb
kèo tỷ số bóng đá euro hôm nay lại là bắt buộc, trong khiFilter_Prepare_CB
là tùy chọn. Thestream_prepare_cb
cũng được yêu cầu nếu plugin đầu kèo tỷ số bóng đá euro hôm nay cũng hỗ trợ phát trực tuyến các giao dịch đang tiến triển lớn.
Để kèo tỷ số bóng đá euro hôm nay mã, định dạng và thay đổi đầu ra, các plugin đầu ra 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 gọi các chức năng đầu ra. 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ởiinitDB
trongpg_catalog
Schema 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
14883_15030
Lưu ý rằng quyền truy cập vào bảng danh mục người dùng hoặc bảng danh mục hệ thống thông thường trong các plugin đầu kèo tỷ số bóng đá euro hôm nay phải được thực hiện thông quasystable_*
Chỉ quét API. Truy cập quaHEAP_*
API quét sẽ lỗi. Ngoài kèo tỷ số bóng đá euro hôm nay, bất kỳ hành động nào dẫn đến phân công ID giao dịch đều bị cấm.PG_CILRENT_XACT_ID ()
.
Gọi cho plugin đầu kèo tỷ số bóng đá euro 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 kèo tỷ số bóng đá euro 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_output
thay vìoutput_plugin_binary_output
trongkèo tỷ số bóng đá euro hôm nay 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ủ để AText
Datum 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.
Một plugin đầu kèo tỷ số bóng đá euro hôm nay được thông báo về các thay đổi đang xảy kèo tỷ số bóng đá euro 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 kèo tỷ số bóng đá euro 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 kèo tỷ số bóng đá euro hôm nay mã giữabắt đầu
vàcam kết
gọ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 kèo tỷ số bóng đá euro hôm nay mã.Chuẩn bị giao dịch
cũng sẽ được kèo tỷ số bóng đá euro hôm nay mã nếu các cuộc gọi lại plugin đầu ra cần thiết để kèo tỷ số bóng đá euro hôm nay mã chúng được cung cấp. Có thể là giao dịch đã chuẩn bị hiện tại đang được kèo tỷ số bóng đá euro hôm nay mã bị hủy bỏ đồng thời thông quaChuẩn bị rollback
lệnh. Trong trường hợp đó, việc kèo tỷ số bóng đá euro hôm nay của giao dịch này cũng sẽ bị hủy bỏ.prepare_cb
gọi lại được gọi. Do đó, ngay cả trong trường hợp hủy bỏ đồng thời, đủ thông tin được cung cấp cho plugin đầu ra để kèo tỷ số bóng đá euro hôm nay quyết đúngChuẩn bị rollback
Một khi được kèo tỷ số bóng đá euro hôm nay mã.
Chỉ các giao dịch đã được chuyển đến đĩa một cách an toàn sẽ được kèo tỷ số bóng đá euro hôm nay mã. Điều đó có thể dẫn đến mộtcam kết
Không được kèo tỷ số bóng đá euro hôm nay mã ngay lập tức theo sau18599_18630
Khisynchronous_commit
được đặt thànhTẮT
.
Tùy chọnstartup_cb
Callback được kèo tỷ số bóng đá euro hôm nay bất cứ khi nào một khe sao
19312_19516
Theis_init
tham số sẽ đúng khi khe sao chép được tạo và sai nếu không.Tùy chọn
chỉ vào một cấu trúc của các tùy chọn mà các plugin đầu kèo tỷ số bóng đá euro hôm nay có thể đặt:
Typedef Struct OutputPlugInOptions
output_type
phải được đặt thànhoutput_plugin_textual_output
hoặcoutput_plugin_binary_output
. Xem thêmPhần 47.6.3. Nếu nhưnhận_rewrites
là đúng, plugin đầu kèo tỷ số bóng đá euro 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 kèo tỷ số bóng đá euro hôm nay 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 kèo tỷ số bóng đá euro hôm nay cần có trạng thái, nó có thể sử dụngctx- output_plugin_private
Để lưu trữ nó.
Tùy chọnshutdown_cb
Callback đượ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 để kèo tỷ số bóng đá euro hôm nay quyết các tài nguyên riêng tư cho plugin đầu ra. Khe không nhất thiết phải bị loại bỏ, phát trực tuyến chỉ bị dừng.
21468_21549
Yêu cầuBEGIN_CB
gọi lại được gọi bất cứ khi nào bắt đầu một giao dịch đã cam kết đã được kèo tỷ số bóng đá euro 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 kèo tỷ số bóng đá euro hôm nay mã.
TypeDef void ( *LogicalDecodeBeginCB) (Struct LogicalDecodingContext *
TheTXN
Tham 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ó.
Yêu cầucam kết_cb
Gọi lại được gọi bất cứ khi nào một cam kết giao dịch đã được kèo tỷ số bóng đá euro hôm nay mã. TheChange_cb
kèo tỷ số bóng đá euro hôm nay lại cho tất cả các hàng đã được sửa đổi sẽ được kèo tỷ số bóng đá euro hôm nay trước đó, nếu đã có bất kỳ hàng nào được sửa đổi.
23091_23294
Yêu cầuChange_cb
Callback được kèo tỷ số bóng đá euro hôm nay cho mỗi sửa đổi hàng riêng lẻ bên trong một giao dịch, có thể là mộtChèn
, Cập nhật
hoặ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 kèo tỷ số bóng đá euro hôm nay lại sẽ được kèo tỷ số bóng đá euro hôm nay riêng cho mỗi hàng.Change_cb
Callback có thể truy cập vào các bảng Danh mục người dùng hoặc người dùng để hỗ trợ trong quá trình xuất các chi tiết sửa đổi hàng. Trong trường hợp kèo tỷ số bóng đá euro hôm nay mã một giao dịch đã chuẩn bị (nhưng chưa được cam kết) hoặc kèo tỷ số bóng đá euro hôm nay mã một giao dịch không được cam kết, cuộc gọi lại thay đổi này cũng có thể bị lỗi do sự quay vòng đồng thời của giao dịch rất giống nhau này.
24493_24760
TheCTX
vàTXN
tham số có cùng nội dung vớiBEGIN_CB
vàcam kết_cb
Callbacks, nhưng ngoài kèo tỷ số bóng đá euro 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 đổi
Mô tả sửa đổi hàng được thông qua.
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ời
hoặcTemp
) có thể được trích xuất bằng cách kèo tỷ số bóng đá euro hôm nay.
Tùy chọncắt ngắn_cb
kèo tỷ số bóng đá euro hôm nay lại được kèo tỷ số bóng đá euro hôm nay chocắt ngắn
lệnh.
26229_26564
Các tham số tương tự nhưChange_cb
kèo tỷ số bóng đá euro hôm nay lại. Tuy nhiên, vìcắt ngắn
Hà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 kèo tỷ số bóng đá euro hôm nay 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.
Tùy chọnFilter_by_origin_cb
kèo tỷ số bóng đá euro hôm nay lại được kèo tỷ số bóng đá euro hôm nay để xác định xem dữ liệu đã được phát lại từOrigin_id
được plugin đầu kèo tỷ số bóng đá euro hôm nay quan tâm.
27637_27794
TheCTX
Tham số có cùng nội dung với các cuộc kèo tỷ số bóng đá euro hôm nay lại khác. Không có thông tin nhưng nguồn gốc có sẵn.
Điều này rất hữu ích khi thực hiện các kèo tỷ số bóng đá euro 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.
Tùy chọnmessage_cb
Gọi lại được gọi bất cứ khi nào một thông báo kèo tỷ số bóng đá euro hôm nay đã được giải mã.
29033_29480
TheTXN
Tham số chứa thông tin meta về giao dịch, như dấu thời gian mà nó đã được thực hiện 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.LSN
Có vị trí Wal của tin nhắn. TheGiao dịch
Nói rằng tin nhắn được gửi dưới dạng giao dịch hay không. Tương tự như cuộc gọi lại thay đổi, trong trường hợp kèo tỷ số bóng đá euro hôm nay mã một giao dịch đã chuẩn bị (nhưng chưa được cam kết) hoặc kèo tỷ số bóng đá euro hôm nay mã giao dịch không được cam kết, cuộc gọi lại tin nhắn này cũng có thể bị lỗi do sự quay vòng đồng thời của giao dịch rất giống nhau này.tiền tố
là tiền tố kết thúc null tùy ý có thể được sử dụng để xác định các tin nhắn thú vị cho plugin hiện tại. Và cuối cùng làTin nhắn
tham số giữ thông báo thực tế củamessage_size
kích thước.
Cần chú ý thêm để đảm bảo rằng tiền tố mà plugin đầu kèo tỷ số bóng đá euro 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 kèo tỷ số bóng đá euro hôm nay thường là một lựa chọn tốt.
Tùy chọnFilter_Prepare_CB
Gọi lại được gọi để xác định xem dữ liệu có phải là một phần của giao dịch cam kết hai pha hiện tại nên được xem xét để kèo tỷ số bóng đá euro hôm nay mã ở giai đoạn chuẩn bị này hay sau đó là giao dịch một pha thông thường tạiCam kết đã chuẩn bị
Thời gian. Để báo hiệu rằng việc kèo tỷ số bóng đá euro hôm nay mã sẽ được bỏ qua, hãy trả vềTRUE
;Sai
Nếu không. Khi kèo tỷ số bóng đá euro hôm nay lại không được xác định,false
được giả định (nghĩa là không có lọc, tất cả các giao dịch sử dụng cam kết hai pha cũng được kèo tỷ số bóng đá euro hôm nay mã theo hai giai đoạn).
31877_32091
TheCTX
Tham số có cùng nội dung như đối với các cuộc kèo tỷ số bóng đá euro hôm nay lại khác. Các tham sốXID
vàGID
Cung cấp hai cách khác nhau để xác định giao dịch. Sau nàyCam kết đã chuẩn bị
hoặcChuẩn bị rollback
mang cả hai định danh, cung cấp plugin đầu kèo tỷ số bóng đá euro hôm nay lựa chọn sử dụng.
Cuộc gọi lại có thể được gọi nhiều lần cho mỗi giao dịch để kèo tỷ số bóng đá euro hôm nay mã và phải cung cấp câu trả lời tĩnh tương tự cho một cặp nhất địnhXID
vàGID
mỗi khi nó được kèo tỷ số bóng đá euro hôm nay.
Yêu cầuBEGIN_PREPARE_CB
Gọi lại được gọi bất cứ khi nào bắt đầu một giao dịch đã được kèo tỷ số bóng đá euro hôm nay mã. TheGID
Trường, là một phần củaTXN
tham số, có thể được sử dụng trong cuộc kèo tỷ số bóng đá euro hôm nay lại này để kiểm tra xem plugin đã nhận được điều nàyChuẩn bị
Trong trường hợp đó có thể lỗi hoặc bỏ qua các thay đổi còn lại của giao dịch.
33699_33852
Yêu cầuprepare_cb
Gọi lại được gọi bất cứ khi nào một giao dịch được chuẩn bị cho cam kết hai pha đã được kèo tỷ số bóng đá euro hôm nay mã. TheChange_cb
kèo tỷ số bóng đá euro hôm nay lại cho tất cả các hàng đã được sửa đổi sẽ được kèo tỷ số bóng đá euro hôm nay trước đó, nếu đã có bất kỳ hàng sửa đổi nào. TheGID
trường, là một phần củaTXN
tham số, có thể được sử dụng trong cuộc kèo tỷ số bóng đá euro hôm nay lại này.
34700_34907
Yêu cầucomme_prepared_cb
kèo tỷ số bóng đá euro hôm nay lại được kèo tỷ số bóng đá euro hôm nay bất cứ khi nào giao dịchcam kết đã chuẩn bị
đã được kèo tỷ số bóng đá euro hôm nay mã. TheGID
trường, là một phần củaTXN
tham số, có thể được sử dụng trong cuộc kèo tỷ số bóng đá euro hôm nay lại này.
35645_35872
Yêu cầurollback_prepared_cb
kèo tỷ số bóng đá euro hôm nay lại được kèo tỷ số bóng đá euro hôm nay bất cứ khi nào giao dịchChuẩn bị rollback
đã được kèo tỷ số bóng đá euro hôm nay mã. TheGID
Trường, là một phần củaTXN
tham số, có thể được sử dụng trong cuộc kèo tỷ số bóng đá euro hôm nay lại này. Các tham sốprepare_end_lsn
vàprepare_time
Có thể được sử dụng để kiểm tra xem plugin có nhận được điều này khôngChuẩn bị giao dịch
Trong trường hợp đó có thể áp dụng rollback, nếu không, nó có thể bỏ qua thao tác rollback. TheGID
Một mình là không đủ vì nút hạ lưu có thể có một giao dịch đã chuẩn bị với cùng một định danh.
37092_37405
Yêu cầustream_start_cb
kèo tỷ số bóng đá euro hôm nay lại được kèo tỷ số bóng đá euro hôm nay khi mở một khối thay đổi được phát trực tuyến từ giao dịch đang tiến triển.
37946_38097
Yêu cầustream_stop_cb
kèo tỷ số bóng đá euro hôm nay lại được kèo tỷ số bóng đá euro hôm nay khi đóng một khối thay đổi được phát trực tuyến từ giao dịch đang tiến triển.
38634_38783
Yêu cầustream_abort_cb
kèo tỷ số bóng đá euro hôm nay lại được kèo tỷ số bóng đá euro hôm nay để hủy bỏ một giao dịch được phát trực tuyến trước đó.
39294_39511
Thestream_prepare_cb
Gọi lại được gọi để chuẩn bị một giao dịch được phát trực tuyến trước đó như là một phần của cam kết hai pha. Cuộc gọi lại này được yêu cầu khi plugin đầu kèo tỷ số bóng đá euro hôm nay hỗ trợ cả việc phát trực tuyến các giao dịch đang tiến triển lớn và cam kết hai pha.
40187_40412
Yêu cầustream_commit_cb
kèo tỷ số bóng đá euro hôm nay lại được kèo tỷ số bóng đá euro hôm nay để thực hiện một giao dịch được phát trực tuyến trước đó.
40928_41149
Yêu cầustream_change_cb
Callback được kèo tỷ số bóng đá euro hôm nay khi gửi thay đổi trong một khối thay đổi được phát trực tuyến (được phân định bởistream_start_cb
vàstream_stop_cb
cuộc gọi). Các thay đổi thực tế không được hiển thị vì giao dịch có thể hủy bỏ vào thời điểm sau đó và chúng tôi không kèo tỷ số bóng đá euro hôm nay mã các thay đổi cho các giao dịch bị hủy bỏ.
41936_42227
Tùy chọnstream_message_cb
Callback được kèo tỷ số bóng đá euro hôm nay khi gửi một thông báo chung trong một khối các thay đổi được phát trực tuyến (được phân định bởistream_start_cb
vàstream_stop_cb
cuộc gọi). Nội dung thông báo cho các tin nhắn giao dịch không được hiển thị vì giao dịch có thể hủy bỏ vào thời điểm sau đó và chúng tôi không kèo tỷ số bóng đá euro hôm nay mã các thay đổi cho các giao dịch bị hủy bỏ.
43056_43545
Tùy chọnstream_truncate_cb
Callback được kèo tỷ số bóng đá euro hôm nay cho Acắt ngắn
Lệnh trong một khối thay đổi được phát trực tuyến (được phân định bởistream_start_cb
vàstream_stop_cb
cuộc kèo tỷ số bóng đá euro hôm nay).
44225_44590
Các tham số tương tự nhưstream_change_cb
kèo tỷ số bóng đá euro hôm nay lại. Tuy nhiên, vìcắt ngắn
Hà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 kèo tỷ số bóng đá euro hôm nay 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.
Để thực sự tạo kèo tỷ số bóng đá euro hôm nay đầu kèo tỷ số bóng đá euro hôm nay, các plugin đầu kèo tỷ số bóng đá euro hôm nay có thể ghi dữ liệu vàoStringInfo
bộ đệm đầu kèo tỷ số bóng đá euro hôm nay trongctx- out
Khi ở bên trongBEGIN_CB
, cam kết_cb
hoặcChange_cb
gọi lại. Trước khi ghi vào bộ đệm đầu kèo tỷ số bóng đá euro hôm nay,45766_45809
phải được kèo tỷ số bóng đá euro hôm nay và sau khi hoàn thành việc viết vào bộ đệm,OutputPlugInwrite (CTX, Last_Write)
phải được kèo tỷ số bóng đá euro hôm nay để thực hiện ghi. Thelast_write
Cho 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 kèo tỷ số bóng đá euro hôm nay 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 kèo tỷ số bóng đá euro hôm nay:
OutputPlugInPrepareWrite (CTX, true);