Don't try to use a constraint name as domain name
The bug that caused this to be discovered is that the code was trying to dereference a NULL or ill-defined pointer, as reported by Michael Mueller; but what it was doing was wrong anyway, per Heikki. This patch is Heikki's suggested fix.
This commit is contained in:
parent
9f084527a4
commit
d665162077
@ -2096,13 +2096,13 @@ AlterDomainValidateConstraint(List *names, char *constrName)
|
|||||||
ereport(ERROR,
|
ereport(ERROR,
|
||||||
(errcode(ERRCODE_UNDEFINED_OBJECT),
|
(errcode(ERRCODE_UNDEFINED_OBJECT),
|
||||||
errmsg("constraint \"%s\" of domain \"%s\" does not exist",
|
errmsg("constraint \"%s\" of domain \"%s\" does not exist",
|
||||||
constrName, NameStr(con->conname))));
|
constrName, TypeNameToString(typename))));
|
||||||
|
|
||||||
if (con->contype != CONSTRAINT_CHECK)
|
if (con->contype != CONSTRAINT_CHECK)
|
||||||
ereport(ERROR,
|
ereport(ERROR,
|
||||||
(errcode(ERRCODE_WRONG_OBJECT_TYPE),
|
(errcode(ERRCODE_WRONG_OBJECT_TYPE),
|
||||||
errmsg("constraint \"%s\" of domain \"%s\" is not a check constraint",
|
errmsg("constraint \"%s\" of domain \"%s\" is not a check constraint",
|
||||||
constrName, NameStr(con->conname))));
|
constrName, TypeNameToString(typename))));
|
||||||
|
|
||||||
val = SysCacheGetAttr(CONSTROID, tuple,
|
val = SysCacheGetAttr(CONSTROID, tuple,
|
||||||
Anum_pg_constraint_conbin,
|
Anum_pg_constraint_conbin,
|
||||||
|
Loading…
x
Reference in New Issue
Block a user