v3-0002-sanitize-variable-or-argument-name-in-pg_dump.patch
text/x-patch
Filename: v3-0002-sanitize-variable-or-argument-name-in-pg_dump.patch
Type: text/x-patch
Part: 0
Patch
Same data as JSON:
GET /api/v1/attachments/:id/patch
the parsed metadata as JSON — format, series position, per-file stats; never the diff bytes.
API reference →
Format: format-patch
Series: patch v3-0002
Subject: sanitize variable or argument name in pg_dump
| File | + | − |
|---|---|---|
| src/bin/pg_dump/pg_dump.c | 16 | 16 |
| src/bin/pg_dump/pg_dump.h | 2 | 2 |
From 2db869fc212867e74f61f4e5b2aef1fda017e9f7 Mon Sep 17 00:00:00 2001
From: jian he <jian.universality@gmail.com>
Date: Thu, 8 May 2025 12:48:25 +0800
Subject: [PATCH v3 2/2] sanitize variable or argument name in pg_dump
discussion: https://postgr.es/m/CACJufxF-0bqVR=j4jonS6N2Ka6hHUpFyu3_3TWKNhOW_4yFSSg@mail.gmail.com
---
src/bin/pg_dump/pg_dump.c | 32 ++++++++++++++++----------------
src/bin/pg_dump/pg_dump.h | 4 ++--
2 files changed, 18 insertions(+), 18 deletions(-)
diff --git a/src/bin/pg_dump/pg_dump.c b/src/bin/pg_dump/pg_dump.c
index 7837d4cea36..b3064f1b8d3 100644
--- a/src/bin/pg_dump/pg_dump.c
+++ b/src/bin/pg_dump/pg_dump.c
@@ -6118,8 +6118,8 @@ getTypes(Archive *fout)
/*
* If it's a domain, fetch info about its constraints, if any
*/
- tyinfo[i].nDomChecks = 0;
- tyinfo[i].domChecks = NULL;
+ tyinfo[i].nDomConstrs = 0;
+ tyinfo[i].domConstrs = NULL;
if ((tyinfo[i].dobj.dump & DUMP_COMPONENT_DEFINITION) &&
tyinfo[i].typtype == TYPTYPE_DOMAIN)
getDomainConstraints(fout, &(tyinfo[i]));
@@ -8296,8 +8296,8 @@ getDomainConstraints(Archive *fout, TypeInfo *tyinfo)
constrinfo = (ConstraintInfo *) pg_malloc(ntups * sizeof(ConstraintInfo));
- tyinfo->nDomChecks = ntups;
- tyinfo->domChecks = constrinfo;
+ tyinfo->nDomConstrs = ntups;
+ tyinfo->domConstrs = constrinfo;
for (i = 0; i < ntups; i++)
{
@@ -12508,28 +12508,28 @@ dumpDomain(Archive *fout, const TypeInfo *tyinfo)
/*
* Add any CHECK, NOT NULL constraints for the domain
*/
- for (i = 0; i < tyinfo->nDomChecks; i++)
+ for (i = 0; i < tyinfo->nDomConstrs; i++)
{
- ConstraintInfo *domcheck = &(tyinfo->domChecks[i]);
+ ConstraintInfo *domconstr = &(tyinfo->domConstrs[i]);
- if (!domcheck->separate)
+ if (!domconstr->separate)
{
- if (domcheck->contype == 'n')
+ if (domconstr->contype == 'n')
{
char *default_name;
/* XXX should match ChooseConstraintName better */
default_name = psprintf("%s_not_null", qtypname);
- if (strcmp(default_name, fmtId(domcheck->dobj.name)) == 0)
+ if (strcmp(default_name, fmtId(domconstr->dobj.name)) == 0)
appendPQExpBufferStr(q, " NOT NULL");
else
appendPQExpBuffer(q, "\n\tCONSTRAINT %s %s",
- fmtId(domcheck->dobj.name), domcheck->condef);
+ fmtId(domconstr->dobj.name), domconstr->condef);
}
else
appendPQExpBuffer(q, "\n\tCONSTRAINT %s %s",
- fmtId(domcheck->dobj.name), domcheck->condef);
+ fmtId(domconstr->dobj.name), domconstr->condef);
}
}
@@ -12570,19 +12570,19 @@ dumpDomain(Archive *fout, const TypeInfo *tyinfo)
NULL, tyinfo->rolname, &tyinfo->dacl);
/* Dump any per-constraint comments */
- for (i = 0; i < tyinfo->nDomChecks; i++)
+ for (i = 0; i < tyinfo->nDomConstrs; i++)
{
- ConstraintInfo *domcheck = &(tyinfo->domChecks[i]);
+ ConstraintInfo *domconstr = &(tyinfo->domConstrs[i]);
PQExpBuffer conprefix = createPQExpBuffer();
appendPQExpBuffer(conprefix, "CONSTRAINT %s ON DOMAIN",
- fmtId(domcheck->dobj.name));
+ fmtId(domconstr->dobj.name));
- if (domcheck->dobj.dump & DUMP_COMPONENT_COMMENT)
+ if (domconstr->dobj.dump & DUMP_COMPONENT_COMMENT)
dumpComment(fout, conprefix->data, qtypname,
tyinfo->dobj.namespace->dobj.name,
tyinfo->rolname,
- domcheck->dobj.catId, 0, tyinfo->dobj.dumpId);
+ domconstr->dobj.catId, 0, tyinfo->dobj.dumpId);
destroyPQExpBuffer(conprefix);
}
diff --git a/src/bin/pg_dump/pg_dump.h b/src/bin/pg_dump/pg_dump.h
index 7417eab6aef..b5e19ecc2e3 100644
--- a/src/bin/pg_dump/pg_dump.h
+++ b/src/bin/pg_dump/pg_dump.h
@@ -223,8 +223,8 @@ typedef struct _typeInfo
/* If needed, we'll create a "shell type" entry for it; link that here: */
struct _shellTypeInfo *shellType; /* shell-type entry, or NULL */
/* If it's a domain, we store links to its constraints here: */
- int nDomChecks;
- struct _constraintInfo *domChecks;
+ int nDomConstrs;
+ struct _constraintInfo *domConstrs;
} TypeInfo;
typedef struct _shellTypeInfo
--
2.34.1