Khi ACustomScan
được thực thi, trạng thái thực thi của nó được biểu thị bằng mộtCustomScanstate
, được khai báo như sau:
Typedef Struct CustomScanState Scanstate SS; Cờ Uint32; Phương pháp Const CustomExecMethods *; CustomScanState;
SS
9351_9465SS.SS_CienRelation
là NULL.cờ
là một chút mặt nạ có cùng ý nghĩa như trongCustomPath
vàCustomScan
. Phương pháp
phả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 tỷ lệ kèo bóng đá 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
, thực 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ó.
void ( *BeginCustomScan) (CustomScanState *Node, Bất động sản *Bất động sản, int eflags);
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
10672_10726
tupletableslot *( *ExecCustomScan) (CustomScanState *Node);
Lấy bộ tỷ lệ kèo bóng đá tiếp theo. Nếu có bất kỳ bộ dữ liệu nào vẫn còn, nó sẽ lấp đầyps_resulttuplot
Với bộ tiếp theo theo hướng tỷ lệ kèo bóng đá hiện tại, sau đó trả về khe Tuple. Nếu không,null
hoặ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 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 tỷ lệ kèo bóng đá hiện tại đến đầu và chuẩn bị cứu lại mối quan hệ.
11645_11699
Lưu vị trí tỷ lệ kèo bóng đá hiện tại để sau đó có thể được khôi phục bởireprposcustomscan
gọi lại. Cuộc gọi lại này là tỷ lệ kèo bóng đá chọn và chỉ cần được cung cấp nếuCustompath_support_mark_restore
cờ được đặt.
12018_12073
Khôi phục vị trí tỷ lệ kèo bóng đá trước đó được lưu bởiMarkposcustomScan
gọi lại. Cuộc gọi lại này là tỷ lệ kèo bóng đá chọn và chỉ cần được cung cấp nếuCustompath_support_mark_restore
cờ được đặt.
kích thước ( *ước tínhSmcustomScan) (nút CustomScanstate *Node, Song song với các
12488_12810
void ( *khởi tạoSmcustomScan) (nút CustomScanstate *Node, Song song void *tọa độ);
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 một 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 tỷ lệ kèo bóng đá này hỗ trợ thực thi song song.
13415_13588
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 tỷ lệ kèo bóng đá 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 tỷ lệ kèo bóng đá này hỗ trợ thực thi song song. Thực hành được đề xuất là đặt lại lại trạng thái được chia sẻ, trong khiRescancustomScan
Callback đặt lại chỉ trạng thái cục bộ. tỷ lệ kèo bóng đá 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ụ shm_toc *toc, void *tọa độ);
Khởi tạo trạng thái cục bộ 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 trongkhở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 tỷ lệ kèo bóng đá này hỗ trợ thực thi song song.
void ( *ShutdownCustomScan) (CustomScanstate *Node);
14720_14852EndCustomScan
có 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 tỷ lệ kèo bóng đá 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, Danh sách *Tổ tiên, Giải thích *es);
xuất thông tin bổ sung choGiải thích
của nút kế hoạch tỷ lệ kèo bóng đá. Cuộc gọi lại này là tùy chọn. Dữ liệu phổ biến được lưu trữ trongScanState
, chẳng hạn như danh sách đích và quan hệ tỷ lệ kèo bóng đá, 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ư.