Specify the encoding of input to fmtId()
authorAndres Freund <[email protected]>
Mon, 10 Feb 2025 15:03:38 +0000 (10:03 -0500)
committerAndres Freund <[email protected]>
Mon, 10 Feb 2025 15:03:38 +0000 (10:03 -0500)
commit61ad93cdd48ecc8c6edf943f4d888a9325b66882
tree6d8a4f72c63a8173f4baa9388bc8f7a1621a5214
parent7d43ca6fe068015b403ffa1762f4df4efdf68b69
Specify the encoding of input to fmtId()

This commit adds fmtIdEnc() and fmtQualifiedIdEnc(), which allow to specify
the encoding as an explicit argument.  Additionally setFmtEncoding() is
provided, which defines the encoding when no explicit encoding is provided, to
avoid breaking all code using fmtId().

All users of fmtId()/fmtQualifiedId() are either converted to the explicit
version or a call to setFmtEncoding() has been added.

This commit does not yet utilize the now well-defined encoding, that will
happen in a subsequent commit.

Reviewed-by: Noah Misch <[email protected]>
Reviewed-by: Tom Lane <[email protected]>
Backpatch-through: 13
Security: CVE-2025-1094
13 files changed:
src/bin/pg_dump/pg_backup_archiver.c
src/bin/pg_dump/pg_dump.c
src/bin/pg_dump/pg_dumpall.c
src/bin/psql/command.c
src/bin/scripts/common.c
src/bin/scripts/createdb.c
src/bin/scripts/createuser.c
src/bin/scripts/dropdb.c
src/bin/scripts/dropuser.c
src/bin/scripts/reindexdb.c
src/bin/scripts/vacuumdb.c
src/fe_utils/string_utils.c
src/include/fe_utils/string_utils.h