mirror of
https://git.postgresql.org/git/postgresql.git
synced 2024-09-30 21:41:18 +02:00
9d4649ca49
Backpatch-through: certain files through 9.3
160 lines
3.7 KiB
C
160 lines
3.7 KiB
C
/*
|
|
* psql - the PostgreSQL interactive terminal
|
|
*
|
|
* Copyright (c) 2000-2018, PostgreSQL Global Development Group
|
|
*
|
|
* src/bin/psql/settings.h
|
|
*/
|
|
#ifndef SETTINGS_H
|
|
#define SETTINGS_H
|
|
|
|
|
|
#include "variables.h"
|
|
#include "fe_utils/print.h"
|
|
|
|
#define DEFAULT_FIELD_SEP "|"
|
|
#define DEFAULT_RECORD_SEP "\n"
|
|
|
|
#if defined(WIN32) || defined(__CYGWIN__)
|
|
#define DEFAULT_EDITOR "notepad.exe"
|
|
/* no DEFAULT_EDITOR_LINENUMBER_ARG for Notepad */
|
|
#else
|
|
#define DEFAULT_EDITOR "vi"
|
|
#define DEFAULT_EDITOR_LINENUMBER_ARG "+"
|
|
#endif
|
|
|
|
#define DEFAULT_PROMPT1 "%/%R%# "
|
|
#define DEFAULT_PROMPT2 "%/%R%# "
|
|
#define DEFAULT_PROMPT3 ">> "
|
|
|
|
/*
|
|
* Note: these enums should generally be chosen so that zero corresponds
|
|
* to the default behavior.
|
|
*/
|
|
|
|
typedef enum
|
|
{
|
|
PSQL_ECHO_NONE,
|
|
PSQL_ECHO_QUERIES,
|
|
PSQL_ECHO_ERRORS,
|
|
PSQL_ECHO_ALL
|
|
} PSQL_ECHO;
|
|
|
|
typedef enum
|
|
{
|
|
PSQL_ECHO_HIDDEN_OFF,
|
|
PSQL_ECHO_HIDDEN_ON,
|
|
PSQL_ECHO_HIDDEN_NOEXEC
|
|
} PSQL_ECHO_HIDDEN;
|
|
|
|
typedef enum
|
|
{
|
|
PSQL_ERROR_ROLLBACK_OFF,
|
|
PSQL_ERROR_ROLLBACK_INTERACTIVE,
|
|
PSQL_ERROR_ROLLBACK_ON
|
|
} PSQL_ERROR_ROLLBACK;
|
|
|
|
typedef enum
|
|
{
|
|
PSQL_COMP_CASE_PRESERVE_UPPER,
|
|
PSQL_COMP_CASE_PRESERVE_LOWER,
|
|
PSQL_COMP_CASE_UPPER,
|
|
PSQL_COMP_CASE_LOWER
|
|
} PSQL_COMP_CASE;
|
|
|
|
typedef enum
|
|
{
|
|
hctl_none = 0,
|
|
hctl_ignorespace = 1,
|
|
hctl_ignoredups = 2,
|
|
hctl_ignoreboth = hctl_ignorespace | hctl_ignoredups
|
|
} HistControl;
|
|
|
|
enum trivalue
|
|
{
|
|
TRI_DEFAULT,
|
|
TRI_NO,
|
|
TRI_YES
|
|
};
|
|
|
|
typedef struct _psqlSettings
|
|
{
|
|
PGconn *db; /* connection to backend */
|
|
int encoding; /* client_encoding */
|
|
FILE *queryFout; /* where to send the query results */
|
|
bool queryFoutPipe; /* queryFout is from a popen() */
|
|
|
|
FILE *copyStream; /* Stream to read/write for \copy command */
|
|
|
|
PGresult *last_error_result; /* most recent error result, if any */
|
|
|
|
printQueryOpt popt;
|
|
|
|
char *gfname; /* one-shot file output argument for \g */
|
|
bool g_expanded; /* one-shot expanded output requested via \gx */
|
|
char *gset_prefix; /* one-shot prefix argument for \gset */
|
|
bool gdesc_flag; /* one-shot request to describe query results */
|
|
bool gexec_flag; /* one-shot request to execute query results */
|
|
bool crosstab_flag; /* one-shot request to crosstab results */
|
|
char *ctv_args[4]; /* \crosstabview arguments */
|
|
|
|
bool notty; /* stdin or stdout is not a tty (as determined
|
|
* on startup) */
|
|
enum trivalue getPassword; /* prompt the user for a username and password */
|
|
FILE *cur_cmd_source; /* describe the status of the current main
|
|
* loop */
|
|
bool cur_cmd_interactive;
|
|
int sversion; /* backend server version */
|
|
const char *progname; /* in case you renamed psql */
|
|
char *inputfile; /* file being currently processed, if any */
|
|
uint64 lineno; /* also for error reporting */
|
|
uint64 stmt_lineno; /* line number inside the current statement */
|
|
|
|
bool timing; /* enable timing of all queries */
|
|
|
|
FILE *logfile; /* session log file handle */
|
|
|
|
VariableSpace vars; /* "shell variable" repository */
|
|
|
|
/*
|
|
* The remaining fields are set by assign hooks associated with entries in
|
|
* "vars". They should not be set directly except by those hook
|
|
* functions.
|
|
*/
|
|
bool autocommit;
|
|
bool on_error_stop;
|
|
bool quiet;
|
|
bool singleline;
|
|
bool singlestep;
|
|
int fetch_count;
|
|
int histsize;
|
|
int ignoreeof;
|
|
PSQL_ECHO echo;
|
|
PSQL_ECHO_HIDDEN echo_hidden;
|
|
PSQL_ERROR_ROLLBACK on_error_rollback;
|
|
PSQL_COMP_CASE comp_case;
|
|
HistControl histcontrol;
|
|
const char *prompt1;
|
|
const char *prompt2;
|
|
const char *prompt3;
|
|
PGVerbosity verbosity; /* current error verbosity level */
|
|
PGContextVisibility show_context; /* current context display level */
|
|
} PsqlSettings;
|
|
|
|
extern PsqlSettings pset;
|
|
|
|
|
|
#ifndef EXIT_SUCCESS
|
|
#define EXIT_SUCCESS 0
|
|
#endif
|
|
|
|
#ifndef EXIT_FAILURE
|
|
#define EXIT_FAILURE 1
|
|
#endif
|
|
|
|
#define EXIT_BADCONN 2
|
|
|
|
#define EXIT_USER 3
|
|
|
|
#endif
|