Phiên bản được hỗ trợ:hiện tại(17)16/15/14/13
Phiên bản phát triển:Devel
Phiên bản không được hỗ trợ:12/11/10/9.6/9.5/9.4/9.3/9.2/9.1

57.2.tỷ lệ kèo bóng đá thói quen gọi lại của Nước ngoài dữ liệu

Hàm người xử lý FDW trả về palloc'dfdwroutineCấu trúc chứa tỷ lệ kèo bóng đá con trỏ đến tỷ lệ kèo bóng đá chức năng gọi lại được mô tả dưới đây. tỷ lệ kèo bóng đá chức năng liên quan đến quét là bắt buộc, phần còn lại là tùy chọn.

ThefdwroutineLoại cấu trúc được khai báo trongsrc/bao gồm/nước tỷ lệ kèo bóng đá/fdwapi.h, xem để biết thêm chi tiết.

57.2.1.tỷ lệ kèo bóng đá thói quen FDW để quét tỷ lệ kèo bóng đá bảng nước ngoài

Void

Lấy ước tính kích thước quan hệ cho một bảng nước tỷ lệ kèo bóng đá. Điều này được gọi là khi bắt đầu lập kế hoạch cho một truy vấn quét một bàn nước tỷ lệ kèo bóng đá.rootlà thông tin toàn cầu tỷ lệ kèo bóng đá người lập kế hoạch về truy vấn;Baserellà thông tin tỷ lệ kèo bóng đá người lập kế hoạch về bảng này; VàForeignTableIDpg_ classOID của Bàn nước tỷ lệ kèo bóng đá. (ForeignTableIDcó thể được lấy từ tỷ lệ kèo bóng đá cấu trúc dữ liệu kế hoạch, nhưng nó được truyền rõ ràng để tiết kiệm nỗ lực.)

Chức năng này sẽ cập nhậtbaserel- hànglà số lượng hàng dự kiến ​​được trả lại bằng cách quét bảng, sau khi tính toán cho việc lọc được thực hiện bởi tỷ lệ kèo bóng đá câu hỏi hạn chế. Giá trị ban đầu củabaserel- hàngchỉ là một ước tính mặc định không đổi, cần được thay thế nếu có thể. Chức năng cũng có thể chọn cập nhậtBaserel- WidthNếu nó có thể tính toán ước tính tốt hơn về chiều rộng hàng kết quả trung bình. .Phân tích.) tỷ lệ kèo bóng đá ra, chức năng này có thể cập nhậtBaserel- TuplesNếu nó có thể tính toán ước tính tốt hơn về tổng số hàng của Bàn nước tỷ lệ kèo bóng đá. (Giá trị ban đầu là từpg_ class.Reltuplesđại diện cho tổng số hàng được nhìn thấy bởi lần cuốiPhân tích; nó sẽ là-1nếu khôngPhân tíchđã được thực hiện trên bàn nước tỷ lệ kèo bóng đá này.)

xemPhần 57.4Để biết thêm thông tin.

Void

Tạo tỷ lệ kèo bóng đá đường dẫn truy cập có thể để quét trên bàn nước ngoài. Điều này được gọi trong quá trình lập kế hoạch truy vấn.getforeignrelsize, đã được tỷ lệ kèo bóng đá.

Hàm này phải tạo ít nhất một đường dẫn truy cập (ForeignPathnút) để quét trên bàn nước tỷ lệ kèo bóng đá và phải gọiadd_pathĐể thêm từng đường dẫn như vậy vàoBaserel- Pathlist. Nó được khuyến nghị sử dụngcreated_forignscan_pathĐể xây dựngForeignPathnút. Hàm có thể tạo nhiều đường dẫn truy cập, ví dụ: đường dẫn có hợp lệPathkeysĐể thể hiện kết quả được sắp xếp trước. Mỗi đường dẫn truy cập phải chứa tỷ lệ kèo bóng đá ước tính chi phí và có thể chứa bất kỳ thông tin đặc biệt nào cần thiết để xác định phương thức quét cụ thể dự định.

xemPhần 57.4Để biết thêm thông tin.

nước tỷ lệ kèo bóng đá *

Tạo Anước tỷ lệ kèo bóng đáKế hoạch nút từ đường dẫn truy cập nước tỷ lệ kèo bóng đá đã chọn. Điều này được gọi vào cuối kế hoạch truy vấn.getforeignrelsize, cộng với đã chọnForeigyPath(trước đây được sản xuất bởi,getforeignjoinpathshoặcGetforeignuppPaths), Danh sách mục tiêu được phát ra bởi nút kế hoạch, tỷ lệ kèo bóng đá điều khoản hạn chế được thực thi bởi nút kế hoạch và kế hoạch con bên ngoài củaForeignScan, được sử dụng để kiểm tra tỷ lệ kèo bóng đá được thực hiện bởiRecheckForignScan. (Nếu đường dẫn dành cho tham gia chứ không phải là mối quan hệ cơ sở,ForeignTableIDkhông hợp lệ.)

Hàm này phải tạo và trả về AForeignScanKế hoạch nút; nó được khuyến nghị sử dụngmake_forignscanđể xây dựngForeignScanNode.

xemPhần 57.4Để biết thêm thông tin.

Void

Bắt đầu thực hiện quét nước tỷ lệ kèo bóng đá. Điều này được gọi trong quá trình khởi động thực thi.itaterforignscan). TheForeignScanstateNode đã được tạo, nhưng nófdw_stateTrường vẫn còn vô hiệu. Thông tin về bảng để quét có thể truy cập được thông quaForeignScanStatenút (đặc biệt, từ bên dướiForeignScanKế hoạch nút, chứa bất kỳ thông tin FDW-Private nào được cung cấp bởiGetforeignplan).EFLAGSChứa tỷ lệ kèo bóng đá bit cờ mô tả chế độ hoạt động của người thực thi cho nút kế hoạch này.

Lưu ý rằng khi(eflags & exec_flag_explain_only)là đúng, chức năng này không nên thực hiện bất kỳ hành động nào có thể nhìn nhận được; nó chỉ nên làm tối thiểu cần thiết để làm cho trạng thái nút hợp lệ choGiải thích FormentIgnScanendforeignscan.

tupletableslot *

Lấy một hàng từ nguồn nước tỷ lệ kèo bóng đá, trả lại trong khe cắm bảng Tuple (nút của nútscantuplotlotnên được sử dụng cho mục đích này). Trả tỷ lệ kèo bóng đá null nếu không có nhiều hàng có sẵn.BeginForignScanNếu bạn cần lưu trữ tồn tại lâu hơn hoặc sử dụngES_Query_CXTtỷ lệ kèo bóng đá nútEstate.

tỷ lệ kèo bóng đá hàng được trả về phải khớp vớifdw_scan_tlistDanh sách mục tiêu Nếu được cung cấp, nếu không chúng phải khớp với loại hàng của bàn nước ngoài được quét. Nếu bạn chọn tối ưu hóa tỷ lệ kèo bóng đá cột tìm nạp không cần thiết, bạn nên chèn tỷ lệ kèo bóng đá null vào tỷ lệ kèo bóng đá vị trí cột đó, hoặc nếu không sẽ tạo raFDW_SCAN_TLISTDanh sách với tỷ lệ kèo bóng đá cột bị bỏ qua.

Lưu ý rằngPostgreSQLNgười thực thi không quan tâm liệu tỷ lệ kèo bóng đá hàng có trả lại vi phạm bất kỳ ràng buộc nào được xác định trên Bàn nước ngoài hay không - nhưng người lập kế hoạch quan tâm và có thể tối ưu hóa tỷ lệ kèo bóng đá truy vấn không chính xác nếu có tỷ lệ kèo bóng đá hàng có thể nhìn thấy trong bảng nước ngoài không thỏa mãn ràng buộc. Nếu một ràng buộc bị vi phạm khi người dùng đã tuyên bố rằng ràng buộc sẽ đúng, có thể phù hợp để gây ra lỗi (giống như bạn cần phải làm trong trường hợp không khớp loại dữ liệu).

Void

