* Exported routines for examining a user's privileges for various objects
*
* See aclmask() for a description of the common API for these functions.
- *
- * Note: we give lookup failure the full ereport treatment because the
- * has_xxx_privilege() family of functions allow users to pass any random
- * OID to these functions.
* ****************************************************************
*/
return 0;
}
else
- ereport(ERROR,
- (errcode(ERRCODE_UNDEFINED_OBJECT),
- errmsg("%s with OID %u does not exist",
- get_object_class_descr(classid), objectid)));
+ elog(ERROR, "cache lookup failed for %s %u",
+ get_object_class_descr(classid), objectid);
}
ownerId = DatumGetObjectId(SysCacheGetAttrNotNull(cacheid,
Oid dbOid = PG_GETARG_OID(0);
int64 size;
+ /*
+ * Not needed for correctness, but avoid non-user-facing error message
+ * later if the database doesn't exist.
+ */
+ if (!SearchSysCacheExists1(DATABASEOID, ObjectIdGetDatum(dbOid)))
+ ereport(ERROR,
+ errcode(ERRCODE_UNDEFINED_OBJECT),
+ errmsg("database with OID %u does not exist", dbOid));
+
size = calculate_database_size(dbOid);
if (size == 0)
Oid tblspcOid = PG_GETARG_OID(0);
int64 size;
+ /*
+ * Not needed for correctness, but avoid non-user-facing error message
+ * later if the tablespace doesn't exist.
+ */
+ if (!SearchSysCacheExists1(TABLESPACEOID, ObjectIdGetDatum(tblspcOid)))
+ ereport(ERROR,
+ errcode(ERRCODE_UNDEFINED_OBJECT),
+ errmsg("tablespace with OID %u does not exist", tblspcOid));
+
size = calculate_tablespace_size(tblspcOid);
if (size < 0)