diff options
| author | Tom Lane <tgl@sss.pgh.pa.us> | 2003-07-22 19:00:12 +0000 |
|---|---|---|
| committer | Tom Lane <tgl@sss.pgh.pa.us> | 2003-07-22 19:00:12 +0000 |
| commit | b05d3ae1edf557e174f80624219854767963dc66 (patch) | |
| tree | 204def9d6f61d82a5816275df9384d209ad12d55 /src/backend/commands/alter.c | |
| parent | 277dbb0c34791fe2f6192d02ea577d3738666c2f (diff) | |
| download | postgresql-b05d3ae1edf557e174f80624219854767963dc66.tar.gz | |
Error message editing in backend/libpq, backend/postmaster, backend/tcop.
Along the way, fix some logic problems in pgstat_initstats, notably the
bogus assumption that malloc returns zeroed memory.
Diffstat (limited to 'src/backend/commands/alter.c')
| -rw-r--r-- | src/backend/commands/alter.c | 35 |
1 files changed, 3 insertions, 32 deletions
diff --git a/src/backend/commands/alter.c b/src/backend/commands/alter.c index c90a84b68f..7c49e40d5c 100644 --- a/src/backend/commands/alter.c +++ b/src/backend/commands/alter.c @@ -8,7 +8,7 @@ * * * IDENTIFICATION - * $Header: /cvsroot/pgsql/src/backend/commands/alter.c,v 1.2 2003/07/20 21:56:32 tgl Exp $ + * $Header: /cvsroot/pgsql/src/backend/commands/alter.c,v 1.3 2003/07/22 19:00:07 tgl Exp $ * *------------------------------------------------------------------------- */ @@ -29,41 +29,12 @@ #include "commands/user.h" #include "miscadmin.h" #include "parser/parse_clause.h" +#include "tcop/utility.h" #include "utils/acl.h" #include "utils/lsyscache.h" #include "utils/syscache.h" -static void -CheckOwnership(RangeVar *rel, bool noCatalogs) -{ - Oid relOid; - HeapTuple tuple; - - relOid = RangeVarGetRelid(rel, false); - tuple = SearchSysCache(RELOID, - ObjectIdGetDatum(relOid), - 0, 0, 0); - if (!HeapTupleIsValid(tuple)) /* should not happen */ - elog(ERROR, "cache lookup failed for relation %u", relOid); - - if (!pg_class_ownercheck(relOid, GetUserId())) - aclcheck_error(ACLCHECK_NOT_OWNER, rel->relname); - - if (noCatalogs) - { - if (!allowSystemTableMods && - IsSystemClass((Form_pg_class) GETSTRUCT(tuple))) - ereport(ERROR, - (errcode(ERRCODE_INSUFFICIENT_PRIVILEGE), - errmsg("relation \"%s\" is a system catalog", - rel->relname))); - } - - ReleaseSysCache(tuple); -} - - void ExecRenameStmt(RenameStmt *stmt) { @@ -111,7 +82,7 @@ ExecRenameStmt(RenameStmt *stmt) { Oid relid; - CheckOwnership(stmt->relation, true); + CheckRelationOwnership(stmt->relation, true); relid = RangeVarGetRelid(stmt->relation, false); |
