24 #define EXTNODENAME_MAX_LEN 64
84 #define CUSTOMPATH_SUPPORT_BACKWARD_SCAN 0x0001
85 #define CUSTOMPATH_SUPPORT_MARK_RESTORE 0x0002
86 #define CUSTOMPATH_SUPPORT_PROJECTION 0x0004
104 List *custom_private,
struct CustomExecMethods CustomExecMethods
struct CustomScanMethods CustomScanMethods
struct CustomPathMethods CustomPathMethods
void RegisterExtensibleNodeMethods(const ExtensibleNodeMethods *methods)
struct ExtensibleNodeMethods ExtensibleNodeMethods
void RegisterCustomScanMethods(const CustomScanMethods *methods)
const CustomScanMethods * GetCustomScanMethods(const char *CustomName, bool missing_ok)
const ExtensibleNodeMethods * GetExtensibleNodeMethods(const char *extnodename, bool missing_ok)
struct ExtensibleNode ExtensibleNode
void(* BeginCustomScan)(CustomScanState *node, EState *estate, int eflags)
void(* EndCustomScan)(CustomScanState *node)
void(* ShutdownCustomScan)(CustomScanState *node)
void(* ReInitializeDSMCustomScan)(CustomScanState *node, ParallelContext *pcxt, void *coordinate)
void(* InitializeDSMCustomScan)(CustomScanState *node, ParallelContext *pcxt, void *coordinate)
void(* RestrPosCustomScan)(CustomScanState *node)
Size(* EstimateDSMCustomScan)(CustomScanState *node, ParallelContext *pcxt)
void(* MarkPosCustomScan)(CustomScanState *node)
void(* InitializeWorkerCustomScan)(CustomScanState *node, shm_toc *toc, void *coordinate)
void(* ExplainCustomScan)(CustomScanState *node, List *ancestors, ExplainState *es)
void(* ReScanCustomScan)(CustomScanState *node)
void(* nodeRead)(struct ExtensibleNode *node)
void(* nodeCopy)(struct ExtensibleNode *newnode, const struct ExtensibleNode *oldnode)
bool(* nodeEqual)(const struct ExtensibleNode *a, const struct ExtensibleNode *b)
void(* nodeOut)(struct StringInfoData *str, const struct ExtensibleNode *node)
pg_node_attr(custom_copy_equal, custom_read_write) NodeTag type