Khởi động tỷ lệ kèo bóng đá quá trình quét từ đầu. Lưu ý rằng bất kỳ tham số nào mà quét phụ thuộc vào có thể đã thay đổi giá trị, do đó quét mới không nhất thiết phải trả về chính xác cùng một hàng.

Void

Kết thúc tài nguyên quét và phát hành. Thông thường không quan trọng để phát hành bộ nhớ palloc'd, nhưng ví dụ: mở tỷ lệ kèo bóng đá tệp và kết nối với tỷ lệ kèo bóng đá máy chủ từ xa nên được làm sạch.

57.2.2.tỷ lệ kèo bóng đá thói quen của FDW để quét tỷ lệ kèo bóng đá tham gia nước ngoài

Nếu FDW hỗ trợ thực hiện tỷ lệ kèo bóng đá tham gia nước ngoài từ xa (thay vì tìm nạp dữ liệu của cả hai bảng và thực hiện tham gia cục bộ), nó sẽ cung cấp chức năng gọi lại này:

VOID

Tạo tỷ lệ kèo bóng đá đường dẫn truy cập có thể cho sự tham gia của hai (hoặc nhiều) bảng nước ngoài mà tất cả đều thuộc về cùng một máy chủ nước ngoài. Chức năng tùy chọn này được gọi trong quá trình lập kế hoạch truy vấn.GetForigpPaths, Hàm này sẽ tạoForeignPathĐường dẫn cho được cung cấptham gia(Sử dụngcreated_forign_join_pathĐể xây dựng chúng) và tỷ lệ kèo bóng đáadd_pathĐể thêm tỷ lệ kèo bóng đá đường dẫn này vào tập hợp tỷ lệ kèo bóng đá đường dẫn được xem xét cho sự tham gia. Nhưng không giống nhưGetForignPaths, Không nhất thiết phải thành công trong việc tạo ít nhất một đường dẫn, vì tỷ lệ kèo bóng đá đường dẫn liên quan đến việc tham gia cục bộ luôn luôn có thể.

Lưu ý rằng chức năng này sẽ được gọi nhiều lần cho cùng một mối quan hệ tham gia, với tỷ lệ kèo bóng đá kết hợp khác nhau của quan hệ bên trong và bên ngoài; Trách nhiệm của FDW là giảm thiểu công việc trùng lặp.

Nếu AForeignPathĐường dẫn được chọn cho tham gia, nó sẽ đại diện cho toàn bộ quá trình tham gia; tỷ lệ kèo bóng đá đường dẫn được tạo cho tỷ lệ kèo bóng đá bảng thành phần và tỷ lệ kèo bóng đá công ty con sẽ không được sử dụng.ScanRelidtỷ lệ kèo bóng đá kết quảForeignScanKế hoạch nên được đặt thành 0, vì không có mối quan hệ nào mà nó đại diện; Thay vào đó,fs_relidstrường tỷ lệ kèo bóng đáForeignScanNode đại diện cho tập hợp tỷ lệ kèo bóng đá mối quan hệ đã được nối. .FDW_SCAN_TLISTVới danh sách thích hợpTargetEntrytỷ lệ kèo bóng đá nút, đại diện cho tập hợp tỷ lệ kèo bóng đá cột nó sẽ cung cấp trong thời gian chạy trong tỷ lệ kèo bóng đá bộ dữ liệu mà nó trả về.

xemPhần 57.4Để biết thêm thông tin.

57.2.3.tỷ lệ kèo bóng đá thói quen của FDW để lập kế hoạch xử lý sau khi quét/tham gia

Nếu FDW hỗ trợ thực hiện xử lý sau khi quét/tham gia từ xa, chẳng hạn như tập hợp từ xa, nó sẽ cung cấp chức năng tỷ lệ kèo bóng đá lại này:

VOID

Tạo đường dẫn truy cập có thể choquan hệ trênXử lý, là thuật ngữ của người lập kế hoạch cho tất cả tỷ lệ kèo bóng đá truy vấn sau khi quét/tham gia, chẳng hạn như tập hợp, chức năng cửa sổ, sắp xếp và cập nhật bảng. Chức năng tùy chọn này được gọi trong quá trình lập kế hoạch truy vấn.ForeignPathĐường dẫn cho bất kỳ xử lý sau khi quét/tham gia nào mà FDW biết cách thực hiện từ xa (sử dụngcreated_forign_upper_pathđể xây dựng chúng) và tỷ lệ kèo bóng đáadd_pathĐể thêm tỷ lệ kèo bóng đá đường dẫn này vào quan hệ trên được chỉ định. Như vớigetforeignjoinpaths, Không cần thiết phải thành công trong việc tạo ra bất kỳ đường dẫn nào, vì tỷ lệ kèo bóng đá đường dẫn liên quan đến xử lý cục bộ luôn luôn có thể.

TheGiai đoạntham số xác định bước sau khi quét/tham gia hiện đang được xem xét.output_rellà mối quan hệ trên sẽ nhận tỷ lệ kèo bóng đá đường dẫn đại diện cho tính toán của bước này vàinput_rellà mối quan hệ đại diện cho đầu vào cho bước này. TheExtraTham số cung cấp chi tiết bổ sung, hiện tại, nó chỉ được đặt choupperrel_partial_group_agghoặcupperrel_group_agg, trong trường hợp đó nó chỉ vào AGROUPPATHEXTRADATACấu trúc; hoặc choupperrel_final, trong trường hợp đó nó chỉ vào AFinalPathExtradataCấu trúc. (Lưu ý rằngForeignPathĐường dẫn được thêm vàooutput_relThông thường sẽ không có bất kỳ sự phụ thuộc trực tiếp nào vào tỷ lệ kèo bóng đá đường dẫn củainput_rel, vì việc xử lý của họ dự kiến ​​sẽ được thực hiện bên ngoài. Tuy nhiên, việc kiểm tra tỷ lệ kèo bóng đá đường dẫn được tạo trước đó cho bước xử lý trước đó có thể hữu ích để tránh công việc lập kế hoạch dự phòng.)

xemPhần 57.4Để biết thêm thông tin.

57.2.4.tỷ lệ kèo bóng đá thói quen FDW để cập nhật tỷ lệ kèo bóng đá bảng nước ngoài

Nếu FDW hỗ trợ tỷ lệ kèo bóng đá bảng nước ngoài có thể ghi, nó sẽ cung cấp một số hoặc tất cả tỷ lệ kèo bóng đá chức năng gọi lại sau đây tùy thuộc vào nhu cầu và khả năng của FDW:

VOID

Cập nhậtXóaHoạt động được thực hiện đối với tỷ lệ kèo bóng đá hàng trước đó được tìm nạp trước tỷ lệ kèo bóng đá chức năng quét bảng. FDW có thể cần thêm thông tin, chẳng hạn như ID hàng hoặc tỷ lệ kèo bóng đá giá trị của tỷ lệ kèo bóng đá cột khóa chính, để đảm bảo rằng nó có thể xác định hàng chính xác để cập nhật hoặc xóa.HồirácHồi, tỷ lệ kèo bóng đá cột mục tiêu vào danh sách tỷ lệ kèo bóng đá cột sẽ được lấy từ Bàn nước ngoài trong mộtCập nhậthoặcXóa.

Để làm điều đó, xây dựng AvarĐại diện cho một giá trị thêm bạn cần và chuyển nó choadd_row_identity_var, cùng với một tên cho cột rác. (Bạn có thể làm điều này nhiều hơn một lần nếu cần một số cột.) Bạn phải chọn một tên cột rác riêng biệt cho mỗi khác nhauvarBạn cần, ngoại trừvars giống hệt nhau ngoại trừVarnoTrường có thể và nên chia sẻ tên cột. Hệ thống cốt lõi sử dụng tên cột rácTableoidcho bảng tỷ lệ kèo bóng đáTableoidCột,CTIDhoặcCTIDnchoCTID,Wholerowcho cả hàngvarĐược đánh dấu bằngVartype=RecordWholerowncho cả hàngvarvớiVartypebằng với loại hàng được khai báo của bảng. Sử dụng lại tỷ lệ kèo bóng đá tên này khi bạn có thể (người lập kế hoạch sẽ kết hợp tỷ lệ kèo bóng đá yêu cầu trùng lặp cho tỷ lệ kèo bóng đá cột rác giống hệt nhau).

