aboutsummaryrefslogtreecommitdiff
path: root/src/backend/commands/tablecmds.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/backend/commands/tablecmds.c')
-rw-r--r--src/backend/commands/tablecmds.c21
1 files changed, 12 insertions, 9 deletions
diff --git a/src/backend/commands/tablecmds.c b/src/backend/commands/tablecmds.c
index 88a68a4697a..87f9bdaef05 100644
--- a/src/backend/commands/tablecmds.c
+++ b/src/backend/commands/tablecmds.c
@@ -2501,21 +2501,24 @@ MergeAttributes(List *schema, List *supers, char relpersistence,
if (attribute->atthasdef)
{
Node *this_default = NULL;
- AttrDefault *attrdef;
- int i;
/* Find default in constraint structure */
- Assert(constr != NULL);
- attrdef = constr->defval;
- for (i = 0; i < constr->num_defval; i++)
+ if (constr != NULL)
{
- if (attrdef[i].adnum == parent_attno)
+ AttrDefault *attrdef = constr->defval;
+
+ for (int i = 0; i < constr->num_defval; i++)
{
- this_default = stringToNode(attrdef[i].adbin);
- break;
+ if (attrdef[i].adnum == parent_attno)
+ {
+ this_default = stringToNode(attrdef[i].adbin);
+ break;
+ }
}
}
- Assert(this_default != NULL);
+ if (this_default == NULL)
+ elog(ERROR, "default expression not found for attribute %d of relation \"%s\"",
+ parent_attno, RelationGetRelationName(relation));
/*
* If it's a GENERATED default, it might contain Vars that