v1-0001-Disallow-empty-Foreign-Table-column-option-name-i.patch
application/octet-stream
Filename: v1-0001-Disallow-empty-Foreign-Table-column-option-name-i.patch
Type: application/octet-stream
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 v1-0001
Subject: Disallow empty Foreign Table column option name i.e (column_name '').
| File | + | − |
|---|---|---|
| src/backend/commands/tablecmds.c | 16 | 0 |
From ad4932955c855d056cb0df96a5d55931678f1819 Mon Sep 17 00:00:00 2001
From: Nishant Sharma <nishant.sharma@enterprisedb.com>
Date: Wed, 14 Aug 2024 16:45:52 +0530
Subject: [PATCH v1 1/2] Disallow empty Foreign Table column option name i.e
(column_name '').
---
src/backend/commands/tablecmds.c | 16 ++++++++++++++++
1 file changed, 16 insertions(+)
diff --git a/src/backend/commands/tablecmds.c b/src/backend/commands/tablecmds.c
index 0b2a524..ff8d6ba 100644
--- a/src/backend/commands/tablecmds.c
+++ b/src/backend/commands/tablecmds.c
@@ -14214,10 +14214,26 @@ ATExecAlterColumnGenericOptions(Relation rel,
Form_pg_attribute atttableform;
AttrNumber attnum;
ObjectAddress address;
+ ListCell *lc;
if (options == NIL)
return InvalidObjectAddress;
+ foreach(lc, options)
+ {
+ DefElem *def = (DefElem *) lfirst(lc);
+
+ if (strcmp(def->defname, "column_name") == 0)
+ {
+ char *gen_col_opt = defGetString(def);
+
+ if (gen_col_opt && gen_col_opt[0] == '\0')
+ ereport(ERROR,
+ (errcode(ERRCODE_INVALID_PARAMETER_VALUE),
+ errmsg("column generic option name cannot be empty")));
+ }
+ }
+
/* First, determine FDW validator associated to the foreign table. */
ftrel = table_open(ForeignTableRelationId, AccessShareLock);
tuple = SearchSysCache1(FOREIGNTABLEREL, ObjectIdGetDatum(rel->rd_id));
--
1.8.3.1