Hackfut Security File Manager
Current Path:
/opt/alt/postgresql11/usr/include/pgsql/server/executor
opt
/
alt
/
postgresql11
/
usr
/
include
/
pgsql
/
server
/
executor
/
📁
..
📄
execdebug.h
(4.32 KB)
📄
execdesc.h
(2.33 KB)
📄
executor.h
(14.56 KB)
📄
functions.h
(1.12 KB)
📄
hashjoin.h
(7.18 KB)
📄
instrument.h
(2.79 KB)
📄
nodeAgg.h
(782 B)
📄
nodeAppend.h
(701 B)
📄
nodeBitmapAnd.h
(738 B)
📄
nodeBitmapHeapscan.h
(813 B)
📄
nodeBitmapIndexscan.h
(822 B)
📄
nodeBitmapOr.h
(724 B)
📄
nodeCtescan.h
(715 B)
📄
nodeForeignscan.h
(771 B)
📄
nodeFunctionscan.h
(785 B)
📄
nodeGroup.h
(716 B)
📄
nodeHash.h
(1.88 KB)
📄
nodeHashjoin.h
(890 B)
📄
nodeIndexonlyscan.h
(920 B)
📄
nodeIndexscan.h
(1.52 KB)
📄
nodeLimit.h
(687 B)
📄
nodeLockRows.h
(729 B)
📄
nodeMaterial.h
(838 B)
📄
nodeMergeAppend.h
(771 B)
📄
nodeMergejoin.h
(743 B)
📄
nodeModifyTable.h
(768 B)
📄
nodeNestloop.h
(729 B)
📄
nodeRecursiveunion.h
(813 B)
📄
nodeResult.h
(802 B)
📄
nodeSeqscan.h
(812 B)
📄
nodeSetOp.h
(687 B)
📄
nodeSort.h
(766 B)
📄
nodeSubplan.h
(812 B)
📄
nodeSubqueryscan.h
(785 B)
📄
nodeTidscan.h
(812 B)
📄
nodeUnique.h
(701 B)
📄
nodeValuesscan.h
(866 B)
📄
nodeWindowAgg.h
(776 B)
📄
nodeWorktablescan.h
(799 B)
📄
spi.h
(5.53 KB)
📄
spi_priv.h
(3.61 KB)
📄
tstoreReceiver.h
(767 B)
📄
tuptable.h
(8.4 KB)
Editing: spi_priv.h
/*------------------------------------------------------------------------- * * spi_priv.h * Server Programming Interface private declarations * * Portions Copyright (c) 1996-2012, PostgreSQL Global Development Group * Portions Copyright (c) 1994, Regents of the University of California * * src/include/executor/spi_priv.h * *------------------------------------------------------------------------- */ #ifndef SPI_PRIV_H #define SPI_PRIV_H #include "executor/spi.h" #define _SPI_PLAN_MAGIC 569278163 typedef struct { /* current results */ uint32 processed; /* by Executor */ Oid lastoid; SPITupleTable *tuptable; MemoryContext procCxt; /* procedure context */ MemoryContext execCxt; /* executor context */ MemoryContext savedcxt; /* context of SPI_connect's caller */ SubTransactionId connectSubid; /* ID of connecting subtransaction */ } _SPI_connection; /* * SPI plans have three states: saved, unsaved, or temporary. * * Ordinarily, the _SPI_plan struct itself as well as the argtypes array * are in a dedicated memory context identified by plancxt (which can be * really small). All the other subsidiary state is in plancache entries * identified by plancache_list (note: the list cells themselves are in * plancxt). * * In an unsaved plan, the plancxt as well as the plancache entries' contexts * are children of the SPI procedure context, so they'll all disappear at * function exit. plancache.c also knows that the plancache entries are * "unsaved", so it doesn't link them into its global list; hence they do * not respond to inval events. This is OK since we are presumably holding * adequate locks to prevent other backends from messing with the tables. * * For a saved plan, the plancxt is made a child of CacheMemoryContext * since it should persist until explicitly destroyed. Likewise, the * plancache entries will be under CacheMemoryContext since we tell * plancache.c to save them. We rely on plancache.c to keep the cache * entries up-to-date as needed in the face of invalidation events. * * There are also "temporary" SPI plans, in which the _SPI_plan struct is * not even palloc'd but just exists in some function's local variable. * The plancache entries are unsaved and exist under the SPI executor context, * while additional data such as argtypes and list cells is loose in the SPI * executor context. Such plans can be identified by having plancxt == NULL. * * We can also have "one-shot" SPI plans (which are typically temporary, * as described above). These are meant to be executed once and discarded, * and various optimizations are made on the assumption of single use. * Note in particular that the CachedPlanSources within such an SPI plan * are not "complete" until execution. * * Note: if the original query string contained only whitespace and comments, * the plancache_list will be NIL and so there is no place to store the * query string. We don't care about that, but we do care about the * argument type array, which is why it's seemingly-redundantly stored. */ typedef struct _SPI_plan { int magic; /* should equal _SPI_PLAN_MAGIC */ bool saved; /* saved or unsaved plan? */ bool oneshot; /* one-shot plan? */ List *plancache_list; /* one CachedPlanSource per parsetree */ MemoryContext plancxt; /* Context containing _SPI_plan and data */ int cursor_options; /* Cursor options used for planning */ int nargs; /* number of plan arguments */ Oid *argtypes; /* Argument types (NULL if nargs is 0) */ ParserSetupHook parserSetup; /* alternative parameter spec method */ void *parserSetupArg; } _SPI_plan; #endif /* SPI_PRIV_H */
Upload File
Create Folder