OSDN Git Service

Don't try to use a constraint name as domain name
authorAlvaro Herrera <alvherre@alvh.no-ip.org>
Mon, 4 Jul 2011 18:28:05 +0000 (14:28 -0400)
committerAlvaro Herrera <alvherre@alvh.no-ip.org>
Mon, 4 Jul 2011 18:33:44 +0000 (14:33 -0400)
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.

src/backend/commands/typecmds.c

index c29f44c..2a2ff53 100644 (file)
@@ -2096,13 +2096,13 @@ AlterDomainValidateConstraint(List *names, char *constrName)
                ereport(ERROR,
                                (errcode(ERRCODE_UNDEFINED_OBJECT),
                                 errmsg("constraint \"%s\" of domain \"%s\" does not exist",
-                                               constrName, NameStr(con->conname))));
+                                               constrName, TypeNameToString(typename))));
 
        if (con->contype != CONSTRAINT_CHECK)
                ereport(ERROR,
                                (errcode(ERRCODE_WRONG_OBJECT_TYPE),
                                 errmsg("constraint \"%s\" of domain \"%s\" is not a check constraint",
-                                               constrName, NameStr(con->conname))));
+                                               constrName, TypeNameToString(typename))));
 
        val = SysCacheGetAttr(CONSTROID, tuple,
                                                  Anum_pg_constraint_conbin,