NếuCon trỏ được đặt thànhnull, không có biểu thức mục tiêu nào được thêm vào. (Điều này sẽ khiến nó không thể thực hiệnXóahoạt động, mặc dùCập nhậtCó thể vẫn khả thi nếu FDW dựa vào khóa chính không thay đổi để xác định hàng.)

Danh sách *

Thực hiện bất kỳ hành động lập kế hoạch bổ sung nào cần thiết để chèn, cập nhật hoặc xóa trên bàn nước tỷ lệ kèo bóng đá. Chức năng này tạo ra thông tin FDW-Private sẽ được đính kèm vớiModifyTableKế hoạch nút thực hiện hành động cập nhật. Thông tin cá nhân này phải có dạng ADanh sáchvà sẽ được chuyển đếnBeginForignModifyTrong giai đoạn thực thi.

Rootlà thông tin toàn cầu tỷ lệ kèo bóng đá người lập kế hoạch về truy vấn.kế hoạchModifyTableKế hoạch Node, hoàn thành ngoại trừFDWPRIVLISStrường.ResultrelationXác định bảng nước tỷ lệ kèo bóng đá mục tiêu theo chỉ mục bảng phạm vi của nó.Subplan_indexXác định mục tiêu nào tỷ lệ kèo bóng đáModifyTableKế hoạch nút Đây là, đếm từ số không; Sử dụng điều này nếu bạn muốn lập chỉ mục vào tỷ lệ kèo bóng đá cấu trúc liên quan đến mỗi mục tiêu củakế hoạchNode.

xemPhần 57.4Để biết thêm thông tin.

NếuplanforignmodifyCon trỏ được đặt thànhnull, Không có hành động thời gian kế hoạch bổ sung nào được thực hiện vàFDW_PrivateDanh sách được giao choBeginForignModifysẽ là nil.

VOID

Bắt đầu thực hiện hoạt động sửa đổi bàn nước tỷ lệ kèo bóng đá. Thói quen này được gọi trong quá trình khởi động thực thi.31412_31454,EXECFORIGNUPDATEhoặcExecforeIgnDeletesẽ được tỷ lệ kèo bóng đá cho (s) được chèn, cập nhật hoặc xóa.

MTSTATElà trạng thái tổng thể tỷ lệ kèo bóng đáModifyTableKế hoạch nút được thực thi; Dữ tỷ lệ kèo bóng đá toàn cầu về kế hoạch và trạng thái thực thi có sẵn thông qua cấu trúc này.rinforesultrelInfoCấu trúc mô tả bảng nước tỷ lệ kèo bóng đá mục tiêu. (TheRI_FDWSTATEtrường tỷ lệ kèo bóng đáresultrelInfoCó sẵn cho FDW để lưu trữ bất kỳ trạng thái riêng tư nào mà nó cần cho hoạt động này.)FDW_PrivateChứa dữ tỷ lệ kèo bóng đá riêng được tạo bởiPlanForignModify, nếu có.Subplan_indexXác định mục tiêu nào tỷ lệ kèo bóng đáModifyTableKế hoạch nút này.EFLAGSChứa tỷ lệ kèo bóng đá bit cờ mô tả chế độ hoạt động của người thực thi cho nút kế hoạch này.

Lưu ý rằng khi(eflags & exec_flag_explain_only)là đúng, chức năng này không nên thực hiện bất kỳ hành động nào có thể nhìn thấy bên tỷ lệ kèo bóng đá; nó chỉ nên làm tối thiểu cần thiết để làm cho trạng thái nút hợp lệ choGiải thích trước khi điều chỉnhFendForignModify.

NếuBeginForignModifyCon trỏ được đặt thànhnull, không có hành động nào được thực hiện trong quá trình khởi động thực thi.

tupletableslot *

Chèn một tuple vào Bàn nước tỷ lệ kèo bóng đá.EstateTrạng thái thực thi toàn cầu cho truy vấn.rinfo​​resultrelInfoCấu trúc mô tả bảng nước tỷ lệ kèo bóng đá đích.slotchứa bộ tuple được chèn; Nó sẽ khớp với định nghĩa loại hàng của Bàn nước tỷ lệ kèo bóng đá.SP rapchứa bộ tuple được tạo bởiModifyTablekế hoạch con tỷ lệ kèo bóng đá nút; nó khác vớislottrong có thể chứa bổ sungrácCột. (Theplanlotthường là ít quan tâm choChèntrường hợp, nhưng được cung cấp cho sự hoàn chỉnh.)

Giá trị trả về là một khe chứa dữ liệu thực sự được chèn (điều này có thể khác với dữ liệu được cung cấp, ví dụ như kết quả của tỷ lệ kèo bóng đá hành động kích hoạt) hoặc null nếu không có hàng nào được chèn (một lần nữa, thường là kết quả của tỷ lệ kèo bóng đá kích hoạt). Thông quakhecó thể được sử dụng tỷ lệ kèo bóng đá cho mục đích này.

Dữ tỷ lệ kèo bóng đá trong khe được trả về chỉ được sử dụng nếuChèncâu lệnh cóTrở vềmệnh đề hoặc liên quan đến chế độ xemVới tùy chọn kiểm tra; hoặc nếu Bàn nước tỷ lệ kèo bóng đá cósau hàngTrigger. Trình kích hoạt yêu cầu tất cả tỷ lệ kèo bóng đá cột, nhưng FDW có thể chọn tối ưu hóa việc trả về một số hoặc tất cả tỷ lệ kèo bóng đá cột tùy thuộc vào nội dung củaTrở vềmệnh đề hoặcVới tùy chọn kiểm traràng buộc. Bất kể, một số khe phải được trả lại để biểu thị thành công, hoặc số lượng hàng được báo cáo tỷ lệ kèo bóng đá truy vấn sẽ sai.

NếuEXECFORIGNINSERTCon trỏ được đặt thànhnull, Cố gắng chèn vào Bàn nước tỷ lệ kèo bóng đá sẽ thất bại với thông báo lỗi.

Lưu ý rằng chức năng này cũng được gọi khi chèn tỷ lệ kèo bóng đá bộ dữ liệu được định tuyến vào phân vùng bàn nước ngoài hoặc thực thiSao chép từTrên bàn nước tỷ lệ kèo bóng đá, trong trường hợp đó nó được gọi theo một cách khác so với trongChèntrường hợp. Xem tỷ lệ kèo bóng đá chức năng gọi lại được mô tả bên dưới cho phép FDW hỗ trợ điều đó.

tupletableslot **

Chèn nhiều tổng số với số lượng lớn vào Bàn nước ngoài. tỷ lệ kèo bóng đá tham số giống nhau choEXECFORIGNINSERTngoại trừslotPRANSLOTSchứa nhiều bộ dữ tỷ lệ kèo bóng đá và*numslotsChỉ định số lượng bộ dữ liệu trong tỷ lệ kèo bóng đá mảng đó.

Giá trị trả về là một mảng tỷ lệ kèo bóng đá khe chứa dữ liệu thực sự được chèn (điều này có thể khác với dữ liệu được cung cấp, ví dụ như kết quả của tỷ lệ kèo bóng đá hành động kích hoạt.)slotcó thể được sử dụng lại cho mục đích này. Số lượng bộ dữ tỷ lệ kèo bóng đá được chèn thành công được trả về trong*numslots.

Dữ tỷ lệ kèo bóng đá trong khe được trả về chỉ được sử dụng nếuChènCâu lệnh liên quan đến chế độ xemVới tùy chọn kiểm tra; hoặc nếu Bàn nước tỷ lệ kèo bóng đá cósau hàngTrigger. Trình kích hoạt yêu cầu tất cả tỷ lệ kèo bóng đá cột, nhưng FDW có thể chọn tối ưu hóa việc trả về một số hoặc tất cả tỷ lệ kèo bóng đá cột tùy thuộc vào nội dung củaVới tùy chọn kiểm traràng buộc.

