tcopprot.h 3.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697
  1. /*-------------------------------------------------------------------------
  2. *
  3. * tcopprot.h
  4. * prototypes for postgres.c.
  5. *
  6. *
  7. * Portions Copyright (c) 1996-2022, PostgreSQL Global Development Group
  8. * Portions Copyright (c) 1994, Regents of the University of California
  9. *
  10. * src/include/tcop/tcopprot.h
  11. *
  12. *-------------------------------------------------------------------------
  13. */
  14. #ifndef TCOPPROT_H
  15. #define TCOPPROT_H
  16. #include "nodes/params.h"
  17. #include "nodes/parsenodes.h"
  18. #include "nodes/plannodes.h"
  19. #include "storage/procsignal.h"
  20. #include "utils/guc.h"
  21. #include "utils/queryenvironment.h"
  22. /* Required daylight between max_stack_depth and the kernel limit, in bytes */
  23. #define STACK_DEPTH_SLOP (512 * 1024L)
  24. extern PGDLLIMPORT CommandDest whereToSendOutput;
  25. extern PGDLLIMPORT const char *debug_query_string;
  26. extern PGDLLIMPORT int max_stack_depth;
  27. extern PGDLLIMPORT int PostAuthDelay;
  28. extern PGDLLIMPORT int client_connection_check_interval;
  29. /* GUC-configurable parameters */
  30. typedef enum
  31. {
  32. LOGSTMT_NONE, /* log no statements */
  33. LOGSTMT_DDL, /* log data definition statements */
  34. LOGSTMT_MOD, /* log modification statements, plus DDL */
  35. LOGSTMT_ALL /* log all statements */
  36. } LogStmtLevel;
  37. extern PGDLLIMPORT int log_statement;
  38. extern List *pg_parse_query(const char *query_string);
  39. extern List *pg_rewrite_query(Query *query);
  40. extern List *pg_analyze_and_rewrite_fixedparams(RawStmt *parsetree,
  41. const char *query_string,
  42. const Oid *paramTypes, int numParams,
  43. QueryEnvironment *queryEnv);
  44. extern List *pg_analyze_and_rewrite_varparams(RawStmt *parsetree,
  45. const char *query_string,
  46. Oid **paramTypes,
  47. int *numParams,
  48. QueryEnvironment *queryEnv);
  49. extern List *pg_analyze_and_rewrite_withcb(RawStmt *parsetree,
  50. const char *query_string,
  51. ParserSetupHook parserSetup,
  52. void *parserSetupArg,
  53. QueryEnvironment *queryEnv);
  54. extern PlannedStmt *pg_plan_query(Query *querytree, const char *query_string,
  55. int cursorOptions,
  56. ParamListInfo boundParams);
  57. extern List *pg_plan_queries(List *querytrees, const char *query_string,
  58. int cursorOptions,
  59. ParamListInfo boundParams);
  60. extern bool check_max_stack_depth(int *newval, void **extra, GucSource source);
  61. extern void assign_max_stack_depth(int newval, void *extra);
  62. extern void die(SIGNAL_ARGS);
  63. extern void quickdie(SIGNAL_ARGS) pg_attribute_noreturn();
  64. extern void StatementCancelHandler(SIGNAL_ARGS);
  65. extern void FloatExceptionHandler(SIGNAL_ARGS) pg_attribute_noreturn();
  66. extern void RecoveryConflictInterrupt(ProcSignalReason reason); /* called from SIGUSR1
  67. * handler */
  68. extern void ProcessClientReadInterrupt(bool blocked);
  69. extern void ProcessClientWriteInterrupt(bool blocked);
  70. extern void process_postgres_switches(int argc, char *argv[],
  71. GucContext ctx, const char **dbname);
  72. extern void PostgresSingleUserMain(int argc, char *argv[],
  73. const char *username) pg_attribute_noreturn();
  74. extern void PostgresMain(const char *dbname,
  75. const char *username) pg_attribute_noreturn();
  76. extern long get_stack_depth_rlimit(void);
  77. extern void ResetUsage(void);
  78. extern void ShowUsage(const char *title);
  79. extern int check_log_duration(char *msec_str, bool was_logged);
  80. extern void set_debug_options(int debug_flag,
  81. GucContext context, GucSource source);
  82. extern bool set_plan_disabling_options(const char *arg,
  83. GucContext context, GucSource source);
  84. extern const char *get_stats_option_name(const char *arg);
  85. #endif /* TCOPPROT_H */