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 */
15enum 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
25extern char *psql_scan_slash_command(PsqlScanState state);
26
27extern char *psql_scan_slash_option(PsqlScanState state,
28 enum slash_option_type type,
29 char *quote,
30 bool semicolon);
31
32extern void psql_scan_slash_command_end(PsqlScanState state);
33
34extern int psql_scan_get_paren_depth(PsqlScanState state);
35
36extern void psql_scan_set_paren_depth(PsqlScanState state, int depth);
37
38extern void dequote_downcase_identifier(char *str, bool downcase, int encoding);
39
40#endif /* PSQLSCANSLASH_H */
41