NếuEXECFORIGNBATCHINSERThoặcgetforeignModifyBatchSizeCon trỏ được đặt thànhnull, cố gắng chèn vào Bàn nước tỷ lệ kèo bóng đá sẽ sử dụngEXECFORIGNINSERT. Chức năng này không được sử dụng nếuChènTrở vềmệnh đề.

Lưu ý rằng chức năng này cũng được gọi khi chèn tỷ lệ kèo bóng đá bộ dữ liệu được định tuyến vào một phân vùng bàn nước ngoài. Xem tỷ lệ kèo bóng đá chức năng gọi lại được mô tả bên dưới cho phép FDW hỗ trợ điều đó.

int

Báo cáo số lượng bộ dữ tỷ lệ kèo bóng đá tối đa mà mộtEXECFORIGNBATCHINSERTCuộc gọi có thể xử lý cho Bàn nước tỷ lệ kèo bóng đá được chỉ định. Người thực thi chuyển nhiều nhất số lượng bộ dữ liệu đã cho đếnEXECFORIGNBATCHINSERT.rinforesultrelInfoCấu trúc mô tả bảng nước tỷ lệ kèo bóng đá mục tiêu. FDW dự kiến ​​sẽ cung cấp một máy chủ nước tỷ lệ kèo bóng đá và/hoặc tùy chọn bàn nước tỷ lệ kèo bóng đá để người dùng đặt giá trị này hoặc một số giá trị được mã hóa cứng.

NếuEXECFORIGNBATCHINSERThoặcGetforeignModifyBatchSizeCon trỏ được đặt thànhnull, cố gắng chèn vào bàn nước tỷ lệ kèo bóng đá sẽ sử dụngEXECFORIGNINSERT.

tupletableslot *

Cập nhật một tuple trong Bàn nước tỷ lệ kèo bóng đá.Estatelà trạng thái thực thi toàn cầu cho truy vấn.rinforesultrelInfoCấu trúc mô tả bảng nước tỷ lệ kèo bóng đá đích.slotChứa dữ liệu mới cho tuple; Nó sẽ khớp với định nghĩa loại hàng của Bàn nước tỷ lệ kèo bóng đá.planlotchứa bộ tuple được tạo bởiModifyTableSubplan tỷ lệ kèo bóng đá Node kế hoạch. Không giống nhưslot, Tuple này chỉ chứa tỷ lệ kèo bóng đá giá trị mới cho tỷ lệ kèo bóng đá cột được thay đổi bởi truy vấn, do đó không dựa vào số thuộc tính của bảng nước ngoài để lập chỉ mục thànhSP rap. Cũng,SP rapThông thường chứa bổ sungrácCột. Cụ thể, bất kỳ cột rác nào được yêu cầu bởisẽ có sẵn từ khe này.

Giá trị trả về là một khe chứa hàng vì nó thực sự được cập nhật (điều này có thể khác với dữ liệu được cung cấp, ví dụ như kết quả của tỷ lệ kèo bóng đá hành động kích hoạt) hoặc null nếu không có hàng nào được cập nhật (một lần nữa, thường là kết quả của tỷ lệ kèo bóng đá kích hoạt). Thông quaslotcó thể được sử dụng tỷ lệ kèo bóng đá cho mục đích này.

Dữ tỷ lệ kèo bóng đá trong khe được trả về chỉ được sử dụng nếuCập nhậtCâu lệnh cóTrở vềmệnh đề hoặc liên quan đến chế độ xemVới tùy chọn kiểm tra; hoặc nếu Bàn nước tỷ lệ kèo bóng đá cósau hàngTrigger. Trình kích hoạt yêu cầu tất cả tỷ lệ kèo bóng đá cột, nhưng FDW có thể chọn tối ưu hóa việc trả về một số hoặc tất cả tỷ lệ kèo bóng đá cột tùy thuộc vào nội dung củaTrở vềmệnh đề hoặcVới tùy chọn kiểm traràng buộc. Bất kể, một số khe phải được trả lại để biểu thị thành công, hoặc số lượng hàng được báo cáo tỷ lệ kèo bóng đá truy vấn sẽ sai.

NếuExecforeIgnupDateCon trỏ được đặt thànhnull, Cố gắng cập nhật bảng nước tỷ lệ kèo bóng đá sẽ thất bại với thông báo lỗi.

tupletableslot *

Xóa một tuple khỏi Bàn nước tỷ lệ kèo bóng đá.Estatelà trạng thái thực thi toàn cầu cho truy vấn.rinforesultrelInfoCấu trúc mô tả bảng nước tỷ lệ kèo bóng đá đích.slotKhông chứa gì hữu ích khi tỷ lệ kèo bóng đá, nhưng có thể được sử dụng để giữ Tuple trả về.planlotchứa bộ tuple được tạo bởiModifyTableSubplan tỷ lệ kèo bóng đá Node kế hoạch; Cụ thể, nó sẽ mang bất kỳ cột rác nào được yêu cầu bởi. (tỷ lệ kèo bóng đá) cột rác phải được sử dụng để xác định tuple sẽ bị xóa.

Giá trị trả về là một khe chứa hàng đã bị xóa hoặc null nếu không có hàng nào bị xóa (thường là kết quả của tỷ lệ kèo bóng đá kích hoạt). Thông quaslotCó thể được sử dụng để giữ phần mềm để được trả về.

Dữ tỷ lệ kèo bóng đá trong khe được trả về chỉ được sử dụng nếuXóaTruy vấn cóTrở vềmệnh đề hoặc bàn nước tỷ lệ kèo bóng đá cósau hàngTrigger. Trình kích hoạt yêu cầu tất cả tỷ lệ kèo bóng đá cột, nhưng FDW có thể chọn tối ưu hóa việc trả về một số hoặc tất cả tỷ lệ kèo bóng đá cột tùy thuộc vào nội dung củaTrở vềmệnh đề. Bất kể, một số khe phải được trả lại để biểu thị thành công, hoặc số lượng hàng được báo cáo tỷ lệ kèo bóng đá truy vấn sẽ sai.

NếuExecforeIgnDeleteCon trỏ được đặt thànhnull, Cố gắng xóa khỏi Bàn nước tỷ lệ kèo bóng đá sẽ thất bại với thông báo lỗi.

Void

Kết thúc bản cập nhật và phát hành tài nguyên. Thông thường không quan trọng để phát hành bộ nhớ palloc'd, nhưng ví dụ: mở tỷ lệ kèo bóng đá tệp và kết nối với tỷ lệ kèo bóng đá máy chủ từ xa nên được làm sạch.

NếuFendForignModifyCon trỏ được đặt thànhnull, không có hành động nào được thực hiện trong quá trình tắt thực thi.

Tuples được chèn vào bảng được phân vùng bởiChènhoặcSao chép từđược chuyển đến tỷ lệ kèo bóng đá phân vùng. Nếu FDW hỗ trợ tỷ lệ kèo bóng đá phân vùng bảng nước ngoài có thể định kỳ, nó cũng sẽ cung cấp tỷ lệ kèo bóng đá chức năng gọi lại sau.Sao chép từđược thực thi trên bàn nước tỷ lệ kèo bóng đá.

VOID

Bắt đầu thực hiện một thao tác chèn trên bàn nước tỷ lệ kèo bóng đá. Thói quen này được gọi ngay trước khi tuple đầu tiên được chèn vào Bàn nước tỷ lệ kèo bóng đá trong cả hai trường hợp khi đó là phân vùng được chọn để định tuyến Tuple và mục tiêu được chỉ định trongSao chép từLệnh. Nó sẽ thực hiện bất kỳ khởi tạo cần thiết trước khi chèn thực tế.EXECFORIGNINSERThoặcEXECFORIGNBATCHINSERTsẽ được gọi cho Tuple (S) được chèn vào Bàn nước tỷ lệ kèo bóng đá.

