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 / 9.3 / 9.2

59.4. Kế kèo bóng đá hôm nay và ngày mai truy vấn bao bọc dữ liệu nước ngoài

Hàm gọi lại FDWgetforeignrelsize, GetforignPaths, Getforeignplan, planforeignmodify, getforeignjoinpaths, GetforeignuppPathsPlandirectModifyphải phù hợp với hoạt động củaPostgreSQLNgười lập kế kèo bóng đá hôm nay và ngày mai. Đây là một số ghi chú về những gì họ phải làm.

Thông tin trongrootBaserelcó thể được sử dụng để giảm lượng thông tin phải được tìm nạp từ Bàn nước kèo bóng đá hôm nay và ngày mai (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ế (WHEREmệnh đề) nên được sử dụng để lọc các hàng để được tìm nạp. .baserel- reltarget- exprscó 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ởiForeignScanKế kèo bóng đá hôm nay và ngày mai 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.

10383_10601

baserel- fdw_privatelà mộtvoidCon trỏ có sẵn cho các chức năng lập kế kèo bóng đá hôm nay và ngày mai FDW để lưu trữ thông tin có liên quan đến bảng nước ngoài cụ thể. Người lập kế kèo bóng đá hôm nay và ngày mai cốt lõi không chạm vào nó ngoại trừ để khởi tạo nó thành NULL khireloptinfoNode được tạo. Nó rất hữu ích cho việc chuyển thông tin về phía trước từgetforeignrelsizeđếnGetForignPathsvà/hoặcGetforignPathsđếnGetforeignplan, do đó tránh được tính toán lại.

GetForignPathsCó thể xác định ý nghĩa của các đường dẫn kèo bóng đá hôm nay và ngày mai cập khác nhau bằng cách lưu trữ thông tin cá nhân trongFDW_Privatetrường củaForeignPathnút.fdw_privateđược khai báo làDanh sáchCon trỏ, nhưng thực sự có thể chứa bất cứ thứ gì vì người lập kế kèo bóng đá hôm nay và ngày mai 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ợ.

Getforeignplancó thể kiểm trafdw_privatetrường của đã chọnForeignPathnút và có thể tạoFDW_EXPRSfdw_privateDanh sách được đặt trongForeignScanKế kèo bóng đá hôm nay và ngày mai 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ẫuCopyObjectbiết cách sao chép. TheFDW_PrivateDanh 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_EXPRSDanh 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 tại thời điểm chạy. Những cây này sẽ trải qua quá trình xử lý hậu kế kèo bóng đá hôm nay và ngày mai để 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 thông qua có thể được sao chép vào nút kế kèo bóng đá hôm nay và ngày mai as-is. Đã quaScan_ClausesDanh sách chứa các mệnh đề giống nhưbaserel- baserestrictinfo, nhưng có thể được đặt hàng 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ảirestrictInfocác nút từScan_ClausesDanh sách (sử dụngextract_actual_clauses) và đặt tất cả các mệnh đề vào danh sách chất lượng của nút kế kèo bóng đá hôm nay và ngày mai, đ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ế kèo bóng đá hôm nay và ngày mai để 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ẫuFRIAGY_VARIABLE = 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_privateTrường có thể sẽ bao gồm một con trỏ tới mệnh đề được xác địnhrestrictInfoNode. Sau đógetforignplanSẽ 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ế kèo bóng đá hôm nay và ngày maiFDW_PrivateTrường để cho biết các chức năng thực thi phải làm gì khi chạy. kèo bóng đá hôm nay và ngày mai vấn được kèo bóng đá hôm nay và ngày maiền đến máy chủ từ xa sẽ liên quan đến một cái gì đó nhưWHEREFRIANTY_VARABLE= $ 1, với giá trị tham số thu được khi chạy từ việc đánh giáFDW_EXPRSCâ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ế kèo bóng đá hôm nay và ngày mai thay vào đó phải được thêm vàoFDW_RECHECK_QUALShoặc được kiểm tra lại bởiRecheckForignScanĐể đảm bảo hành vi chính xác tạiĐọc cam kếtMứ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 kèo bóng đá hôm nay và ngày mai vấn, người thực thi có thể cần xác minh rằng tất cả các câu hỏi ban đầu vẫn được thỏa mãn cho tuple, có thể so với một tập hợp các giá trị tham số khác nhau.FDW_RECHECK_QUALSthườ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 kèo bóng đá hôm nay và ngày mai đã 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.

khácForeignScanTrường có thể được điền bởi FDWS làfdw_scan_tlist, mô tả các bộ dữ liệu được FDW trả về cho nút kế kèo bóng đá hôm nay và ngày mai này. Đối với các lần quét bảng nước ngoài đơn giản, điều này có thể được đặt thànhnil, 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 kèo bóng đá hôm nay và ngày mai. Không phảinilGiá trị phải là Danh sách đích (Danh sáchTargetEntryS) 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 kèo bóng đá hôm nay và ngày mai vấn.FDW_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 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 kèo bóng đá hôm nay và ngày mai vấn 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 trongbaserel- baserestrictinfoNhư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àĐường dẫn được tham số hóa. Nó phải xác định các quan hệ khác được sử dụng trong (các) mệnh đề tham gia đã chọn với giá trị phù hợp làparam_info; sử dụngget_baserel_parampathinfoĐể tính toán giá trị đó. TRONGGetforeignplan, Thelocal_varablePhần của mệnh đề tham gia sẽ được thêm kèo bóng đá hôm nay và ngày maioFDW_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,getforeignjoinpathsnên sản xuấtForeignPaths cho các kết nối từ xa tiềm năng theo cách tương tự nhưGetforeignPathsHoạt động cho các bảng cơ sở. Thông tin về sự tham gia dự định có thể được chuyển choGetforeignplantheo cùng một cách được mô tả ở trên. Tuy nhiên,BaserestrictInfokhông liên quan đến các mối quan hệ tham gia; Thay kèo bóng đá hôm nay và ngày maio đó, các điều khoản tham gia có liên quan cho một tham gia cụ thể được chuyển chogetforeignjoinpathsnhư 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ế kèo bóng đá hôm nay và ngày mai 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 kèo bóng đá hôm nay và ngày maioupperrel_group_aggMố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ế kèo bóng đá hôm nay và ngày mai).Getforeignplan. Nơi được đề xuất để tạo các đường dẫn như vậy nằm trongGetforeignuppPathsHà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 kèo bóng đá hôm nay và ngày mai vấn đến từ cùng một FDW.

