PostgreSQL Source Code git master
string_utils.h
Go to the documentation of this file.
1/*-------------------------------------------------------------------------
2 *
3 * String-processing utility routines for frontend code
4 *
5 * Utility functions that interpret backend output or quote strings for
6 * assorted contexts.
7 *
8 *
9 * Portions Copyright (c) 1996-2025, PostgreSQL Global Development Group
10 * Portions Copyright (c) 1994, Regents of the University of California
11 *
12 * src/include/fe_utils/string_utils.h
13 *
14 *-------------------------------------------------------------------------
15 */
16#ifndef STRING_UTILS_H
17#define STRING_UTILS_H
18
19#include "libpq-fe.h"
20#include "pqexpbuffer.h"
21
22/* Global variables controlling behavior of fmtId() and fmtQualifiedId() */
24extern PQExpBuffer (*getLocalPQExpBuffer) (void);
25
26/* Functions */
27extern const char *fmtId(const char *rawid);
28extern const char *fmtIdEnc(const char *rawid, int encoding);
29extern const char *fmtQualifiedId(const char *schema, const char *id);
30extern const char *fmtQualifiedIdEnc(const char *schema, const char *id, int encoding);
31extern void setFmtEncoding(int encoding);
32
33extern char *formatPGVersionNumber(int version_number, bool include_minor,
34 char *buf, size_t buflen);
35
36extern void appendStringLiteral(PQExpBuffer buf, const char *str,
37 int encoding, bool std_strings);
38extern void appendStringLiteralConn(PQExpBuffer buf, const char *str,
39 PGconn *conn);
40extern void appendStringLiteralDQ(PQExpBuffer buf, const char *str,
41 const char *dqprefix);
43 const unsigned char *str, size_t length,
44 bool std_strings);
45
46extern void appendShellString(PQExpBuffer buf, const char *str);
47extern bool appendShellStringNoError(PQExpBuffer buf, const char *str);
48extern void appendConnStrVal(PQExpBuffer buf, const char *str);
49extern void appendPsqlMetaConnect(PQExpBuffer buf, const char *dbname);
50
51extern bool parsePGArray(const char *atext, char ***itemarray, int *nitems);
52extern void appendPGArray(PQExpBuffer buffer, const char *value);
53
54extern bool appendReloptionsArray(PQExpBuffer buffer, const char *reloptions,
55 const char *prefix, int encoding, bool std_strings);
56
58 const char *pattern,
59 bool have_where, bool force_escape,
60 const char *schemavar, const char *namevar,
61 const char *altnamevar, const char *visibilityrule,
62 PQExpBuffer dbnamebuf, int *dotcnt);
63
64extern void patternToSQLRegex(int encoding, PQExpBuffer dbnamebuf,
65 PQExpBuffer schemabuf, PQExpBuffer namebuf,
66 const char *pattern, bool force_escape,
67 bool want_literal_dbname, int *dotcnt);
68
69#endif /* STRING_UTILS_H */
#define PGDLLIMPORT
Definition: c.h:1277
const char * str
#define nitems(x)
Definition: indent.h:31
static struct @162 value
int32 encoding
Definition: pg_database.h:41
static char * buf
Definition: pg_test_fsync.c:72
PQExpBufferData * PQExpBuffer
Definition: pqexpbuffer.h:51
char * dbname
Definition: streamutil.c:50
PGconn * conn
Definition: streamutil.c:53
const char * fmtQualifiedId(const char *schema, const char *id)
Definition: string_utils.c:307
bool appendShellStringNoError(PQExpBuffer buf, const char *str)
Definition: string_utils.c:615
const char * fmtIdEnc(const char *rawid, int encoding)
Definition: string_utils.c:101
const char * fmtId(const char *rawid)
Definition: string_utils.c:259
const char * fmtQualifiedIdEnc(const char *schema, const char *id, int encoding)
Definition: string_utils.c:274
void setFmtEncoding(int encoding)
Definition: string_utils.c:69
void appendShellString(PQExpBuffer buf, const char *str)
Definition: string_utils.c:603
void appendStringLiteralConn(PQExpBuffer buf, const char *str, PGconn *conn)
Definition: string_utils.c:467
void appendPGArray(PQExpBuffer buffer, const char *value)
Definition: string_utils.c:923
bool processSQLNamePattern(PGconn *conn, PQExpBuffer buf, const char *pattern, bool have_where, bool force_escape, const char *schemavar, const char *namevar, const char *altnamevar, const char *visibilityrule, PQExpBuffer dbnamebuf, int *dotcnt)
void appendPsqlMetaConnect(PQExpBuffer buf, const char *dbname)
Definition: string_utils.c:764
void appendByteaLiteral(PQExpBuffer buf, const unsigned char *str, size_t length, bool std_strings)
Definition: string_utils.c:548
bool parsePGArray(const char *atext, char ***itemarray, int *nitems)
Definition: string_utils.c:840
void appendStringLiteral(PQExpBuffer buf, const char *str, int encoding, bool std_strings)
Definition: string_utils.c:362
void patternToSQLRegex(int encoding, PQExpBuffer dbnamebuf, PQExpBuffer schemabuf, PQExpBuffer namebuf, const char *pattern, bool force_escape, bool want_literal_dbname, int *dotcnt)
bool appendReloptionsArray(PQExpBuffer buffer, const char *reloptions, const char *prefix, int encoding, bool std_strings)
Definition: string_utils.c:987
PGDLLIMPORT int quote_all_identifiers
Definition: ruleutils.c:339
PQExpBuffer(* getLocalPQExpBuffer)(void)
Definition: string_utils.c:28
void appendStringLiteralDQ(PQExpBuffer buf, const char *str, const char *dqprefix)
Definition: string_utils.c:505
void appendConnStrVal(PQExpBuffer buf, const char *str)
Definition: string_utils.c:719
char * formatPGVersionNumber(int version_number, bool include_minor, char *buf, size_t buflen)
Definition: string_utils.c:324