Phiên bản được hỗ trợ:Postgresql: Tà(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

61.3. Thực hiện kèo bóng đá pháp#

Khi ACustomScanđược kèo bóng đá pháp thi, trạng thái kèo bóng đá pháp thi của nó được biểu thị bằng mộtCustomScanState, được khai báo như sau:

Typedef Struct CustomScanState

SS8986_9100SS.SS_CienRelationlà NULL.cờlà một chút mặt nạ có cùng ý nghĩa như trongCustomPathCustomScan. Phương kèo bóng đá phápphải trỏ đến một đối tượng (thường được phân bổ tĩnh) thực hiện các phương thức trạng thái kèo bóng đá pháp cần thiết, được chi tiết hơn dưới đây. Thông thường, ACustomScanState, không cần hỗ trợCopyObject, kèo bóng đá pháp sự sẽ là một cấu trúc lớn hơn nhúng ở trên là thành viên đầu tiên của nó.

61.3.1. Các cuộc gọi lại thực thi kèo bóng đá pháp#

void ( *BeginCustomScan) (CustomScanState *Node,

Khởi tạo hoàn toàn được cung cấpCustomScanstate. Các trường tiêu chuẩn đã được khởi tạo bởiExecItCustomScan, nhưng bất kỳ trường riêng nào cũng nên được khởi tạo ở đây.

tupletableslot *( *ExecCustomScan) (CustomScanState *Node);

Lấy bộ kèo bóng đá pháp tiếp theo. Nếu có bất kỳ bộ dữ liệu nào vẫn còn, nó sẽ lấp đầyps_resulttuplotVới bộ xử lý tiếp theo theo hướng kèo bóng đá pháp hiện tại, sau đó trả về khe Tuple. Nếu không,nullhoặc một khe trống phải được trả về.

void ( *EndCustomScan) (CustomScanState *Node);

Làm sạch bất kỳ dữ liệu riêng tư nào được liên kết vớiCustomScanstate. Phương kèo bóng đá pháp này là bắt buộc, nhưng nó không cần phải làm bất cứ điều gì nếu không có dữ liệu liên quan hoặc nó sẽ được làm sạch tự động.

void ( *RescancustomScan) (CustomScanState *Node);

Tua lại lần kèo bóng đá pháp hiện tại đến đầu và chuẩn bị cứu lại mối quan hệ.

void ( *markposcustomscan) (CustomScanstate *Node);

Lưu vị trí kèo bóng đá pháp hiện tại để sau đó có thể được khôi phục bởireprposcustomscangọi lại. Cuộc gọi lại này là kèo bóng đá pháp chọn và chỉ cần được cung cấp nếuCustompath_support_mark_restorecờ được đặt.

11718_11773

Khôi phục vị trí kèo bóng đá pháp trước đó được lưu bởiMarkposcustomScangọi lại. Cuộc gọi lại này là kèo bóng đá pháp chọn và chỉ cần được cung cấp nếuCustompath_support_mark_restorecờ được đặt.

kích thước ( *ước tínhSmcustomScan) (nút CustomScanstate *Node,

Ướ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 kèo bóng đá pháp sự sẽ được sử dụng, nhưng nó không được thấp hơn.

void ( *khởi tạoSmcustomScan) (CustomScanstate *Node,

Khởi tạo bộ nhớ chia sẻ động sẽ được yêu cầu cho hoạt động song song.tọa độĐiểm vào vùng bộ nhớ được chia sẻ có kích thước bằng với giá trị trả về củaƯớc tínhSmcustomScan. Cuộc gọi lại này là tùy chọn và chỉ cần được cung cấp nếu nhà cung cấp kèo bóng đá pháp này hỗ trợ thực thi song song.

13115_13288

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 kèo bóng đá pháp sắp được quét lại. Cuộc gọi lại này là tùy chọn và chỉ cần được cung cấp nếu nhà cung cấp kèo bóng đá pháp này hỗ trợ thực thi song song.RescancustomScanCallback đặt lại trạng thái cục bộ. kèo bóng đá pháp tại, cuộc gọi lại này sẽ được gọi trướcRescancustomScan, nhưng tốt nhất là không dựa vào thứ tự đó.

void ( *Khởi tạo công tác dụng cụ

Khởi tạo trạng thái địa phương của 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 trong thời giankhởi tạoSmcustomScan. Cuộc gọi lại này là tùy chọn và chỉ cần được cung cấp nếu nhà cung cấp kèo bóng đá pháp này hỗ trợ thực thi song song.

void ( *ShutdownCustomScan) (CustomScanstate *Node);

Phát hành tài nguyên khi dự đoán, nút sẽ không được thực kèo bóng đá pháp để hoàn thành. Điều này không được gọi trong tất cả các trường hợp;EndCustomScancó 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, các nhà cung cấp kèo bóng đá pháp 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 thức này.

void ( *Giải thíchCustomScan) (CustomScanState *Node,

xuất thông tin bổ sung choGiải thíchcủa nút kế hoạch kèo bóng đá pháp. Cuộc gọi lại này là tùy chọn.ScanState, chẳng hạn như danh sách đích và quan hệ kèo bóng đá pháp, sẽ được hiển thị ngay cả khi không có cuộc gọi lại này, nhưng cuộc gọi lại cho phép hiển thị trạng thái riêng, riêng tư.

Gửi hiệu kèo bóng đá pháp

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