planforignmodifyvà 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 kèo bóng đá hôm nay và ngày mai 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ươngModifyTableKế kèo bóng đá hôm nay và ngày mai 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.upperrel_finalMối quan hệ trên, nơi nó sẽ cạnh tranh vớiModifyTableCá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 kèo bóng đá hôm nay và ngày maioupperrel_finalchịu trách nhiệm triển khaitất cảHành vi của kèo bóng đá hôm nay và ngày mai vấn.

Khi lập kế kèo bóng đá hôm nay và ngày maiCập nhậthoặcXóa, planforeignmodifyPlandirectModifycó thể tìm kiếmreloptinfoCấu trúc cho Bàn nước kèo bóng đá hôm nay và ngày mai và sử dụngbaserel- fdw_privateDữ liệu được tạo trước đây bởi các hàm lập kế kèo bóng đá hôm nay và ngày mai quét. Tuy nhiên, trongChènBảng đích không được quét nên không córeloptinfocho nó. TheDanh sáchĐược trả về bởiplanforeignmodifycó các hạn chế tương tự nhưFDW_PrivateDanh sách AForeignScanKế kèo bóng đá hôm nay và ngày mai nút, nghĩa là nó chỉ chứa các cấu trúccopyObjectbiết cách sao chép.

Chènvớitrên xung độtmệnh đề không hỗ trợ chỉ định mục tiêu xung đột, vì các ràng buộc duy nhất hoặc các ràng buộc loại trừ trên các bảng từ xa không được biết đến cục bộ. Điều này lần lượt ngụ ý rằngtrên xung đột do cập nhậtkhông được hỗ trợ, vì đặc điểm kỹ thuật là bắt buộc ở đó.

Gửi hiệu chỉnh

Nếu bạn thấy bất cứ điều gì trong tài kèo bóng đá hôm nay và ngày mai không chính xác, không phù hợpMẫu nàyĐể báo cáo vấn đề tài kèo bóng đá hôm nay và ngày mai.