| 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 | |