diff options
author | Tom Lane <tgl@sss.pgh.pa.us> | 2008-12-16 00:56:12 +0000 |
---|---|---|
committer | Tom Lane <tgl@sss.pgh.pa.us> | 2008-12-16 00:56:12 +0000 |
commit | 794ec7b06339794ced33b98edfc25f2cee4b59dd (patch) | |
tree | adbe469dd8c6a000e72feb8516e17f0c143c5659 /src/backend/commands/view.c | |
parent | 1b92aeb93ea1c2c6a86b883fa17989770e50e1e1 (diff) | |
download | postgresql-794ec7b06339794ced33b98edfc25f2cee4b59dd.tar.gz postgresql-794ec7b06339794ced33b98edfc25f2cee4b59dd.zip |
Department of second thoughts: further experimentation with CREATE OR REPLACE
VIEW suggests that it'd be worth spelling the error messages out in a little
more detail. This seems to help with localizing the problem.
Diffstat (limited to 'src/backend/commands/view.c')
-rw-r--r-- | src/backend/commands/view.c | 18 |
1 files changed, 12 insertions, 6 deletions
diff --git a/src/backend/commands/view.c b/src/backend/commands/view.c index 3b589d49e81..c9cd27d5778 100644 --- a/src/backend/commands/view.c +++ b/src/backend/commands/view.c @@ -8,7 +8,7 @@ * * * IDENTIFICATION - * $PostgreSQL: pgsql/src/backend/commands/view.c,v 1.109 2008/12/15 21:35:31 tgl Exp $ + * $PostgreSQL: pgsql/src/backend/commands/view.c,v 1.110 2008/12/16 00:56:12 tgl Exp $ * *------------------------------------------------------------------------- */ @@ -29,6 +29,7 @@ #include "rewrite/rewriteManip.h" #include "rewrite/rewriteSupport.h" #include "utils/acl.h" +#include "utils/builtins.h" #include "utils/lsyscache.h" #include "utils/rel.h" @@ -263,7 +264,7 @@ checkViewTupleDesc(TupleDesc newdesc, TupleDesc olddesc) Form_pg_attribute newattr = newdesc->attrs[i]; Form_pg_attribute oldattr = olddesc->attrs[i]; - /* XXX not right, but we don't support DROP COL on view anyway */ + /* XXX msg not right, but we don't support DROP COL on view anyway */ if (newattr->attisdropped != oldattr->attisdropped) ereport(ERROR, (errcode(ERRCODE_INVALID_TABLE_DEFINITION), @@ -272,15 +273,20 @@ checkViewTupleDesc(TupleDesc newdesc, TupleDesc olddesc) if (strcmp(NameStr(newattr->attname), NameStr(oldattr->attname)) != 0) ereport(ERROR, (errcode(ERRCODE_INVALID_TABLE_DEFINITION), - errmsg("cannot change name of view column \"%s\"", - NameStr(oldattr->attname)))); + errmsg("cannot change name of view column \"%s\" to \"%s\"", + NameStr(oldattr->attname), + NameStr(newattr->attname)))); /* XXX would it be safe to allow atttypmod to change? Not sure */ if (newattr->atttypid != oldattr->atttypid || newattr->atttypmod != oldattr->atttypmod) ereport(ERROR, (errcode(ERRCODE_INVALID_TABLE_DEFINITION), - errmsg("cannot change data type of view column \"%s\"", - NameStr(oldattr->attname)))); + errmsg("cannot change data type of view column \"%s\" from %s to %s", + NameStr(oldattr->attname), + format_type_with_typemod(oldattr->atttypid, + oldattr->atttypmod), + format_type_with_typemod(newattr->atttypid, + newattr->atttypmod)))); /* We can ignore the remaining attributes of an attribute... */ } |