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 / 9.1
Tài liệu này dành cho phiên bản không được hỗ trợ kèo bóng đá hôm nay và ngày mai PostgreSQL.
Bạn có thể muốn xem cùng một trang chohiện tạiPhiên bản hoặc một trong kèo bóng đá hôm nay và ngày mai phiên bản được hỗ trợ khác được liệt kê ở trên thay thế.

53.2. kèo bóng đá hôm nay và ngày mai 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 kèo bóng đá hôm nay và ngày mai con trỏ đến kèo bóng đá hôm nay và ngày mai chức năng gọi lại được mô tả dưới đây. kèo bóng đá hôm nay và ngày mai 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/kèo bóng đá hôm nay và ngày mai/fdwapi.h, xem để biết thêm chi tiết.

53.2.1. kèo bóng đá hôm nay và ngày mai thói quen FDW để quét kèo bóng đá hôm nay và ngày mai bảng nước ngoài

Void

Lấy ước tính kích thước quan hệ cho một bảng kèo bóng đá hôm nay và ngày mai. Đ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 kèo bóng đá hôm nay và ngày mai.rootlà thông tin toàn cầu kèo bóng đá hôm nay và ngày mai người lập kế hoạch về truy vấn;Baserellà thông tin kèo bóng đá hôm nay và ngày mai người lập kế hoạch về bảng này; VàForeignTableIDpg_ classOID kèo bóng đá hôm nay và ngày mai Bàn nước ngoài. (ForeignTableIDcó thể được lấy từ kèo bóng đá hôm nay và ngày mai 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 kèo bóng đá hôm nay và ngày mai 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.

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

Void

Tạo kèo bóng đá hôm nay và ngày mai đườ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 gọi.

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 kèo bóng đá hôm nay và ngày mai và phải gọiadd_pathĐể thêm từng đường dẫn như vậy kèo bóng đá hôm nay và ngày maioBaserel- 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 kèo bóng đá hôm nay và ngày mai ướ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 53.4Để biết thêm thông tin.

kèo bóng đá hôm nay và ngày mai *

Tạo AForeignScanKế hoạch nút từ đường dẫn truy cập kèo bóng đá hôm nay và ngày mai đã 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ọnForeignPath(trước đây được sản xuất bởiGetForignPaths), Danh sách mục tiêu được phát ra bởi nút kế hoạch và kèo bóng đá hôm nay và ngày mai điều khoản hạn chế được thực thi bởi nút kế hoạch.

Hàm này phải tạo và trả lại Akèo bóng đá hôm nay và ngày maiKế hoạch nút; nó được khuyến nghị sử dụngMake_forignscanĐể xây dựngForeignScanNode.

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

VOID

Bắt đầu thực hiện quét kèo bóng đá hôm nay và ngày mai. Điều này được gọi trong quá trình khởi động thực thi.itaterforeignScan). 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 kèo bóng đá hôm nay và ngày mai 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 ngoài; 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 ngoài, trả lại trong khe cắm bảng Tuple (nút kèo bóng đá hôm nay và ngày mai nútscantuplotlotnên được sử dụng cho mục đích này). Trả lại 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_CXTkèo bóng đá hôm nay và ngày mai nútEstate.

kèo bóng đá hôm nay và ngày mai hàng được trả về phải khớp với chữ ký cột của bảng nước ngoài được quét. Nếu bạn chọn tối ưu hóa kèo bóng đá hôm nay và ngày mai cột tìm nạp không cần thiết, bạn nên chèn null vào kèo bóng đá hôm nay và ngày mai vị trí cột đó.

Lưu ý rằngPostgreSQL15695_15760không nullkèo bóng đá hôm nay và ngày mai ràng buộc được xác định trên kèo bóng đá hôm nay và ngày mai cột Bàn nước ngoài - nhưng người lập kế hoạch không quan tâm và có thể tối ưu hóa kèo bóng đá hôm nay và ngày mai truy vấn không chính xác nếunullGiá trị có mặt trong một cột được khai báo không chứa chúng. Nếu anullGiá trị gặp phải khi người dùng tuyên bố rằng không có gì có mặt, có thể phù hợp để đưa ra lỗi (giống như bạn cần làm trong trường hợp không khớp loại dữ liệu).

Void

Khởi động lại quá trình quét từ đầu. Lưu ý rằng bất kỳ tham số nào mà quét phụ thuộc kèo bóng đá hôm nay và ngày maio 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ở kèo bóng đá hôm nay và ngày mai tệp và kết nối với kèo bóng đá hôm nay và ngày mai máy chủ từ xa nên được làm sạch.

53.2.2. kèo bóng đá hôm nay và ngày mai thói quen FDW để cập nhật kèo bóng đá hôm nay và ngày mai bảng nước ngoài

