1 | /* |
2 | * psql - the PostgreSQL interactive terminal |
3 | * |
4 | * Copyright (c) 2000-2019, PostgreSQL Global Development Group |
5 | * |
6 | * src/bin/psql/psqlscanslash.h |
7 | */ |
8 | #ifndef PSQLSCANSLASH_H |
9 | #define PSQLSCANSLASH_H |
10 | |
11 | #include "fe_utils/psqlscan.h" |
12 | |
13 | |
14 | /* Different ways for scan_slash_option to handle parameter words */ |
15 | enum slash_option_type |
16 | { |
17 | OT_NORMAL, /* normal case */ |
18 | OT_SQLID, /* treat as SQL identifier */ |
19 | OT_SQLIDHACK, /* SQL identifier, but don't downcase */ |
20 | OT_FILEPIPE, /* it's a filename or pipe */ |
21 | OT_WHOLE_LINE /* just snarf the rest of the line */ |
22 | }; |
23 | |
24 | |
25 | extern char *psql_scan_slash_command(PsqlScanState state); |
26 | |
27 | extern char *psql_scan_slash_option(PsqlScanState state, |
28 | enum slash_option_type type, |
29 | char *quote, |
30 | bool semicolon); |
31 | |
32 | extern void psql_scan_slash_command_end(PsqlScanState state); |
33 | |
34 | extern int psql_scan_get_paren_depth(PsqlScanState state); |
35 | |
36 | extern void psql_scan_set_paren_depth(PsqlScanState state, int depth); |
37 | |
38 | extern void dequote_downcase_identifier(char *str, bool downcase, int encoding); |
39 | |
40 | #endif /* PSQLSCANSLASH_H */ |
41 | |