PostgreSQL Source Code  git master
settings.h
Go to the documentation of this file.
1 /*
2  * psql - the PostgreSQL interactive terminal
3  *
4  * Copyright (c) 2000-2019, PostgreSQL Global Development Group
5  *
6  * src/bin/psql/settings.h
7  */
8 #ifndef SETTINGS_H
9 #define SETTINGS_H
10 
11 
12 #include "variables.h"
13 #include "fe_utils/print.h"
14 
15 #define DEFAULT_CSV_FIELD_SEP ','
16 #define DEFAULT_FIELD_SEP "|"
17 #define DEFAULT_RECORD_SEP "\n"
18 
19 #if defined(WIN32) || defined(__CYGWIN__)
20 #define DEFAULT_EDITOR "notepad.exe"
21 /* no DEFAULT_EDITOR_LINENUMBER_ARG for Notepad */
22 #else
23 #define DEFAULT_EDITOR "vi"
24 #define DEFAULT_EDITOR_LINENUMBER_ARG "+"
25 #endif
26 
27 #define DEFAULT_PROMPT1 "%/%R%# "
28 #define DEFAULT_PROMPT2 "%/%R%# "
29 #define DEFAULT_PROMPT3 ">> "
30 
31 /*
32  * Note: these enums should generally be chosen so that zero corresponds
33  * to the default behavior.
34  */
35 
36 typedef enum
37 {
42 } PSQL_ECHO;
43 
44 typedef enum
45 {
50 
51 typedef enum
52 {
57 
58 typedef enum
59 {
65 
66 typedef enum
67 {
68  hctl_none = 0,
72 } HistControl;
73 
75 {
79 };
80 
81 typedef struct _psqlSettings
82 {
83  PGconn *db; /* connection to backend */
84  int encoding; /* client_encoding */
85  FILE *queryFout; /* where to send the query results */
86  bool queryFoutPipe; /* queryFout is from a popen() */
87 
88  FILE *copyStream; /* Stream to read/write for \copy command */
89 
90  PGresult *last_error_result; /* most recent error result, if any */
91 
93 
94  char *gfname; /* one-shot file output argument for \g */
95  bool g_expanded; /* one-shot expanded output requested via \gx */
96  char *gset_prefix; /* one-shot prefix argument for \gset */
97  bool gdesc_flag; /* one-shot request to describe query results */
98  bool gexec_flag; /* one-shot request to execute query results */
99  bool crosstab_flag; /* one-shot request to crosstab results */
100  char *ctv_args[4]; /* \crosstabview arguments */
101 
102  bool notty; /* stdin or stdout is not a tty (as determined
103  * on startup) */
104  enum trivalue getPassword; /* prompt the user for a username and password */
105  FILE *cur_cmd_source; /* describe the status of the current main
106  * loop */
108  int sversion; /* backend server version */
109  const char *progname; /* in case you renamed psql */
110  char *inputfile; /* file being currently processed, if any */
111  uint64 lineno; /* also for error reporting */
112  uint64 stmt_lineno; /* line number inside the current statement */
113 
114  bool timing; /* enable timing of all queries */
115 
116  FILE *logfile; /* session log file handle */
117 
118  VariableSpace vars; /* "shell variable" repository */
119 
120  /*
121  * The remaining fields are set by assign hooks associated with entries in
122  * "vars". They should not be set directly except by those hook
123  * functions.
124  */
127  bool quiet;
132  int histsize;
139  const char *prompt1;
140  const char *prompt2;
141  const char *prompt3;
142  PGVerbosity verbosity; /* current error verbosity level */
143  PGContextVisibility show_context; /* current context display level */
144 } PsqlSettings;
145 
146 extern PsqlSettings pset;
147 
148 
149 #ifndef EXIT_SUCCESS
150 #define EXIT_SUCCESS 0
151 #endif
152 
153 #ifndef EXIT_FAILURE
154 #define EXIT_FAILURE 1
155 #endif
156 
157 #define EXIT_BADCONN 2
158 
159 #define EXIT_USER 3
160 
161 #endif
PSQL_ECHO echo
Definition: settings.h:134
bool singlestep
Definition: settings.h:129
char * gset_prefix
Definition: settings.h:96
PGconn * db
Definition: settings.h:83
PsqlSettings pset
Definition: startup.c:35
const char * prompt3
Definition: settings.h:141
bool gexec_flag
Definition: settings.h:98
PSQL_ECHO_HIDDEN
Definition: settings.h:44
bool queryFoutPipe
Definition: settings.h:86
PSQL_COMP_CASE comp_case
Definition: settings.h:137
FILE * queryFout
Definition: settings.h:85
char * inputfile
Definition: settings.h:110
bool on_error_stop
Definition: settings.h:126
bool autocommit
Definition: settings.h:125
FILE * copyStream
Definition: settings.h:88
PSQL_ERROR_ROLLBACK on_error_rollback
Definition: settings.h:136
FILE * cur_cmd_source
Definition: settings.h:105
char * ctv_args[4]
Definition: settings.h:100
bool cur_cmd_interactive
Definition: settings.h:107
PSQL_ECHO_HIDDEN echo_hidden
Definition: settings.h:135
bool gdesc_flag
Definition: settings.h:97
int fetch_count
Definition: settings.h:131
bool g_expanded
Definition: settings.h:95
struct _psqlSettings PsqlSettings
HistControl
Definition: settings.h:66
bool singleline
Definition: settings.h:128
PSQL_ECHO
Definition: settings.h:36
trivalue
Definition: vacuumlo.c:34
PGContextVisibility show_context
Definition: settings.h:143
char * gfname
Definition: settings.h:94
PGContextVisibility
Definition: libpq-fe.h:120
PGresult * last_error_result
Definition: settings.h:90
FILE * logfile
Definition: settings.h:116
PGVerbosity
Definition: libpq-fe.h:112
PSQL_ERROR_ROLLBACK
Definition: settings.h:51
PGVerbosity verbosity
Definition: settings.h:142
const char * progname
Definition: settings.h:109
printQueryOpt popt
Definition: settings.h:92
enum trivalue getPassword
Definition: settings.h:104
const char * prompt2
Definition: settings.h:140
const char * prompt1
Definition: settings.h:139
uint64 lineno
Definition: settings.h:111
bool crosstab_flag
Definition: settings.h:99
bool hide_tableam
Definition: settings.h:130
int encoding
Definition: settings.h:84
uint64 stmt_lineno
Definition: settings.h:112
HistControl histcontrol
Definition: settings.h:138
VariableSpace vars
Definition: settings.h:118
PSQL_COMP_CASE
Definition: settings.h:58