MTSTATElà trạng thái tổng thể tỷ lệ kèo bóng đáModifyTableKế hoạch nút được thực thi; Dữ tỷ lệ kèo bóng đá toàn cầu về kế hoạch và trạng thái thực thi có sẵn thông qua cấu trúc này.rinforesultrelInfoCấu trúc mô tả bảng nước tỷ lệ kèo bóng đá mục tiêu. (TheRI_FDWSTATETrườngresultrelInfoCó sẵn cho FDW để lưu trữ bất kỳ trạng thái riêng tư nào mà nó cần cho hoạt động này.)

Khi điều này được tỷ lệ kèo bóng đá bởi ASao chép từLệnh, dữ tỷ lệ kèo bóng đá toàn cầu liên quan đến kế hoạch trongMTSTATEkhông được cung cấp vàSP raptham số tỷ lệ kèo bóng đáEXECFORIGNINSERTSau đó được tỷ lệ kèo bóng đá cho mỗi bộ được chèn lànull, cho dù bảng nước tỷ lệ kèo bóng đá là phân vùng được chọn để định tuyến tuple hay mục tiêu được chỉ định trong lệnh.

NếuBeginForignInsertCon trỏ được đặt thànhnull, không có hành động nào được thực hiện để khởi tạo.

Lưu ý rằng nếu FDW không hỗ trợ tỷ lệ kèo bóng đá phân vùng bảng nước ngoài có thể định kỳ và/hoặc thực thiSao chép từTrên tỷ lệ kèo bóng đá bảng nước ngoài, chức năng này hoặc45905_45947Sau đó được tỷ lệ kèo bóng đá là phải ném lỗi khi cần.

Void

Kết thúc hoạt động chèn và tài nguyên phát hành. Thông thường không quan trọng để phát hành bộ nhớ palloc'd, nhưng ví dụ: mở tỷ lệ kèo bóng đá tệp và kết nối với tỷ lệ kèo bóng đá máy chủ từ xa nên được làm sạch.

NếuFendForignInsertCon trỏ được đặt thànhnull, không có hành động nào được thực hiện để chấm dứt.

int

Báo cáo cập nhật tỷ lệ kèo bóng đá hoạt động của Bàn nước ngoài được chỉ định. Giá trị trả về phải là một chút mặt nạ của tỷ lệ kèo bóng đá số sự kiện quy tắc cho biết tỷ lệ kèo bóng đá hoạt động nào được hỗ trợ bởi Bàn nước ngoài, sử dụngcmdtypeliệt kê; đó là,(1 << cmd_update) = 4choCập nhật,(1 << cmd_insert) = 8choChèn(1 << cmd_delete) = 16choXóa.

NếuisforeignRelupDatableCon trỏ được đặt thànhnull47250_47343EXECFORIGNINSERT,EXECFORIGNUPDATEhoặcExecforeIgnDeletetương ứng. Hàm này chỉ cần thiết nếu FDW hỗ trợ một số bảng có thể cập nhật và một số bảng không.thông tin_schemaLượt xem.)

Một số chèn, cập nhật và xóa tỷ lệ kèo bóng đá bảng nước ngoài có thể được tối ưu hóa bằng cách triển khai một bộ giao diện thay thế. tỷ lệ kèo bóng đá giao diện thông thường để chèn, cập nhật và xóa tìm nạp tỷ lệ kèo bóng đá hàng khỏi máy chủ từ xa và sau đó sửa đổi tỷ lệ kèo bóng đá hàng đó cùng một lúc.Với tùy chọn kiểm tratỷ lệ kèo bóng đá ràng buộc từ tỷ lệ kèo bóng đá quan điểm của cha mẹ), sau đó có thể sắp xếp mọi thứ để toàn bộ hoạt động được thực hiện trên máy chủ từ xa. tỷ lệ kèo bóng đá giao diện được mô tả bên dưới làm cho điều này có thể.

Bool

Quyết định xem có an toàn để thực hiện sửa đổi trực tiếp trên máy chủ từ xa hay không. Nếu vậy, hãy trả tỷ lệ kèo bóng đáTRUESau khi thực hiện tỷ lệ kèo bóng đá hành động lập kế hoạch cần thiết cho điều đó. Nếu không, trở lạiSai. Chức năng tùy chọn này được tỷ lệ kèo bóng đá trong quá trình lập kế hoạch truy vấn.BegindirectModify,iteratedirectModifyEndDirectModifythay vào đó sẽ được gọi ở giai đoạn thực thi. Mặt khác, sửa đổi bảng sẽ được thực hiện bằng cách sử dụng tỷ lệ kèo bóng đá hàm cập nhật bảng được mô tả ở trên.planforeignmodify.

Để thực hiện sửa đổi trực tiếp trên máy chủ từ xa, chức năng này phải viết tỷ lệ kèo bóng đá sơ đồ con đích bằng mộtForeignScanKế hoạch nút thực hiện sửa đổi trực tiếp trên máy chủ từ xa. TheHoạt độngResultrelationTrường tỷ lệ kèo bóng đáForeignScanphải được đặt một cách thích hợp.Hoạt độngphải được đặt thànhcmdtypeliệt kê tương ứng với loại câu lệnh (nghĩa làCMD_UPDATEchoCập nhật,cmd_insertchoChèncmd_deletechoXóa) vàResultrelationĐối số phải được sao chép vàoResultrelationtrường.

xemPhần 57.4Để biết thêm thông tin.

NếuPlandirectModifyCon trỏ được đặt thànhnull, Không cố gắng thực hiện sửa đổi trực tiếp trên máy chủ từ xa được thực hiện.

Void

Chuẩn bị thực hiện sửa đổi trực tiếp trên máy chủ từ xa. Điều này được tỷ lệ kèo bóng đá trong quá trình khởi động thực thi.iteratedirectModify). Thenước tỷ lệ kèo bóng đáNode đã được tạo, nhưng nófdw_stateTrường vẫn còn vô hiệu. Thông tin về bảng để sửa đổi có thể truy cập được thông quaForeignScanStatenút (đặc biệt, từ bên dướiForeignScanKế hoạch nút, chứa bất kỳ thông tin FDW-Private nào được cung cấp bởiPlandirectModify).EFLAGSChứa tỷ lệ kèo bóng đá bit cờ mô tả chế độ hoạt động của người thực thi cho nút kế hoạch này.

Lưu ý rằng khi(eflags & exec_flag_explain_only)là đúng, chức năng này không nên thực hiện bất kỳ hành động nào có thể nhìn nhận được; nó chỉ nên làm tối thiểu cần thiết để làm cho trạng thái nút hợp lệ choGiải thíchDirectModifyEndDirectModify.

NếuBegindirectModifyCon trỏ được đặt thànhnull, Không cố gắng thực hiện sửa đổi trực tiếp trên máy chủ từ xa được thực hiện.

tupletableslot *

KhiChèn,Cập nhậthoặcXóaTruy vấn không cóTrở vềmệnh đề, chỉ cần trả lại null sau khi sửa đổi trực tiếp trên máy chủ từ xa. Khi truy vấn có mệnh đề, hãy lấy một kết quả chứa dữ tỷ lệ kèo bóng đá cần thiết choTrở vềTính toán, trả lại trong khe cắm bảng Tuple (nút tỷ lệ kèo bóng đá nútscantuplotlotnên được sử dụng cho mục đích này). Dữ tỷ lệ kèo bóng đá thực sự được chèn, cập nhật hoặc xóa phải được lưu trữ trongNode- resultrelInfo- RI_ProjectReturning-. Trả tỷ lệ kèo bóng đá null nếu không có nhiều hàng có sẵn.BegindirectModifyNếu bạn cần lưu trữ tồn tại lâu hơn hoặc sử dụngES_Query_CXTtỷ lệ kèo bóng đá nútEstate.

tỷ lệ kèo bóng đá hàng được trả về phải khớp vớiFDW_SCAN_TLISTDanh sách mục tiêu Nếu được cung cấp, nếu không chúng phải khớp với loại hàng của bàn nước ngoài được cập nhật. Nếu bạn chọn tối ưu hóa tỷ lệ kèo bóng đá cột tìm nạp không cần thiết choTrở vềTính toán, bạn nên chèn null vào tỷ lệ kèo bóng đá vị trí cột đó hoặc khác tạo rafdw_scan_tlistLiệt kê với tỷ lệ kèo bóng đá cột bị bỏ qua.

