/* * psql - the PostgreSQL interactive terminal * * Copyright (c) 2000-2023, PostgreSQL Global Development Group * * src/bin/psql/psqlscanslash.h */ #ifndef PSQLSCANSLASH_H #define PSQLSCANSLASH_H #include "fe_utils/psqlscan.h" /* Different ways for scan_slash_option to handle parameter words */ enum slash_option_type { OT_NORMAL, /* normal case */ OT_SQLID, /* treat as SQL identifier */ OT_SQLIDHACK, /* SQL identifier, but don't downcase */ OT_FILEPIPE, /* it's a filename or pipe */ OT_WHOLE_LINE /* just snarf the rest of the line */ }; extern char *psql_scan_slash_command(PsqlScanState state); extern char *psql_scan_slash_option(PsqlScanState state, enum slash_option_type type, char *quote, bool semicolon); extern void psql_scan_slash_command_end(PsqlScanState state); extern int psql_scan_get_paren_depth(PsqlScanState state); extern void psql_scan_set_paren_depth(PsqlScanState state, int depth); extern void dequote_downcase_identifier(char *str, bool downcase, int encoding); #endif /* PSQLSCANSLASH_H */