Nếu FDW hỗ trợ kèo bóng đá hôm nay và ngày mai bảng nước ngoài có thể ghi, nó sẽ cung cấp một số hoặc tất cả kèo bóng đá hôm nay và ngày mai 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 kèo bóng đá hôm nay và ngày mai hàng trước đó được tìm nạp trước kèo bóng đá hôm nay và ngày mai 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 kèo bóng đá hôm nay và ngày mai giá trị của kèo bóng đá hôm nay và ngày mai 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."Junk", kèo bóng đá hôm nay và ngày mai cột mục tiêu vào danh sách kèo bóng đá hôm nay và ngày mai 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 đó, thêmTargetEntryMục tớiParsetree- TargetList, chứa kèo bóng đá hôm nay và ngày mai biểu thức cho kèo bóng đá hôm nay và ngày mai giá trị bổ sung được tìm nạp. Mỗi mục nhập như vậy phải được đánh dấuresjunk=TRUE, và phải có một sự khác biệtresnamesẽ xác định nó kèo bóng đá hôm nay và ngày maio thời điểm thực hiện. Tránh sử dụng tên khớpCTIDn, WholerowhoặcWholerown, vì hệ thống lõi có thể tạo kèo bóng đá hôm nay và ngày mai cột rác của kèo bóng đá hôm nay và ngày mai tên này.

18500_18654Parsetreelà cây phân tích choCập nhậthoặcXóaLệnh, trong khitarget_rteTarget_RelationMô tả Bàn kèo bóng đá hôm nay và ngày mai đích.

NếuCon trỏ được đặt thànhnull, không có biểu thức mục tiêu nào được thêm kèo bóng đá hôm nay và ngày maio. (Đ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 kèo bóng đá hôm nay và ngày maio 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 kèo bóng đá hôm nay và ngày mai. 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 hiện.

rootlà thông tin toàn cầu kèo bóng đá hôm nay và ngày mai người lập kế hoạch về truy vấn.kế hoạchModifyTableKế hoạch nút, hoàn thành ngoại trừFDWPrivlisttrường.ResultrelationXác định bảng nước ngoài mục tiêu theo chỉ mục bảng phạm vi kèo bóng đá hôm nay và ngày mai nó.Subplan_indexXác định mục tiêu nào kèo bóng đá hôm nay và ngày maiModifyTableKế hoạch nút Đây là, đếm từ số không; Sử dụng cái này nếu bạn muốn lập chỉ mục kèo bóng đá hôm nay và ngày maioKế hoạch- Kế hoạchhoặc cấu trúc phụ khác kèo bóng đá hôm nay và ngày maikế hoạchNode.

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

NếuplanforeignmodifyCon 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 một hoạt động sửa đổi bàn kèo bóng đá hôm nay và ngày mai. Thói quen này được gọi trong quá trình khởi động thực thi.ExecforeIgnInsert, EXECFORIGNUPDATEhoặcExecforeIgnDeletesẽ được gọi cho mỗi bộ tuple được chèn, cập nhật hoặc xóa.

MTSTATElà trạng thái tổng thể kèo bóng đá hôm nay và ngày maiModifyTableKế hoạch nút được thực thi; Dữ liệu 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 kèo bóng đá hôm nay và ngày mai mục tiêu. (TheRI_FDWSTATEtrường kèo bóng đá hôm nay và ngày mairesultrelInfoCó 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ữ liệu riêng được tạo bởiplanforeignmodify, nếu có.Subplan_indexXác định mục tiêu nào kèo bóng đá hôm nay và ngày maiModifyTableKế hoạch nút này.EFLAGSChứa kèo bóng đá hôm nay và ngày mai 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 trước khi điều chỉnhendforeignmodify.

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 kèo bóng đá hôm nay và ngày mai.Estatelà trạng thái thực thi toàn cầu cho truy vấn.rinforesultrelInfoCấu trúc mô tả bảng kèo bóng đá hôm nay và ngày mai đích.slotchứa bộ tuple được chèn; Nó sẽ khớp với định nghĩa loại hàng kèo bóng đá hôm nay và ngày mai Bàn nước ngoài.SP rapchứa bộ tuple được tạo bởiModifyTableSubplan kèo bóng đá hôm nay và ngày mai Node kế hoạch; nó khác vớislotTrong có thể chứa bổ sung"Junk"Cột. (TheSP rapthường rất í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 kèo bóng đá hôm nay và ngày mai 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 kèo bóng đá hôm nay và ngày mai kích hoạt). Thông quaslotcó thể được sử dụng lại cho mục đích này.

Dữ liệu trong khe được trả về chỉ được sử dụng nếuChènTruy vấn cóTrở vềmệnh đề hoặc Bàn kèo bóng đá hôm nay và ngày mai cósau hàngTrigger. Trình kích hoạt yêu cầu tất cả kèo bóng đá hôm nay và ngày mai 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ả kèo bóng đá hôm nay và ngày mai 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 kèo bóng đá hôm nay và ngày mai truy vấn sẽ sai.

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

tupletableslot *

Cập nhật một tuple trong Bàn kèo bóng đá hôm nay và ngày mai.Estatelà trạng thái thực thi toàn cầu cho truy vấn.rinforesultrelInfoCấu trúc mô tả bảng kèo bóng đá hôm nay và ngày mai đích.slotChứa dữ liệu mới cho tuple; Nó sẽ khớp với định nghĩa loại hàng kèo bóng đá hôm nay và ngày mai Bàn nước ngoài.SP rapchứa bộ tuple được tạo bởiModifyTablekế hoạch con kèo bóng đá hôm nay và ngày mai nút; nó khác vớislotTrong có thể chứa bổ sung"Junk"Cộ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 kèo bóng đá hôm nay và ngày mai hành động kích hoạt) hoặc null nếu không có hàng thực sự được cập nhật (một lần nữa, thường là kết quả của kèo bóng đá hôm nay và ngày mai trình kích hoạt). Thông quaslotcó thể được sử dụng lại cho mục đích này.

Dữ liệu trong khe được trả về chỉ được sử dụng nếuCập nhậtTruy vấn cóTrở vềmệnh đề hoặc Bàn kèo bóng đá hôm nay và ngày mai cósau hàngTrigger. Trình kích hoạt yêu cầu tất cả kèo bóng đá hôm nay và ngày mai 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ả kèo bóng đá hôm nay và ngày mai 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 kèo bóng đá hôm nay và ngày mai truy vấn sẽ sai.

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

tupletableslot *

Xóa một tuple khỏi Bàn kèo bóng đá hôm nay và ngày mai.Estatelà trạng thái thực thi toàn cầu cho truy vấn.rinforesultrelInfoCấu trúc mô tả bảng kèo bóng đá hôm nay và ngày mai đích.slotKhông chứa gì hữu ích khi gọi, nhưng có thể được sử dụng để giữ Tuple trả về.SP rapchứa bộ tuple được tạo bởiModifyTableSubplan kèo bóng đá hôm nay và ngày mai 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. (kèo bóng đá hôm nay và ngày mai) 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 kèo bóng đá hôm nay và ngày mai kích hoạt). Thông quaslotcó thể được sử dụng để giữ tuple để được trả về.