Cho dù truy vấn có mệnh đề hay không, số lượng hàng được báo cáo tỷ lệ kèo bóng đá truy vấn phải được tăng lên bởi chính FDW. Khi truy vấn không có mệnh đề, FDW cũng phải tăng số lượng hàng choForeignScanStatenút trongGiải thích Phân tíchCASE.

NếuiteratedirectModifyCon trỏ được đặt thànhnull, Không cố gắng thực hiện sửa đổi trực tiếp trên máy chủ từ xa được thực hiện.

Void

Làm sạch sau khi sửa đổi trực tiếp trên máy chủ từ xa. Thông thường không quan trọng để phát hành bộ nhớ palloc'd, nhưng ví dụ: mở tỷ lệ kèo bóng đá tệp và kết nối với máy chủ từ xa nên được làm sạch.

NếuendDirectModifyCon trỏ được đặt thànhnull, Không cố gắng thực hiện sửa đổi trực tiếp trên máy chủ từ xa được thực hiện.

57.2.5.tỷ lệ kèo bóng đá thói quen FDW chocắt ngắn

Void

Cắt ngắn tỷ lệ kèo bóng đá bảng nước ngoài. Chức năng này được gọi khicắt ngắnđược thực thi trên bàn nước tỷ lệ kèo bóng đá.relslà danh sáchMối quan hệCấu trúc dữ liệu của tỷ lệ kèo bóng đá bảng nước ngoài để cắt ngắn.

Hành vidrop_restricthoặcdrop_cascadecho biếtHạn chếhoặcCascadetùy chọn được yêu cầu trong bản gốccắt ngắnlệnh, tương ứng.

nếurestart_seqsTRUE, bản gốccắt ngắnLệnh được yêu cầuKhởi động tỷ lệ kèo bóng đá danh tínhHành vi, nếu không thìTiếp tục nhận dạngHành vi đã được yêu cầu.

Lưu ý rằngchỉTùy chọn được chỉ định trong bản gốccắt ngắnLệnh không được truyền choEXECFORIGNTRUCATE. Hành vi này tương tự như tỷ lệ kèo bóng đá chức năng gọi lại củaChọn,Cập nhậtXóaTrên bàn nước tỷ lệ kèo bóng đá.

ExecforeignTruncateđược gọi một lần trên mỗi máy chủ nước ngoài mà tỷ lệ kèo bóng đá bảng nước ngoài sẽ bị cắt ngắn. Điều này có nghĩa là tất cả tỷ lệ kèo bóng đá bảng nước ngoài có trongrelsPhải thuộc về cùng một máy chủ.

NếuEXECFORIGNTRUCATECon trỏ được đặt thànhnull, Cố gắng cắt ngắn tỷ lệ kèo bóng đá bảng nước ngoài sẽ thất bại với thông báo lỗi.

57.2.6.tỷ lệ kèo bóng đá thói quen FDW để khóa hàng

Nếu FDW muốn hỗ trợkhóa hàng muộn(như được mô tả trongPhần 57.5), nó phải cung cấp tỷ lệ kèo bóng đá chức năng gọi lại sau:

RowMarkType

Báo cáo tùy chọn đánh dấu hàng nào để sử dụng cho một bàn nước tỷ lệ kèo bóng đá.RTERangetBlentrynút cho bảng vàSức mạnhMô tả cường độ khóa được yêu cầu bởi liên quanđể cập nhật/chia sẻmệnh đề, nếu có. Kết quả phải là thành viên tỷ lệ kèo bóng đáRowMarkTypeLoại Enum.

Hàm này được gọi trong quá trình lập kế hoạch truy vấn cho mỗi bảng nước tỷ lệ kèo bóng đá xuất hiện trong mộtCập nhật,XóahoặcChọn để cập nhật/chia sẻTruy vấn và không phải là mục tiêu tỷ lệ kèo bóng đáCập nhậthoặcXóa.

NếugetforeignrowmarktypeCon trỏ được đặt thànhnull, TheROW_MARE_COPYTùy chọn luôn được sử dụng. (Điều này ngụ ý rằngRefetchForeIgnrowsẽ không bao giờ được tỷ lệ kèo bóng đá, vì vậy nó cũng không cần phải được cung cấp.)

xemPhần 57.5Để biết thêm thông tin.

VOID

Lấy lại một khe cắm từ bàn nước tỷ lệ kèo bóng đá, sau khi khóa nó nếu được yêu cầu.EstateTrạng thái thực thi toàn cầu cho truy vấn.ERMExecRowMarkCấu trúc mô tả bảng nước tỷ lệ kèo bóng đá mục tiêu và loại khóa hàng (nếu có) để có được.ROWIDXác định Tuple sẽ được tìm nạp.slotKhông chứa gì hữu ích khi tỷ lệ kèo bóng đá, nhưng có thể được sử dụng để giữ tuple trả lại.Cập nhậtlà tham số đầu ra.

Chức năng này sẽ lưu trữ Tuple vào khe được cung cấp hoặc xóa nó nếu không thể thu được khóa hàng. Loại khóa hàng để thu được được xác định bởierm- marktype, là giá trị trước đó được trả về trướcgetforeignrowmarkType. (Row_Mark_Referencecó nghĩa là chỉ cần tìm nạp tỷ lệ kèo bóng đá tuple mà không cần có bất kỳ khóa nào vàRow_Mark_Copysẽ không bao giờ được nhìn thấy bởi thói quen này.)

tỷ lệ kèo bóng đá ra,*Cập nhậtnên được đặt thànhTRUENếu những gì được tìm nạp là phiên bản cập nhật tỷ lệ kèo bóng đá tuple chứ không phải cùng một phiên bản thu được trước đó. (Nếu FDW không thể chắc chắn về điều này, hãy luôn quay trở lạiTRUEđược khuyến nghị.)

Lưu ý rằng theo mặc định, việc không có được khóa hàng sẽ dẫn đến việc gây ra lỗi; Trả tỷ lệ kèo bóng đá với một khe trống chỉ phù hợp nếuBỏ qua khóaTùy chọn được chỉ định bởiERM- Waitpolicy.

TheROWIDCTIDGiá trị đọc trước đây cho hàng được tìm nạp tỷ lệ kèo bóng đá. Mặc dùROWIDGiá trị được truyền dưới dạngDatum, hiện tại nó chỉ có thể làTID. API chức năng được chọn với hy vọng rằng có thể cho phép tỷ lệ kèo bóng đá loại dữ liệu khác cho ID hàng trong tương lai.

NếuRefetchForeIgnrowCon trỏ được đặt thànhnull, Cố gắng lấy lại tỷ lệ kèo bóng đá hàng sẽ không thành công với thông báo lỗi.

xemPhần 57.5Để biết thêm thông tin.

Bool

Kiểm tra lại rằng một tuple đã được trả lại trước đó vẫn phù hợp với vòng loại quét và tham gia tỷ lệ kèo bóng đá vòng loại có liên quan và có thể cung cấp một phiên bản sửa đổi của tuple. Đối với tỷ lệ kèo bóng đá trình bao bọc dữ liệu nước ngoài không thực hiện tham gia Pushdown, thông thường sẽ thuận tiện hơn để đặt điều này thànhnullvà thay vào đó đặtFDW_RECHECK_QUALSmột cách thích hợp. Tuy nhiên, khi tỷ lệ kèo bóng đá kết nối bên ngoài được đẩy xuống, tuy nhiên, việc áp dụng lại tỷ lệ kèo bóng đá kiểm tra có liên quan đến tất cả tỷ lệ kèo bóng đá bảng cơ sở với kết quả là không đủ, ngay cả khi tất cả tỷ lệ kèo bóng đá thuộc tính cần thiết đều có mặt, bởi vì không phù hợp với một số vòng loại có thể dẫn đến một số thuộc tính sẽ vô hiệu hóa, thay vì không được trả lại.RecheckForignScan62747_62903

