1 /*------------------------------------------------------------------------- 2 * 3 * pquery.h 4 * prototypes for pquery.c. 5 * 6 * 7 * Portions Copyright (c) 1996-2020, PostgreSQL Global Development Group 8 * Portions Copyright (c) 1994, Regents of the University of California 9 * 10 * src/include/tcop/pquery.h 11 * 12 *------------------------------------------------------------------------- 13 */ 14 #ifndef PQUERY_H 15 #define PQUERY_H 16 17 #include "nodes/parsenodes.h" 18 #include "utils/portal.h" 19 20 struct PlannedStmt; /* avoid including plannodes.h here */ 21 22 23 extern PGDLLIMPORT Portal ActivePortal; 24 25 26 extern PortalStrategy ChoosePortalStrategy(List *stmts); 27 28 extern List *FetchPortalTargetList(Portal portal); 29 30 extern List *FetchStatementTargetList(Node *stmt); 31 32 extern void PortalStart(Portal portal, ParamListInfo params, 33 int eflags, Snapshot snapshot); 34 35 extern void PortalSetResultFormat(Portal portal, int nFormats, 36 int16 *formats); 37 38 extern bool PortalRun(Portal portal, long count, bool isTopLevel, 39 bool run_once, DestReceiver *dest, DestReceiver *altdest, 40 QueryCompletion *qc); 41 42 extern uint64 PortalRunFetch(Portal portal, 43 FetchDirection fdirection, 44 long count, 45 DestReceiver *dest); 46 47 extern bool PlannedStmtRequiresSnapshot(struct PlannedStmt *pstmt); 48 49 extern void EnsurePortalSnapshotExists(void); 50 51 #endif /* PQUERY_H */ 52