On Sat, 31 Oct 2026 at 13:56, Heikki Linnakangas <[email protected]> wrote: > > On 30/10/2026 20:38, Kirill Reshke wrote: > > User running ALTER COLLATION receives an internal error: > > > > ALTER COLLATION "default" REFRESH VERSION; > > ERROR: cannot refresh version of default collation > > HINT: Use ALTER DATABASE ... REFRESH COLLATION VERSION instead. > > > > We do monitor our logs for XX00* error codes to check for data > > corruptions etc, so sql-reachable XX000 gives us a red alert. > > > > This simple one-liner should do: > > > > diff --git a/src/backend/commands/collationcmds.c > > b/src/backend/commands/collationcmds.c > > index cfa0e4610d9..1f6156f379b 100644 > > --- a/src/backend/commands/collationcmds.c > > +++ b/src/backend/commands/collationcmds.c > > @@ -443,7 +443,8 @@ AlterCollation(AlterCollationStmt *stmt) > > > > if (collOid == DEFAULT_COLLATION_OID) > > ereport(ERROR, > > - (errmsg("cannot refresh version of default collation"), > > + (errcode(ERRCODE_FEATURE_NOT_SUPPORTED), > > + errmsg("cannot refresh version of default collation"), > > /* translator: %s is an SQL command */ > > errhint("Use %s instead.", > > "ALTER DATABASE ... REFRESH COLLATION VERSION"))); > > Is ERRCODE_FEATURE_NOT_SUPPORTED correct here? Is this something that we > just don't currently support, but we potentially could, or is it > something that just doesn't make sense? > > - Heikki
I think this is something that simply doesn't make sense. But reading errcodes.h using myself (not AI), I don't see any better option. maybe ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE ? -- Best regards, Kirill Reshke
