68 #define SPI_ERROR_CONNECT (-1)
69 #define SPI_ERROR_COPY (-2)
70 #define SPI_ERROR_OPUNKNOWN (-3)
71 #define SPI_ERROR_UNCONNECTED (-4)
72 #define SPI_ERROR_CURSOR (-5)
73 #define SPI_ERROR_ARGUMENT (-6)
74 #define SPI_ERROR_PARAM (-7)
75 #define SPI_ERROR_TRANSACTION (-8)
76 #define SPI_ERROR_NOATTRIBUTE (-9)
77 #define SPI_ERROR_NOOUTFUNC (-10)
78 #define SPI_ERROR_TYPUNKNOWN (-11)
79 #define SPI_ERROR_REL_DUPLICATE (-12)
80 #define SPI_ERROR_REL_NOT_FOUND (-13)
82 #define SPI_OK_CONNECT 1
83 #define SPI_OK_FINISH 2
84 #define SPI_OK_FETCH 3
85 #define SPI_OK_UTILITY 4
86 #define SPI_OK_SELECT 5
87 #define SPI_OK_SELINTO 6
88 #define SPI_OK_INSERT 7
89 #define SPI_OK_DELETE 8
90 #define SPI_OK_UPDATE 9
91 #define SPI_OK_CURSOR 10
92 #define SPI_OK_INSERT_RETURNING 11
93 #define SPI_OK_DELETE_RETURNING 12
94 #define SPI_OK_UPDATE_RETURNING 13
95 #define SPI_OK_REWRITTEN 14
96 #define SPI_OK_REL_REGISTER 15
97 #define SPI_OK_REL_UNREGISTER 16
98 #define SPI_OK_TD_REGISTER 17
99 #define SPI_OK_MERGE 18
101 #define SPI_OPT_NONATOMIC (1 << 0)
104 #define SPI_push() ((void) 0)
105 #define SPI_pop() ((void) 0)
106 #define SPI_push_conditional() false
107 #define SPI_pop_conditional(pushed) ((void) 0)
108 #define SPI_restore_connection() ((void) 0)
117 extern int SPI_execute(
const char *src,
bool read_only,
long tcount);
121 bool read_only,
long tcount);
126 bool read_only,
long tcount);
127 extern int SPI_exec(
const char *src,
long tcount);
134 bool read_only,
bool fire_triggers,
long tcount);
138 bool read_only,
long tcount);
181 Datum *Values,
const char *
Nulls,
bool read_only);
186 bool read_only,
int cursorOptions);
static bool Nulls[MAXATTR]
void(* ParserSetupHook)(struct ParseState *pstate, void *arg)
void AtEOSubXact_SPI(bool isCommit, SubTransactionId mySubid)
SPIPlanPtr SPI_prepare_cursor(const char *src, int nargs, Oid *argtypes, int cursorOptions)
int SPI_execute_plan_with_paramlist(SPIPlanPtr plan, ParamListInfo params, bool read_only, long tcount)
char * SPI_getrelname(Relation rel)
CachedPlan * SPI_plan_get_cached_plan(SPIPlanPtr plan)
void SPI_cursor_move(Portal portal, bool forward, long count)
PGDLLIMPORT uint64 SPI_processed
void SPI_freetuple(HeapTuple tuple)
int SPI_fnumber(TupleDesc tupdesc, const char *fname)
bool SPI_plan_is_valid(SPIPlanPtr plan)
void SPI_commit_and_chain(void)
bool SPI_is_cursor_plan(SPIPlanPtr plan)
SPIPlanPtr SPI_prepare_extended(const char *src, const SPIPrepareOptions *options)
Oid SPI_gettypeid(TupleDesc tupdesc, int fnumber)
void SPI_scroll_cursor_fetch(Portal, FetchDirection direction, long count)
HeapTupleHeader SPI_returntuple(HeapTuple tuple, TupleDesc tupdesc)
int SPI_freeplan(SPIPlanPtr plan)
void SPI_rollback_and_chain(void)
Portal SPI_cursor_find(const char *name)
int SPI_unregister_relation(const char *name)
bool SPI_inside_nonatomic_context(void)
struct SPITupleTable SPITupleTable
int SPI_execute_snapshot(SPIPlanPtr plan, Datum *Values, const char *Nulls, Snapshot snapshot, Snapshot crosscheck_snapshot, bool read_only, bool fire_triggers, long tcount)
int SPI_execute_plan_extended(SPIPlanPtr plan, const SPIExecuteOptions *options)
SPIPlanPtr SPI_prepare_params(const char *src, ParserSetupHook parserSetup, void *parserSetupArg, int cursorOptions)
SPIPlanPtr SPI_saveplan(SPIPlanPtr plan)
const char * SPI_result_code_string(int code)
void SPI_cursor_fetch(Portal portal, bool forward, long count)
Portal SPI_cursor_parse_open(const char *name, const char *src, const SPIParseOpenOptions *options)
int SPI_execute_plan(SPIPlanPtr plan, Datum *Values, const char *Nulls, bool read_only, long tcount)
Datum SPI_datumTransfer(Datum value, bool typByVal, int typLen)
PGDLLIMPORT int SPI_result
int SPI_register_trigger_data(TriggerData *tdata)
Portal SPI_cursor_open_with_paramlist(const char *name, SPIPlanPtr plan, ParamListInfo params, bool read_only)
Portal SPI_cursor_open_with_args(const char *name, const char *src, int nargs, Oid *argtypes, Datum *Values, const char *Nulls, bool read_only, int cursorOptions)
void SPI_freetuptable(SPITupleTable *tuptable)
Portal SPI_cursor_open(const char *name, SPIPlanPtr plan, Datum *Values, const char *Nulls, bool read_only)
void * SPI_repalloc(void *pointer, Size size)
struct SPIPrepareOptions SPIPrepareOptions
PGDLLIMPORT SPITupleTable * SPI_tuptable
int SPI_exec(const char *src, long tcount)
int SPI_register_relation(EphemeralNamedRelation enr)
HeapTuple SPI_modifytuple(Relation rel, HeapTuple tuple, int natts, int *attnum, Datum *Values, const char *Nulls)
SPIPlanPtr SPI_prepare(const char *src, int nargs, Oid *argtypes)
int SPI_keepplan(SPIPlanPtr plan)
void SPI_cursor_close(Portal portal)
void SPI_pfree(void *pointer)
char * SPI_getnspname(Relation rel)
int SPI_connect_ext(int options)
int SPI_execp(SPIPlanPtr plan, Datum *Values, const char *Nulls, long tcount)
char * SPI_gettype(TupleDesc tupdesc, int fnumber)
struct _SPI_plan * SPIPlanPtr
int SPI_execute_extended(const char *src, const SPIExecuteOptions *options)
List * SPI_plan_get_plan_sources(SPIPlanPtr plan)
struct SPIParseOpenOptions SPIParseOpenOptions
struct SPIExecuteOptions SPIExecuteOptions
void * SPI_palloc(Size size)
void SPI_scroll_cursor_move(Portal, FetchDirection direction, long count)
char * SPI_getvalue(HeapTuple tuple, TupleDesc tupdesc, int fnumber)
int SPI_execute_with_args(const char *src, int nargs, Oid *argtypes, Datum *Values, const char *Nulls, bool read_only, long tcount)
char * SPI_fname(TupleDesc tupdesc, int fnumber)
void SPI_start_transaction(void)
HeapTuple SPI_copytuple(HeapTuple tuple)
int SPI_getargcount(SPIPlanPtr plan)
void AtEOXact_SPI(bool isCommit)
int SPI_execute(const char *src, bool read_only, long tcount)
Datum SPI_getbinval(HeapTuple tuple, TupleDesc tupdesc, int fnumber, bool *isnull)
Oid SPI_getargtypeid(SPIPlanPtr plan, int argIndex)
ParserSetupHook parserSetup
ParserSetupHook parserSetup