PostgreSQL Source Code  git master
extensible.h File Reference
#include "access/parallel.h"
#include "commands/explain.h"
#include "nodes/execnodes.h"
#include "nodes/pathnodes.h"
#include "nodes/plannodes.h"
Include dependency graph for extensible.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Data Structures

struct  ExtensibleNode
 
struct  ExtensibleNodeMethods
 
struct  CustomPathMethods
 
struct  CustomScanMethods
 
struct  CustomExecMethods
 

Macros

#define EXTNODENAME_MAX_LEN   64
 
#define CUSTOMPATH_SUPPORT_BACKWARD_SCAN   0x0001
 
#define CUSTOMPATH_SUPPORT_MARK_RESTORE   0x0002
 
#define CUSTOMPATH_SUPPORT_PROJECTION   0x0004
 

Typedefs

typedef struct ExtensibleNode ExtensibleNode
 
typedef struct ExtensibleNodeMethods ExtensibleNodeMethods
 
typedef struct CustomPathMethods CustomPathMethods
 
typedef struct CustomScanMethods CustomScanMethods
 
typedef struct CustomExecMethods CustomExecMethods
 

Functions

void RegisterExtensibleNodeMethods (const ExtensibleNodeMethods *methods)
 
const ExtensibleNodeMethodsGetExtensibleNodeMethods (const char *extnodename, bool missing_ok)
 
void RegisterCustomScanMethods (const CustomScanMethods *methods)
 
const CustomScanMethodsGetCustomScanMethods (const char *CustomName, bool missing_ok)
 

Macro Definition Documentation

◆ CUSTOMPATH_SUPPORT_BACKWARD_SCAN

#define CUSTOMPATH_SUPPORT_BACKWARD_SCAN   0x0001

Definition at line 84 of file extensible.h.

◆ CUSTOMPATH_SUPPORT_MARK_RESTORE

#define CUSTOMPATH_SUPPORT_MARK_RESTORE   0x0002

Definition at line 85 of file extensible.h.

◆ CUSTOMPATH_SUPPORT_PROJECTION

#define CUSTOMPATH_SUPPORT_PROJECTION   0x0004

Definition at line 86 of file extensible.h.

◆ EXTNODENAME_MAX_LEN

#define EXTNODENAME_MAX_LEN   64

Definition at line 24 of file extensible.h.

Typedef Documentation

◆ CustomExecMethods

◆ CustomPathMethods

◆ CustomScanMethods

◆ ExtensibleNode

◆ ExtensibleNodeMethods

Function Documentation

◆ GetCustomScanMethods()

const CustomScanMethods* GetCustomScanMethods ( const char *  CustomName,
bool  missing_ok 
)

Definition at line 137 of file extensible.c.

138 {
139  return (const CustomScanMethods *)
141  CustomName,
142  missing_ok);
143 }
static const void * GetExtensibleNodeEntry(HTAB *htable, const char *extnodename, bool missing_ok)
Definition: extensible.c:100
static HTAB * custom_scan_methods
Definition: extensible.c:27

References custom_scan_methods, and GetExtensibleNodeEntry().

◆ GetExtensibleNodeMethods()

const ExtensibleNodeMethods* GetExtensibleNodeMethods ( const char *  extnodename,
bool  missing_ok 
)

Definition at line 125 of file extensible.c.

126 {
127  return (const ExtensibleNodeMethods *)
129  extnodename,
130  missing_ok);
131 }
static HTAB * extensible_node_methods
Definition: extensible.c:26

References extensible_node_methods, and GetExtensibleNodeEntry().

Referenced by _copyExtensibleNode(), _equalExtensibleNode(), _outExtensibleNode(), and _readExtensibleNode().

◆ RegisterCustomScanMethods()

void RegisterCustomScanMethods ( const CustomScanMethods methods)

Definition at line 88 of file extensible.c.

89 {
91  "Custom Scan Methods",
92  methods->CustomName,
93  methods);
94 }
static void RegisterExtensibleNodeEntry(HTAB **p_htable, const char *htable_label, const char *extnodename, const void *extnodemethods)
Definition: extensible.c:39
const char * CustomName
Definition: extensible.h:114

References custom_scan_methods, CustomScanMethods::CustomName, and RegisterExtensibleNodeEntry().

◆ RegisterExtensibleNodeMethods()

void RegisterExtensibleNodeMethods ( const ExtensibleNodeMethods methods)

Definition at line 76 of file extensible.c.

77 {
79  "Extensible Node Methods",
80  methods->extnodename,
81  methods);
82 }
const char * extnodename
Definition: extensible.h:64

References extensible_node_methods, ExtensibleNodeMethods::extnodename, and RegisterExtensibleNodeEntry().