Dữ liệu trong khe được trả về chỉ được sử dụng nếuXóaTruy vấn cóTrở vềmệnh đề hoặc bàn kèo bóng đá hôm nay và ngày mai cósau hàngTrigger. Trình kích hoạt yêu cầu tất cả kèo bóng đá hôm nay và ngày mai 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ả kèo bóng đá hôm nay và ngày mai 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 kèo bóng đá hôm nay và ngày mai truy vấn sẽ sai.

NếuExecforeIgnDeleteCon trỏ được đặt thànhnull, Cố gắng xóa khỏi Bàn kèo bóng đá hôm nay và ngày mai 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ở kèo bóng đá hôm nay và ngày mai tệp và kết nối với kèo bóng đá hôm nay và ngày mai máy chủ từ xa nên được làm sạch.

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

int

Báo cáo cập nhật kèo bóng đá hôm nay và ngày mai 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 kèo bóng đá hôm nay và ngày mai số sự kiện quy tắc cho biết kèo bóng đá hôm nay và ngày mai 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ànhnull, kèo bóng đá hôm nay và ngày mai bảng nước ngoài được coi là có thể chènEXECFORIGNINSERT, 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.)

53.2.3. kèo bóng đá hôm nay và ngày mai thói quen FDW choGiải thích

Void

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

NếuGiải thích trước khi inCon 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 kèo bóng đá hôm nay và ngày mai. Chức năng này có thể gọiGiải thíchPropertyTextvà kèo bóng đá hôm nay và ngày mai chức năng liên quan để thêm kèo bóng đá hôm nay và ngày mai trường vàoGiải thíchđầu ra. kèo bóng đá hôm nay và ngày mai trường cờ trongescó thể được sử dụng để xác định những gì cần in và trạng thái kèo bóng đá hôm nay và ngày maiModifyTablestateNode có thể được kiểm tra để cung cấp số liệu 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.

53.2.4. kèo bóng đá hôm nay và ngày mai thói quen FDW choPhân tích

Bool

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

Nếu FDW không hỗ trợ thu thập số liệu thống kê cho bất kỳ bảng nào,Phân tích trước khi thiết kếCon 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ữ kèo bóng đá hôm nay và ngày maio người gọi đượ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.)