PostgreSQL 9.2.24 Tài liệu | ||||
---|---|---|---|---|
prev | UP | Chương 50. Viết trình bao bọc dữ liệu nước kèo bóng đá việt nam | Tiếp theo |
Hàm người xử lý FDW trả về palloc'dfdwroutinecấu trúc chứa kèo bóng đá việt nam con trỏ vào kèo bóng đá việt nam chức năng gọi lại sau:
Void GetforeignRelsize (Root PlannerInfo *, Reloptinfo *baserel, Oid foreigntableid);
9762_9903rootlà người lập kế hoạch Thông tin toàn cầu về truy vấn;Baserellà thông tin của người lập kế hoạch về điều này bàn; VàForeignTableIDlàpg_ classOID của Bàn nước kèo bóng đá việt nam. (ForeignTableIDcó thể được lấy từ kèo bóng đá việt nam cấu trúc dữ liệu kế hoạch, nhưng nó được thông qua rõ ràng để lưu cố gắng.)
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 bộ lọc được thực hiện bởi kèo bóng đá việt nam câu hỏi hạn chế. Giá trị ban đầu củabaserel- hàngchỉ là một mặc định không đổi Ước tính, nên được thay thế nếu có thể. kèo bóng đá việt nam chức năng cũng có thể chọn cập nhậtBaserel- WidthNếu nó có thể tính toán tốt hơn Ước tính chiều rộng hàng kết quả trung bình.
xemPhần 50.4kèo bóng đá việt nam thông tin bổ sung.
Void Getforeignpaths (Root PlannerInfo *, Reloptinfo *baserel, Oid foreigntableid);
11107_11246getforeignrelsize
, có
đã được kèo bóng đá việt nam.
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 kèo bóng đá việt nam 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ựng
TheForeignPathnút. Chức năng
có thể tạo nhiều đường dẫn truy cập, ví dụ: đường dẫn có hợp lệ11847_11857Để thể hiện một bản án trước
kết quả. Mỗi đường dẫn truy cập phải chứa kèo bóng đá việt nam ước tính chi phí và có thể
chứa bất kỳ thông tin FDW-Private nào cần thiết để xác định
Phương thức quét cụ thể dự định.
xemPhần 50.4kèo bóng đá việt nam thông tin bổ sung.
ForeignScan * Getforeignplan (Root PlannerInfo *, Reloptinfo *baserel, Oid foreigntableid, ForeignPath *best_path, Danh sách *Tlist, Danh sách *scan_clauses);
Tạo AForeignScanKế hoạch nút
từ đường dẫn truy cập nước ngoài được chọn. Điều này được gọi vào cuối
của kế hoạch truy vấn. kèo bóng đá việt nam tham số là nhưgetforeignrelsize
, cộng với đã chọnForeignPath12703_12732GetForignPaths
), Danh sách mục tiêu
được phát ra bởi nút kế hoạch và kèo bóng đá việt nam điều khoản hạn chế
được thi hành bởi nút kế hoạch.
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ựngnước kèo bóng đá việt namNode.
xemPostgreSQL:kèo bóng đá việt nam thông tin bổ sung.
Void Giải thích BoreforignScan (Nút nước kèo bóng đá việt nam *, nút, Giải thích *es);
In bổ sungGiải thíchđầu ra cho a
Quét bàn nước kèo bóng đá việt nam. Điều này chỉ có thể trở lại nếu không cần phải
In bất cứ điều gì. Nếu không, nó sẽ gọiGiải thíchPropertyText
và kèo bóng đá việt nam chức năng liên quan đến
Thêm kèo bóng đá việt nam trường vàoGiải thíchđầu ra. kèo bóng đá việt nam
kèo bóng đá việt nam trường cờ trongescó thể được sử dụng để
Xác định những gì cần in và trạng thái củaForeignScanstateNode 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íchCASE.
VOID BeginForignScan (Nút nước kèo bóng đá việt nam *Node, int eflags);
Bắt đầu thực hiện quét nước kèo bóng đá việt nam. Điều này được gọi trong quá trình thực thi
Khởi nghiệp. Nó sẽ thực hiện bất kỳ khởi tạo nào cần thiết trước
quét có thể bắt đầu, nhưng không bắt đầu thực hiện quét thực tế (đó
nên được thực hiện trong cuộc gọi đầu tiên đếnitaterforeignScan
). TheForeignScanstatenút đã được tạo,
Nhưng nóFDW_STATETrường vẫn còn
VÔ GIÁ TRỊ. Thông tin về bảng để quét có thể truy cập được thông qua
TheForeignScanstatenút (trong
đặc biệt, từ cơ bảnForeignScanKế hoạch nút, chứa bất kỳ
Thông tin FDW-Private được cung cấp bởigetforignplan
).
Lưu ý rằng khi(EFLAGS &
Exec_flag_explain_only)là sự thật, chức năng này không nên
thực hiện bất kỳ hành động nhìn bên kèo bóng đá việt nam nào; 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 FormentIgnScan
vàendforeignscan
.
tupletableslot * IraterforforignScan (Nút ForeignScanState *);
Lấy một hàng từ nguồn nước kèo bóng đá việt nam, trả lại nó trong một tuple
slot bảng (nút củascantuplotlotnên được sử dụng cho mục đích này). Trả lại null nếu không còn hàng nữa
có sẵn. Cơ sở hạ tầng khe cắm bảng Tuple cho phép
Tuple vật lý hoặc ảo được trả lại; trong hầu hết kèo bóng đá việt nam trường hợp
Lựa chọn sau là thích hợp từ quan điểm hiệu suất. Ghi chú
rằng điều này được gọi trong một bối cảnh bộ nhớ tồn tại trong thời gian ngắn sẽ
Đặt lại giữa kèo bóng đá việt nam lời mời. Tạo ngữ cảnh bộ nhớ trongBeginForignScan
Nếu bạn cần
lưu trữ tồn tại lâu hơn hoặc sử dụngES_Query_CXTcủa nútEstate.
kèo bóng đá việt nam hàng được trả về phải khớp với chữ ký cột của Bàn nước ngoài được quét. Nếu bạn chọn tối ưu hóa tìm nạp kèo bóng đá việt nam cột không cần thiết, bạn nên chèn kèo bóng đá việt nam null vào kèo bóng đá việt nam vị trí cột đó.
Lưu ý rằngPostgreSQL's Người thực thi không quan tâm liệu kèo bóng đá việt nam hàng có trả lại vi phạmkhông nullkèo bóng đá việt nam ràng buộc được xác định trên kèo bóng đá việt nam cột bàn nước ngoài - nhưng người lập kế hoạch quan tâm và có thể Tối ưu hóa kèo bóng đá việt nam 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 nên có mặt, nó 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 của một loại dữ liệu không phù hợp).
VOID ResCanForignScan (Nút Froutscanstate *);
Khởi động kèo bóng đá việt nam quá trình quét từ đầu. Lưu ý rằng bất kỳ tham số nào Việc quét phụ thuộc vào có thể đã thay đổi giá trị, vì vậy việc 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 FEDFOREIGNSCAN (NODE *NODE);
Kết thúc tài nguyên quét và phát hành. Nó thường không quan trọng là phát hành bộ nhớ palloc'd, nhưng ví dụ: mở kèo bóng đá việt nam tệp và kết nối với máy chủ từ xa nên được làm sạch.
Bool Phân tích BoreforignTable (quan hệ quan hệ, Aces BlockNumber *Tổng số);
Hàm này được kèo bóng đá việt nam khiPhân tíchđược thực hiện trên bàn nước kèo bóng đá việt nam. Nếu như
FDW có thể thu thập số liệu thống kê cho bàn nước kèo bóng đá việt nam này, nó nên
trở lạiTRUE, và cung cấp một con trỏ cho a
chức năng sẽ thu thập kèo bóng đá việt nam 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 đá việt nam trang trongTổng số.
Nếu không, trở kèo bóng đá việt namSai18033_18111Phân tích trước khi thiết kế
Con trỏ có thể
Đặt thànhnull.
Nếu được cung cấp, chức năng thu thập mẫu phải có chữ ký
18328_18532
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 do người kèo bóng đá việt nam cung cấphàngMảng. Thực tế Số lượng hàng được thu thập phải được trả về. Ngoài ra, cửa hàng Ước tính tổng số hàng sống và chết trong bảng vào kèo bóng đá việt nam tham số đầu raTotalRowsvàTotalDeadrows. (BộTotalDeadrowsđến 0 nếu FDW không có bất kỳ khái niệm nào về hàng chết.)
ThefdwroutineLoại cấu trúc là được khai báo trongsrc/bao gồm/nước kèo bóng đá việt nam/fdwapi.h, xem kèo bóng đá việt nam Chi tiết bổ sung.