Để thực hiện tham gia Pushdown, một trình bao bọc dữ liệu nước tỷ lệ kèo bóng đá thường sẽ xây dựng một kế hoạch tham gia cục bộ thay thế chỉ được sử dụng để kiểm tra lại; Điều này sẽ trở thành kế hoạch con bên tỷ lệ kèo bóng đá củaForeignScan. Khi cần phải kiểm tra tỷ lệ kèo bóng đá, sơ đồ con này có thể được thực thi và bộ tuple kết quả có thể được lưu trữ trong khe.GetExistingLocalJoinPathCó thể được sử dụng để tìm kiếm tỷ lệ kèo bóng đá đường dẫn hiện có cho đường dẫn tham gia cục bộ phù hợp, có thể được sử dụng làm kế hoạch tham gia cục bộ thay thế.GetExistingLocalJoinPathTìm kiếm một đường dẫn không phân chia trong danh sách đường dẫn tỷ lệ kèo bóng đá mối quan hệ tham gia được chỉ định. .

57.2.7.tỷ lệ kèo bóng đá thói quen FDW choGiải thích

VOID

In bổ sungGiải thíchđầu ra cho quét bảng nước tỷ lệ kèo bóng đá. Chức năng này có thể gọiGiải thíchPropertyTextvà tỷ lệ kèo bóng đá chức năng liên quan để thêm tỷ lệ kèo bóng đá trường vàoGiải thíchđầu ra. tỷ lệ kèo bóng đá trường cờ trongesCó thể được sử dụng để xác định những gì cần in và trạng thái tỷ lệ kèo bóng đáForeignScanStateNode có thể được kiểm tra để cung cấp số tỷ lệ kèo bóng đá thống kê thời gian chạy trongGiải thích Phân tíchcase.

NếuGiải thích FormentIgnScanCon trỏ được đặt thànhnull, Không có thông tin bổ sung nào được in trongGiải thích.

VOID

In bổ sungGiải thíchđầu ra cho bản cập nhật bàn nước tỷ lệ kèo bóng đá. Chức năng này có thể gọiGiải thíchPropertyTextvà tỷ lệ kèo bóng đá chức năng liên quan để thêm tỷ lệ kèo bóng đá trường vàoGiải thíchđầu ra. tỷ lệ kèo bóng đá trường cờ trongesCó thể được sử dụng để xác định những gì cần in và trạng thái tỷ lệ kèo bóng đáModifyTablestateNode có thể được kiểm tra để cung cấp số tỷ lệ kèo bóng đá thống kê thời gian chạy trongGiải thích Phân tíchtrường hợp. Bốn đối số đầu tiên giống như đối vớiBeginForignModify.

NếuGiải thích trước khi điều chỉnhCon trỏ được đặt thànhnull, Không có thông tin bổ sung nào được in trongGiải thích.

Void

In bổ sungGiải thíchđầu ra để sửa đổi trực tiếp trên máy chủ từ xa. Chức năng này có thể tỷ lệ kèo bóng đáGiải thíchPropertyTextvà tỷ lệ kèo bóng đá chức năng liên quan để thêm tỷ lệ kèo bóng đá trường vàoGiải thíchđầu ra. tỷ lệ kèo bóng đá trường cờ trongesCó thể được sử dụng để xác định những gì cần in và trạng thái tỷ lệ kèo bóng đáForeignScanStateNode có thể được kiểm tra để cung cấp số tỷ lệ kèo bóng đá thống kê thời gian chạy trongGiải thích Phân tíchCase.

NếuGiải thíchDirectModifyCon trỏ được đặt thànhnull, Không có thông tin bổ sung nào được in trongGiải thích.

57.2.8.tỷ lệ kèo bóng đá thói quen FDW choPhân tích

Bool

Hàm này được tỷ lệ kèo bóng đá khiPhân tíchđược thực thi trên bàn nước tỷ lệ kèo bóng đá. Nếu FDW có thể thu thập số liệu thống kê cho Bàn nước tỷ lệ kèo bóng đá này, nó sẽ trả lạiTRUE, và cung cấp một con trỏ cho một hàm sẽ thu thập tỷ lệ kèo bóng đá hàng mẫu từ bảng trongfunc, cộng với kích thước ước tính của bảng trong tỷ lệ kèo bóng đá trang trongTotalPages. Nếu không, trở tỷ lệ kèo bóng đáSai.

Nếu FDW không hỗ trợ thu thập số tỷ lệ kèo bóng đá thống kê cho bất kỳ bảng nào,68088_68109Con trỏ có thể được đặt thànhnull.

Nếu được cung cấp, chức năng thu thập mẫu phải có chữ ký

int

Một mẫu ngẫu nhiên lên đếnTargrowsHàng phải được thu thập từ bảng và được lưu trữ vào người tỷ lệ kèo bóng đá được cung cấphàngMảng. Số lượng hàng thực tế được thu thập phải được trả về.TotalRowsTotalDeadrows. (BộTotalDeadrowsđến 0 Nếu FDW không có bất kỳ khái niệm nào về hàng chết.)

57.2.9.tỷ lệ kèo bóng đá thói quen FDW choNhập lược đồ nước tỷ lệ kèo bóng đá

Danh sách *

Lấy danh sách tỷ lệ kèo bóng đá lệnh tạo bảng nước ngoài. Chức năng này được gọi khi thực thiNhập lược đồ nước tỷ lệ kèo bóng đá, và được thông qua cây phân tích cho câu lệnh đó, cũng như OID của máy chủ nước ngoài sử dụng. Nó sẽ trả về một danh sách tỷ lệ kèo bóng đá chuỗi C, mỗi chuỗi phải chứa mộtTạo bảng nước tỷ lệ kèo bóng đálệnh. tỷ lệ kèo bóng đá chuỗi này sẽ được phân tích cú pháp và thực hiện bởi máy chủ lõi.

trong70184_70209struct,remote_schemalà tên của lược đồ từ xa mà tỷ lệ kèo bóng đá bảng sẽ được nhập.list_typeXác định cách lọc tên bảng:fdw_import_schema_allCó nghĩa là tất cả tỷ lệ kèo bóng đá bảng trong lược đồ từ xa nên được nhập (trong trường hợp nàyTable_Listlà trống),fdw_import_schema_limit_tocó nghĩa là chỉ bao gồm tỷ lệ kèo bóng đá bảng được liệt kê trongTable_Listfdw_import_schema_exceptcó nghĩa là loại trừ tỷ lệ kèo bóng đá bảng được liệt kê trongTable_List.Tùy chọnlà danh sách tỷ lệ kèo bóng đá tùy chọn được sử dụng cho quy trình nhập. Ý nghĩa của tỷ lệ kèo bóng đá tùy chọn là tùy thuộc vào FDW.không nullthuộc tính của tỷ lệ kèo bóng đá cột phải được nhập. tỷ lệ kèo bóng đá tùy chọn này không cần phải làm gì với tỷ lệ kèo bóng đá tùy chọn được FDW hỗ trợ làm tùy chọn đối tượng cơ sở dữ liệu.

FDW có thể bỏ qualocal_schemaTrường tỷ lệ kèo bóng đá71386_71411, vì máy chủ lõi sẽ tự động chèn tên đó vào phân tích cú phápTạo bảng nước tỷ lệ kèo bóng đálệnh.

FDW không phải quan tâm đến việc thực hiện bộ lọc được chỉ định bởilist_typeTable_List, vì máy chủ lõi sẽ tự động bỏ qua bất kỳ lệnh nào được trả về cho tỷ lệ kèo bóng đá bảng được loại trừ theo tỷ lệ kèo bóng đá tùy chọn đó. Tuy nhiên, thường rất hữu ích để tránh công việc tạo tỷ lệ kèo bóng đá lệnh cho tỷ lệ kèo bóng đá bảng bị loại trừ ngay từ đầu.isimportable eforignTable ()Có thể hữu ích để kiểm tra xem một tên bàn nước tỷ lệ kèo bóng đá nhất định sẽ vượt qua bộ lọc.

