Hàm gọi lại FDWgetforeignrelsize
, GetForignPaths
, Getforeignplan
, planforignmodify
, getforeignjoinpaths
, GetforeignuppPaths
vàPlandirectModify
phải phù hợp với hoạt động củaPostgreSQLNgười lập kế tỷ lệ kèo bóng đá tối nay. Đây là một số ghi chú về những gì họ phải làm.
Thông tin trongroot
vàBaserel
có thể được sử dụng để giảm lượng thông tin phải được tìm nạp từ Bàn nước tỷ lệ kèo bóng đá tối nay (và do đó giảm chi phí).baserel- baserestrictinfo
đặc biệt thú vị, vì nó chứa các câu hỏi hạn chế (WHERE
mệnh đề) nên được sử dụng để lọc các hàng để được tìm nạp. .baserel- reltarget- exprs
có thể được sử dụng để xác định cột nào cần được tìm nạp; Nhưng lưu ý rằng nó chỉ liệt kê các cột phải được phát ra bởiForeignScan
Kế tỷ lệ kèo bóng đá tối nay nút, không phải các cột được sử dụng trong đánh giá chất lượng nhưng không phải đầu ra bởi truy vấn.
10428_10646
baserel- fdw_private
là mộtvoid
Con trỏ có sẵn cho các chức năng lập kế tỷ lệ kèo bóng đá tối nay FDW để lưu trữ thông tin liên quan đến Bàn nước ngoài cụ thể. Người lập kế tỷ lệ kèo bóng đá tối nay cốt lõi không chạm vào nó ngoại trừ để khởi tạo nó thành NULL khireloptinfo
Node được tạo. Nó rất hữu ích cho việc chuyển thông tin về phía trước từgetforeignrelsize
đếnvà/hoặc
đến
Getforeignplan
, do đó tránh được tính toán lại.
GetforignPaths
Có thể xác định ý nghĩa của các đường dẫn tỷ lệ kèo bóng đá tối nay cập khác nhau bằng cách lưu trữ thông tin cá nhân trongfdw_private
trường củaFIRAITPath
nút.FDW_Private
được khai báo làDanh sách
Con trỏ, nhưng thực sự có thể chứa bất cứ thứ gì vì người lập kế tỷ lệ kèo bóng đá tối nay cốt lõi không chạm vào nó. Tuy nhiên, thực tiễn tốt nhất là sử dụng một đại diện có thể giảm được bởiNodetostring
, để sử dụng với hỗ trợ gỡ lỗi có sẵn trong phần phụ trợ.
Getforeignplan
có thể kiểm traFDW_Private
Trường đã chọnForeignPath
nút và có thể tạoFDW_EXPRS
vàFDW_Private
Danh sách được đặt trongForeignScan
Kế tỷ lệ kèo bóng đá tối nay nút, nơi chúng sẽ có sẵn vào thời điểm thực hiện. Cả hai danh sách này phải được biểu diễn trong một biểu mẫuCopyObject
biết cách sao chép. TheFDW_Private
Danh sách không có hạn chế nào khác và không được giải thích bởi phụ trợ cốt lõi theo bất kỳ cách nào. TheFDW_EXPRS
Danh sách, nếu không phải là NIL, dự kiến sẽ chứa các cây biểu thức được dự định sẽ được thực hiện trong thời gian chạy. Những cây này sẽ trải qua quá trình xử lý hậu kế tỷ lệ kèo bóng đá tối nay để làm cho chúng hoàn toàn có thể thực thi được.
inGetforeignplan
, Nói chung, danh sách mục tiêu được truyền có thể được sao chép vào nút kế tỷ lệ kèo bóng đá tối nay as-is. Đã quaScan_Clauses
Danh sách chứa các mệnh đề giống nhưbaserel- baserestrictinfo
, nhưng có thể được sắp xếp lại để có hiệu quả thực hiện tốt hơn. Trong những trường hợp đơn giản, FDW chỉ có thể dảirestrictInfo
các nút từScan_Clauses
Danh sách (sử dụngextract_actual_clauses
) và đặt tất cả các mệnh đề vào danh sách Qual của nút kế tỷ lệ kèo bóng đá tối nay, điều đó có nghĩa là tất cả các mệnh đề sẽ được kiểm tra bởi người thực thi trong thời gian chạy. Các FDW phức tạp hơn có thể có thể kiểm tra một số mệnh đề bên trong, trong trường hợp đó, các điều khoản đó có thể được xóa khỏi danh sách của nút Kế tỷ lệ kèo bóng đá tối nay để người thực thi không lãng phí thời gian để kiểm tra lại chúng.
Ví dụ, FDW có thể xác định một số mệnh đề hạn chế của biểu mẫuFRIANTY_VARABLE
=
sub_expression
, mà nó xác định có thể được thực thi trên máy chủ từ xa với giá trị được đánh giá cục bộ củasub_expression
. Việc xác định thực tế của một mệnh đề như vậy sẽ xảy ra trongGetForignPaths
, vì nó sẽ ảnh hưởng đến ước tính chi phí cho đường dẫn. Đường dẫnfdw_private
Trường có thể sẽ bao gồm một con trỏ tới mệnh đề được xác địnhrestrictInfo
nút. Sau đógetforignplan
Sẽ xóa mệnh đề đó khỏiScan_Clauses
, nhưng thêmsub_expression
đếnFDW_EXPRS
Để đảm bảo rằng nó được xoa bóp thành hình thức thực thi. Nó cũng có thể sẽ đặt thông tin điều khiển vào nút của kế tỷ lệ kèo bóng đá tối nayFDW_Private
Trường để cho biết các chức năng thực thi phải làm gì trong thời gian chạy. tỷ lệ kèo bóng đá tối nay được truyền đến máy chủ từ xa sẽ liên quan đến một cái gì đó nhưWHERE
, với giá trị tham số thu được khi chạy từ việc đánh giáForeign_Varable
= $ 1FDW_EXPRS
Cây biểu thức.
Bất kỳ mệnh đề nào bị xóa khỏi danh sách chất lượng của nút kế tỷ lệ kèo bóng đá tối nay thay vào đó phải được thêm vàoFDW_RECHECK_QUALS
hoặc được kiểm tra lại bởiRecheckForignScan
Để đảm bảo hành vi chính xác tạiĐọc cam kết
Mức cách ly. Khi một bản cập nhật đồng thời xảy ra đối với một số bảng khác liên quan đến tỷ lệ kèo bóng đá tối nay, người thực thi có thể cần phải xác minh rằng tất cả các câu hỏi gốc vẫn được thỏa mãn cho bộ thuật, có thể so với một bộ giá trị tham số khác nhau. Sử dụngFDW_RECHECK_QUALS
thường dễ dàng hơn so với việc thực hiện kiểm tra bên trongRecheckForignScan
, nhưng phương pháp này sẽ không đủ khi các tham gia bên tỷ lệ kèo bóng đá tối nay đã bị đẩy xuống, vì các bộ dữ liệu tham gia trong trường hợp đó có thể có một số trường chuyển đến NULL mà không từ chối hoàn toàn tuple.
16032_16042ForeignScan
Trường có thể được điền bởi FDWS làFDW_SCAN_TLIST
16167_16288nil
, ngụ ý rằng các bộ dữ liệu được trả lại có loại hàng được khai báo cho Bàn nước tỷ lệ kèo bóng đá tối nay. Không phảinil
Giá trị phải là Danh sách đích (Danh sáchTargetEntry
S) chứa các vars và/hoặc các biểu thức đại diện cho các cột được trả về. Điều này có thể được sử dụng, ví dụ, để chỉ ra rằng FDW đã bỏ qua một số cột mà nó nhận thấy sẽ không cần thiết cho truy vấn. tỷ lệ kèo bóng đá tối nay ra, nếu FDW có thể tính toán các biểu thức được sử dụng bởi truy vấn với giá rẻ hơn có thể được thực hiện cục bộ, nó có thể thêm các biểu thức đó vàoFDW_SCAN_TLIST
. Lưu ý rằng các gói tham gia (được tạo từ các đường dẫn được thực hiện bởigetforeignjoinpaths
) phải luôn luôn cung cấpfdw_scan_tlist
Để mô tả tập hợp các cột chúng sẽ trở lại.
FDW phải luôn luôn xây dựng ít nhất một đường dẫn chỉ phụ thuộc vào các điều khoản hạn chế của bảng. Trong các tỷ lệ kèo bóng đá tối nay tham gia, nó cũng có thể chọn xây dựng (các) đường dẫn phụ thuộc vào các mệnh đề tham gia, ví dụForeign_Varable
=
local_varable
. Những điều khoản như vậy sẽ không được tìm thấy trong17535_17565
Nhưng phải được tìm kiếm trong danh sách tham gia của mối quan hệ. Một đường dẫn sử dụng mệnh đề như vậy được gọi làHồiĐường dẫn được tham số hóaHồi17733_17835param_info
; sử dụngget_baserel_parampathinfo
Để tính toán giá trị đó. TRONGgetforeignplan
, Thelocal_varable
Phần của mệnh đề tham gia sẽ được thêm vàoFDW_EXPRS
, và sau đó là thời gian chạy, trường hợp hoạt động giống như đối với một mệnh đề hạn chế thông thường.
Nếu FDW hỗ trợ các kết nối từ xa,getforeignjoinpaths
nên sản xuấtForeignPath
s cho các kết nối từ xa tiềm năng theo cách tương tự nhưGetforignPaths
Hoạt động cho các bảng cơ sở. Thông tin về sự tham gia dự định có thể được chuyển choGetforeignplan
theo cùng một cách được mô tả ở trên. Tuy nhiên,18687_18705
không liên quan đến các mối quan hệ tham gia; Thay vào đó, các điều khoản tham gia có liên quan cho một tham gia cụ thể được chuyển chogetforeignjoinpaths
như một tham số riêng biệt (Extra- ReserntList
).
Một FDW có thể hỗ trợ thêm thực hiện trực tiếp một số hành động kế tỷ lệ kèo bóng đá tối nay cao hơn mức quét và tham gia, chẳng hạn như nhóm hoặc tổng hợp. Để cung cấp các tùy chọn như vậy, FDW sẽ tạo các đường dẫn và chèn chúng vào thích hợpquan hệ trên. Ví dụ, một đường dẫn biểu thị tập hợp từ xa nên được chèn vàoupperrel_group_agg
Mối quan hệ, sử dụngadd_path
. Đường dẫn này sẽ được so sánh trên phương tiện chi phí với tập hợp cục bộ được thực hiện bằng cách đọc một đường quét đơn giản cho mối quan hệ nước ngoài (lưu ý rằng một đường dẫn đó cũng phải được cung cấp, nếu không sẽ có lỗi tại thời điểm kế tỷ lệ kèo bóng đá tối nay). Nếu đường dẫn tổng hợp từ xa sẽ thắng, nó thường sẽ được chuyển đổi thành một kế tỷ lệ kèo bóng đá tối nay theo cách thông thường, bằng cách gọiGetforeignplan
. Nơi được đề xuất để tạo các đường dẫn như vậy nằm trongGetforeignuppPaths
Hàm gọi lại, được gọi cho mỗi quan hệ trên (nghĩa là, mỗi bước xử lý sau khi quét/tham gia), nếu tất cả các quan hệ cơ sở của tỷ lệ kèo bóng đá tối nay đến từ cùng một FDW.
PlanForignModify
và các cuộc gọi lại khác được mô tả trongPhần 59.2.4được thiết kế xung quanh giả định rằng mối quan hệ nước tỷ lệ kèo bóng đá tối nay sẽ được quét theo cách thông thường và sau đó các bản cập nhật hàng riêng lẻ sẽ được điều khiển bởi một địa phươngModifyTable
Kế tỷ lệ kèo bóng đá tối nay nút. Cách tiếp cận này là cần thiết cho trường hợp chung trong đó một bản cập nhật yêu cầu đọc các bảng địa phương cũng như các bảng nước ngoài. Tuy nhiên, nếu hoạt động có thể được thực hiện hoàn toàn bởi máy chủ nước ngoài, FDW có thể tạo ra một đường dẫn biểu thị điều đó và chèn nó vàoupperrel_final
Mối quan hệ trên, nơi nó sẽ cạnh tranh vớiModifyTable
Cách tiếp cận. Cách tiếp cận này cũng có thể được sử dụng để thực hiện từ xaChọn để cập nhật
, thay vì sử dụng các cuộc gọi lại khóa hàng được mô tả trongPhần 59.2.6. Hãy nhớ rằng một đường dẫn được chèn vàoupperrel_final
chịu trách nhiệm triển khaitất cảHành vi của tỷ lệ kèo bóng đá tối nay.
21437_21456Cập nhật
hoặcXóa
, planforignmodify
vàPlandirectModify
Có thể tra cứureloptinfo
Cấu trúc cho Bàn nước tỷ lệ kèo bóng đá tối nay và sử dụngbaserel- fdw_private
Dữ liệu được tạo trước đây bởi các hàm lập kế tỷ lệ kèo bóng đá tối nay quét. Tuy nhiên, trongChèn
Bảng đích không được quét nên không córeloptinfo
cho nó. TheDanh sách
Được trả về bởiplanforeignmodify
có các hạn chế tương tự nhưFDW_Private
22170_22183ForeignScan
Kế tỷ lệ kèo bóng đá tối nay nút, nghĩa là nó chỉ chứa các cấu trúcCopyObject
biết cách sao chép.
Chèn
vớitrên xung đột
22434_22606trên xung đột do cập nhật
không được hỗ trợ, vì đặc điểm kỹ thuật là bắt buộc ở đó.
Nếu bạn thấy bất cứ điều gì trong tài tỷ lệ kèo bóng đá tối nay 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 tỷ lệ kèo bóng đá tối nay.