diff --git a/src/backend/commands/statscmds.c b/src/backend/commands/statscmds.c index 54a190722d..81e73d9062 100644 --- a/src/backend/commands/statscmds.c +++ b/src/backend/commands/statscmds.c @@ -653,6 +653,11 @@ AlterStatistics(AlterStatsStmt *stmt) return InvalidObjectAddress; } + /* Must be owner of the existing statistics object */ + if (!pg_statistics_object_ownercheck(stxoid, GetUserId())) + aclcheck_error(ACLCHECK_NOT_OWNER, OBJECT_STATISTIC_EXT, + NameListToString(stmt->defnames)); + /* Search pg_statistic_ext */ rel = table_open(StatisticExtRelationId, RowExclusiveLock); @@ -660,11 +665,6 @@ AlterStatistics(AlterStatsStmt *stmt) if (!HeapTupleIsValid(oldtup)) elog(ERROR, "cache lookup failed for extended statistics object %u", stxoid); - /* Must be owner of the existing statistics object */ - if (!pg_statistics_object_ownercheck(stxoid, GetUserId())) - aclcheck_error(ACLCHECK_NOT_OWNER, OBJECT_STATISTIC_EXT, - NameListToString(stmt->defnames)); - /* Build new tuple. */ memset(repl_val, 0, sizeof(repl_val)); memset(repl_null, false, sizeof(repl_null));