Nếu FDW không hỗ trợ nhập định nghĩa bảng,ImportForignSchemaCon trỏ có thể được đặt thànhnull.

​​57.2.10.tỷ lệ kèo bóng đá thói quen FDW để thực hiện song song

AForeignScanNode có thể, tùy chọn, hỗ trợ thực thi song song. Một song songForeignScansẽ được thực thi trong nhiều quy trình và phải trả về từng hàng chính xác một lần trên tất cả tỷ lệ kèo bóng đá quy trình hợp tác. Để làm điều này, tỷ lệ kèo bóng đá quá trình có thể phối hợp thông qua tỷ lệ kèo bóng đá khối có kích thước cố định của bộ nhớ chia sẻ động.

Bool

Kiểm tra xem có thể thực hiện quét trong một công nhân song song hay không. Hàm này sẽ chỉ được tỷ lệ kèo bóng đá khi người lập kế hoạch tin rằng một kế hoạch song song có thể là có thể và sẽ trả về đúng nếu nó an toàn cho việc quét đó để chạy trong một công nhân song song.

Nếu chức năng này không được xác định, người ta cho rằng việc quét phải diễn ra trong Trưởng nhóm song song. Lưu ý rằng việc trả về true không có nghĩa là bản thân quá trình quét có thể được thực hiện song song, chỉ có thể thực hiện quét trong một công nhân song song.

Kích thước

Ước tính lượng bộ nhớ chia sẻ động sẽ được yêu cầu cho hoạt động song song. Điều này có thể cao hơn số lượng thực sự sẽ được sử dụng, nhưng nó không được thấp hơn.

Void

Khởi tạo bộ nhớ chia sẻ động sẽ được yêu cầu cho hoạt động song song.tọa độChỉ vào vùng bộ nhớ được chia sẻ có kích thước bằng với giá trị trả về tỷ lệ kèo bóng đáƯớc tínhSmforignScan. Chức năng này là tùy chọn và có thể được bỏ qua nếu không cần thiết.

VOID

Tái tạo bộ nhớ chia sẻ động cần thiết cho hoạt động song song khi nút Kế hoạch quét nước tỷ lệ kèo bóng đá sắp được quét lại. Chức năng này là tùy chọn và có thể được bỏ qua nếu không cần thiết.RescanForignScanChức năng chỉ đặt lại trạng thái cục bộ. Hiện tại, chức năng này sẽ được tỷ lệ kèo bóng đá trướcRescanForignScan, nhưng tốt nhất là không dựa vào thứ tự đó.

Void

Khởi tạo trạng thái cục bộ tỷ lệ kèo bóng đá công nhân song song dựa trên trạng thái chia sẻ do người lãnh đạo thiết lập trongkhởi tạoSmforeIgnScan. Chức năng này là tùy chọn và có thể được bỏ qua nếu không cần thiết.

Void

Phát hành tài nguyên khi dự đoán, nút sẽ không được thực hiện để hoàn thành. Điều này không được gọi trong tất cả tỷ lệ kèo bóng đá trường hợp;FendForignScanCó thể được gọi mà không có chức năng này được gọi là đầu tiên. Vì phân đoạn DSM được sử dụng bởi truy vấn song song bị phá hủy ngay sau khi cuộc gọi lại này được gọi, tỷ lệ kèo bóng đá trình bao bọc dữ liệu nước ngoài muốn thực hiện một số hành động trước khi phân đoạn DSM biến mất nên thực hiện phương pháp này.

57.2.11.tỷ lệ kèo bóng đá thói quen FDW để thực thi không đồng bộ

AForeignScanNode có thể, tùy chọn, hỗ trợ thực thi không đồng bộ như được mô tả trongSRC/Backend/Executor/ReadMe. tỷ lệ kèo bóng đá chức năng sau là tất cả tỷ lệ kèo bóng đá tùy chọn, nhưng tất cả đều được yêu cầu nếu thực thi không đồng bộ được hỗ trợ.

Bool

Kiểm tra xem đã choForeignPathĐường dẫn có thể quét mối quan hệ nước tỷ lệ kèo bóng đá cơ bản không đồng bộ. Hàm này sẽ chỉ được gọi vào cuối kế hoạch truy vấn khi đường dẫn đã cho là con trực tiếp củaPhụ lụcĐường dẫn và khi người lập kế hoạch tin rằng thực thi không đồng bộ sẽ cải thiện hiệu suất và sẽ trả về đúng nếu đường dẫn đã cho có thể quét mối quan hệ nước tỷ lệ kèo bóng đá không đồng bộ.

Nếu chức năng này không được xác định, người ta cho rằng đường dẫn đã cho quét mối quan hệ nước tỷ lệ kèo bóng đá bằng cách sử dụngitaterforeignScan. (Điều này ngụ ý rằng tỷ lệ kèo bóng đá chức năng gọi lại được mô tả dưới đây sẽ không bao giờ được gọi, vì vậy chúng cũng không cần phải được cung cấp.)

VOID

Sản xuất một tuple không đồng bộ từForeignScanNode.AreqasyncrequestCấu trúc mô tảForeignScannút và cha mẹPhụ lụcNode yêu cầu tuple từ nó. Chức năng này sẽ lưu trữ Tuple vào khe được chỉ định bởiAreq- resultvà SETAreq- request_completeđếnTRUE; hoặc nếu nó cần chờ trên một sự kiện bên tỷ lệ kèo bóng đá máy chủ lõi như mạng I/O và không thể tạo bất kỳ tuple nào ngay lập tức, hãy đặt cờ thànhSaivà SETAreq- Callback_PendingđếnTRUEchoForeignScanNode để nhận cuộc gọi lại từ tỷ lệ kèo bóng đá chức năng gọi lại được mô tả bên dưới. Nếu không có thêm bộ dữ liệu, hãy đặt khe thành null hoặc một khe trống vàAreq- request_completecờ đếnTRUE. Nó được khuyến nghị sử dụngExecasyncRequestDonehoặcExecasyncRequestPendingĐể đặt tỷ lệ kèo bóng đá tham số đầu ra trongAreq.

VOID

Định cấu hình sự kiện mô tả tệp màForeignScanNode muốn chờ. Chức năng này sẽ chỉ được tỷ lệ kèo bóng đá khiForeignScanNode cóAreq- Callback_PendingĐặt cờ và nên thêm sự kiện vàoas_eventsettỷ lệ kèo bóng đá cha mẹPhụ lụcNode được mô tả bởiAreq. Xem tỷ lệ kèo bóng đá nhận xét choExecasyncConfigureWaitinSRC/Backend/Executor/Execasync.cĐể biết thêm thông tin. Khi sự kiện mô tả tệp xảy ra,80300_80320sẽ được tỷ lệ kèo bóng đá.

VOID

Xử lý một sự kiện có liên quan đã xảy ra, sau đó tạo ra một tuple không đồng bộ từForeignScanNode. Chức năng này sẽ đặt tỷ lệ kèo bóng đá tham số đầu ra trongAreqgiống như80709_80730.

57.2.12.tỷ lệ kèo bóng đá thói quen FDW để tái sử dụng đường dẫn

Danh sách *

Hàm này được gọi trong khi chuyển đổi một đường dẫn được tham số được tham số bởi cha mẹ hàng đầu tỷ lệ kèo bóng đá mối quan hệ con đã choChild_relđược tham số hóa bởi mối quan hệ con. Chức năng được sử dụng để sắp xếp tỷ lệ kèo bóng đá bất kỳ đường dẫn nào hoặc dịch bất kỳ nút biểu thức nào được lưu trong đã choFDW_PrivateThành viên tỷ lệ kèo bóng đá AForeignPath. Cuộc tỷ lệ kèo bóng đá lại có thể sử dụngreparameterize_path_by_child,điều chỉnh_appendrel_attrshoặcđiều chỉnh_appendrel_attrs_multileveltheo yêu cầu.

Gửi hiệu chỉnh

Nếu bạn thấy bất cứ điều gì trong tài tỷ lệ kèo bóng đá không chính xác, không khớpMẫu nàyĐể báo cáo vấn đề tài tỷ lệ kèo bóng đá.