PostgreSQL Source Code  git master
extensible.h File Reference
#include "access/parallel.h"
#include "commands/explain.h"
#include "nodes/execnodes.h"
#include "nodes/plannodes.h"
#include "nodes/relation.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
 

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 *method)
 
const ExtensibleNodeMethodsGetExtensibleNodeMethods (const char *name, 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 81 of file extensible.h.

Referenced by ExecSupportsBackwardScan().

◆ CUSTOMPATH_SUPPORT_MARK_RESTORE

#define CUSTOMPATH_SUPPORT_MARK_RESTORE   0x0002

Definition at line 82 of file extensible.h.

Referenced by ExecSupportsMarkRestore().

◆ EXTNODENAME_MAX_LEN

#define EXTNODENAME_MAX_LEN   64

Definition at line 24 of file extensible.h.

Referenced by RegisterExtensibleNodeEntry().

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.

References GetExtensibleNodeEntry().

Referenced by _readCustomScan().

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

◆ GetExtensibleNodeMethods()

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

Definition at line 125 of file extensible.c.

References GetExtensibleNodeEntry().

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

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

◆ RegisterCustomScanMethods()

void RegisterCustomScanMethods ( const CustomScanMethods methods)

Definition at line 88 of file extensible.c.

References CustomScanMethods::CustomName, and RegisterExtensibleNodeEntry().

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
static HTAB * custom_scan_methods
Definition: extensible.c:27
const char * CustomName
Definition: extensible.h:110

◆ RegisterExtensibleNodeMethods()

void RegisterExtensibleNodeMethods ( const ExtensibleNodeMethods method)

Definition at line 76 of file extensible.c.

References ExtensibleNodeMethods::extnodename, and RegisterExtensibleNodeEntry().

77 {
79  "Extensible Node Methods",
80  methods->extnodename,
81  methods);
82 }
static void RegisterExtensibleNodeEntry(HTAB **p_htable, const char *htable_label, const char *extnodename, const void *extnodemethods)
Definition: extensible.c:39
static HTAB * extensible_node_methods
Definition: extensible.c:26