1 /*
2  * psql - the PostgreSQL interactive terminal
3  *
4  * Copyright (c) 2000-2021, PostgreSQL Global Development Group
5  *
6  * src/bin/psql/command.h
7  */
8 #ifndef COMMAND_H
9 #define COMMAND_H
10 
11 #include "fe_utils/conditional.h"
12 #include "fe_utils/print.h"
13 #include "fe_utils/psqlscan.h"
14 
15 typedef enum _backslashResult
16 {
17 	PSQL_CMD_UNKNOWN = 0,		/* not done parsing yet (internal only) */
18 	PSQL_CMD_SEND,				/* query complete; send off */
19 	PSQL_CMD_SKIP_LINE,			/* keep building query */
20 	PSQL_CMD_TERMINATE,			/* quit program */
21 	PSQL_CMD_NEWEDIT,			/* query buffer was changed (e.g., via \e) */
22 	PSQL_CMD_ERROR				/* the execution of the backslash command
23 								 * resulted in an error */
24 } backslashResult;
25 
26 
27 extern backslashResult HandleSlashCmds(PsqlScanState scan_state,
28 									   ConditionalStack cstack,
29 									   PQExpBuffer query_buf,
30 									   PQExpBuffer previous_buf);
31 
32 extern int	process_file(char *filename, bool use_relative_path);
33 
34 extern bool do_pset(const char *param,
35 					const char *value,
36 					printQueryOpt *popt,
37 					bool quiet);
38 
39 extern printQueryOpt *savePsetInfo(const printQueryOpt *popt);
40 
41 extern void restorePsetInfo(printQueryOpt *popt, printQueryOpt *save);
42 
43 extern void connection_warnings(bool in_startup);
44 
45 extern void SyncVariables(void);
46 
47 extern void UnsyncVariables(void);
48 
49 #endif							/* COMMAND_H */
50