From ad4932955c855d056cb0df96a5d55931678f1819 Mon Sep 17 00:00:00 2001 From: Nishant Sharma 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