* prototypes for postgres.c.
*
*
- * Portions Copyright (c) 1996-2000, PostgreSQL, Inc
+ * Portions Copyright (c) 1996-2017, PostgreSQL Global Development Group
* Portions Copyright (c) 1994, Regents of the University of California
*
- * $Id: tcopprot.h,v 1.29 2000/06/08 22:37:56 momjian Exp $
+ * src/include/tcop/tcopprot.h
*
* OLD COMMENTS
* This file was created so that other c files could get the two
#ifndef TCOPPROT_H
#define TCOPPROT_H
-#include <setjmp.h>
-#include "executor/execdesc.h"
-#include "parser/parse_node.h"
+#include "nodes/params.h"
+#include "nodes/parsenodes.h"
+#include "nodes/plannodes.h"
+#include "storage/procsignal.h"
+#include "utils/guc.h"
-extern DLLIMPORT sigjmp_buf Warn_restart;
-extern bool Warn_restart_ready;
-extern bool InError;
-extern bool ExitAfterAbort;
-extern bool HostnameLookup;
-extern bool ShowPortNumber;
+/* Required daylight between max_stack_depth and the kernel limit, in bytes */
+#define STACK_DEPTH_SLOP (512 * 1024L)
-#ifndef BOOTSTRAP_INCLUDE
+extern CommandDest whereToSendOutput;
+extern PGDLLIMPORT const char *debug_query_string;
+extern int max_stack_depth;
+extern int PostAuthDelay;
-extern List *pg_parse_and_rewrite(char *query_string,
- Oid *typev, int nargs,
- bool aclOverride);
-extern Plan *pg_plan_query(Query *querytree);
-extern void pg_exec_query_dest(char *query_string,
- CommandDest dest,
- bool aclOverride);
+/* GUC-configurable parameters */
-#endif /* BOOTSTRAP_INCLUDE */
+typedef enum
+{
+ LOGSTMT_NONE, /* log no statements */
+ LOGSTMT_DDL, /* log data definition statements */
+ LOGSTMT_MOD, /* log modification statements, plus DDL */
+ LOGSTMT_ALL /* log all statements */
+} LogStmtLevel;
+
+extern int log_statement;
+
+extern List *pg_parse_query(const char *query_string);
+extern List *pg_analyze_and_rewrite(RawStmt *parsetree,
+ const char *query_string,
+ Oid *paramTypes, int numParams);
+extern List *pg_analyze_and_rewrite_params(RawStmt *parsetree,
+ const char *query_string,
+ ParserSetupHook parserSetup,
+ void *parserSetupArg);
+extern PlannedStmt *pg_plan_query(Query *querytree, int cursorOptions,
+ ParamListInfo boundParams);
+extern List *pg_plan_queries(List *querytrees, int cursorOptions,
+ ParamListInfo boundParams);
+
+extern bool check_max_stack_depth(int *newval, void **extra, GucSource source);
+extern void assign_max_stack_depth(int newval, void *extra);
-extern void handle_warn(SIGNAL_ARGS);
extern void die(SIGNAL_ARGS);
-extern void CancelQuery(void);
-extern int PostgresMain(int argc, char *argv[],
- int real_argc, char *real_argv[]);
+extern void quickdie(SIGNAL_ARGS) pg_attribute_noreturn();
+extern void StatementCancelHandler(SIGNAL_ARGS);
+extern void FloatExceptionHandler(SIGNAL_ARGS) pg_attribute_noreturn();
+extern void RecoveryConflictInterrupt(ProcSignalReason reason); /* called from SIGUSR1
+ * handler */
+extern void ProcessClientReadInterrupt(bool blocked);
+extern void ProcessClientWriteInterrupt(bool blocked);
+
+extern void process_postgres_switches(int argc, char *argv[],
+ GucContext ctx, const char **dbname);
+extern void PostgresMain(int argc, char *argv[],
+ const char *dbname,
+ const char *username) pg_attribute_noreturn();
+extern long get_stack_depth_rlimit(void);
extern void ResetUsage(void);
-extern void ShowUsage(void);
-extern FILE * StatFp;
+extern void ShowUsage(const char *title);
+extern int check_log_duration(char *msec_str, bool was_logged);
+extern void set_debug_options(int debug_flag,
+ GucContext context, GucSource source);
+extern bool set_plan_disabling_options(const char *arg,
+ GucContext context, GucSource source);
+extern const char *get_stats_option_name(const char *arg);
-#endif /* TCOPPROT_H */
+#endif /* TCOPPROT_H */