One Hat Cyber Team
Your IP :
216.73.216.14
Server IP :
194.44.31.54
Server :
Linux zen.imath.kiev.ua 4.18.0-553.77.1.el8_10.x86_64 #1 SMP Fri Oct 3 14:30:23 UTC 2025 x86_64
Server Software :
Apache/2.4.37 (Rocky Linux) OpenSSL/1.1.1k
PHP Version :
5.6.40
Buat File
|
Buat Folder
Eksekusi
Dir :
~
/
usr
/
pgsql-13
/
include
/
server
/
fe_utils
/
View File Name :
psqlscan.h
/*------------------------------------------------------------------------- * * psqlscan.h * lexical scanner for SQL commands * * This lexer used to be part of psql, and that heritage is reflected in * the file name as well as function and typedef names, though it can now * be used by other frontend programs as well. It's also possible to extend * this lexer with a compatible add-on lexer to handle program-specific * backslash commands. * * * Portions Copyright (c) 1996-2020, PostgreSQL Global Development Group * Portions Copyright (c) 1994, Regents of the University of California * * src/include/fe_utils/psqlscan.h * *------------------------------------------------------------------------- */ #ifndef PSQLSCAN_H #define PSQLSCAN_H #include "pqexpbuffer.h" /* Abstract type for lexer's internal state */ typedef struct PsqlScanStateData *PsqlScanState; /* Termination states for psql_scan() */ typedef enum { PSCAN_SEMICOLON, /* found command-ending semicolon */ PSCAN_BACKSLASH, /* found backslash command */ PSCAN_INCOMPLETE, /* end of line, SQL statement incomplete */ PSCAN_EOL /* end of line, SQL possibly complete */ } PsqlScanResult; /* Prompt type returned by psql_scan() */ typedef enum _promptStatus { PROMPT_READY, PROMPT_CONTINUE, PROMPT_COMMENT, PROMPT_SINGLEQUOTE, PROMPT_DOUBLEQUOTE, PROMPT_DOLLARQUOTE, PROMPT_PAREN, PROMPT_COPY } promptStatus_t; /* Quoting request types for get_variable() callback */ typedef enum { PQUOTE_PLAIN, /* just return the actual value */ PQUOTE_SQL_LITERAL, /* add quotes to make a valid SQL literal */ PQUOTE_SQL_IDENT, /* quote if needed to make a SQL identifier */ PQUOTE_SHELL_ARG /* quote if needed to be safe in a shell cmd */ } PsqlScanQuoteType; /* Callback functions to be used by the lexer */ typedef struct PsqlScanCallbacks { /* Fetch value of a variable, as a free'able string; NULL if unknown */ /* This pointer can be NULL if no variable substitution is wanted */ char *(*get_variable) (const char *varname, PsqlScanQuoteType quote, void *passthrough); } PsqlScanCallbacks; extern PsqlScanState psql_scan_create(const PsqlScanCallbacks *callbacks); extern void psql_scan_destroy(PsqlScanState state); extern void psql_scan_set_passthrough(PsqlScanState state, void *passthrough); extern void psql_scan_setup(PsqlScanState state, const char *line, int line_len, int encoding, bool std_strings); extern void psql_scan_finish(PsqlScanState state); extern PsqlScanResult psql_scan(PsqlScanState state, PQExpBuffer query_buf, promptStatus_t *prompt); extern void psql_scan_reset(PsqlScanState state); extern void psql_scan_reselect_sql_lexer(PsqlScanState state); extern bool psql_scan_in_quote(PsqlScanState state); #endif /* PSQLSCAN_H */