From d2325a73711d77e5bd0bdc3df234efac229cb948 Mon Sep 17 00:00:00 2001 From: Peter Eisentraut Date: Mon, 29 Apr 2024 09:46:44 +0200 Subject: [PATCH v1 4/5] Remove useless code BuildDescForRelation() goes out of its way to fill in ->constr->has_not_null, but that value is not used for anything later, so this code can all be removed. Note that BuildDescForRelation() doesn't make any effort to fill in the rest of ->constr, so there is no claim that that structure is completely filled in. --- src/backend/commands/tablecmds.c | 25 +++---------------------- 1 file changed, 3 insertions(+), 22 deletions(-) diff --git a/src/backend/commands/tablecmds.c b/src/backend/commands/tablecmds.c index 313c782cae2..958007ca316 100644 --- a/src/backend/commands/tablecmds.c +++ b/src/backend/commands/tablecmds.c @@ -1272,7 +1272,9 @@ DefineRelation(CreateStmt *stmt, char relkind, Oid ownerId, * * Given a list of ColumnDef nodes, build a TupleDesc. * - * Note: tdtypeid will need to be filled in later on. + * Note: This is only for the limited purpose of table and view creation. Not + * everything is filled in. A real tuple descriptor should be obtained from + * the relcache. */ TupleDesc BuildDescForRelation(const List *columns) @@ -1281,7 +1283,6 @@ BuildDescForRelation(const List *columns) AttrNumber attnum; ListCell *l; TupleDesc desc; - bool has_not_null; char *attname; Oid atttypid; int32 atttypmod; @@ -1293,7 +1294,6 @@ BuildDescForRelation(const List *columns) */ natts = list_length(columns); desc = CreateTemplateTupleDesc(natts); - has_not_null = false; attnum = 0; @@ -1339,7 +1339,6 @@ BuildDescForRelation(const List *columns) /* Fill in additional stuff not handled by TupleDescInitEntry */ att->attnotnull = entry->is_not_null; - has_not_null |= entry->is_not_null; att->attislocal = entry->is_local; att->attinhcount = entry->inhcount; att->attidentity = entry->identity; @@ -1351,24 +1350,6 @@ BuildDescForRelation(const List *columns) att->attstorage = GetAttributeStorage(att->atttypid, entry->storage_name); } - if (has_not_null) - { - TupleConstr *constr = (TupleConstr *) palloc0(sizeof(TupleConstr)); - - constr->has_not_null = true; - constr->has_generated_stored = false; - constr->defval = NULL; - constr->missing = NULL; - constr->num_defval = 0; - constr->check = NULL; - constr->num_check = 0; - desc->constr = constr; - } - else - { - desc->constr = NULL; - } - return desc; } -- 2.44.0