From: Tomas Vondra Date: Mon, 19 Aug 2024 11:31:51 +0000 (+0200) Subject: Explain dropdb can't use syscache because of TOAST X-Git-Tag: REL_12_21~79 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=9d42627bcaffb34d4c165a4618583a81db67c48d;p=thirdparty%2Fpostgresql.git Explain dropdb can't use syscache because of TOAST Add a comment explaining dropdb() can't rely on syscache. The issue with flattened rows was fixed by commit 0f92b230f88b, but better to have a clear explanation why the systable scan is necessary. The other places doing in-place updates on pg_database have the same comment. Suggestion and patch by Yugo Nagata. Backpatch to 12, same as the fix. Author: Yugo Nagata Backpatch-through: 12 Discussion: https://postgr.es/m/CAJTYsWWNkCt+-UnMhg=BiCD3Mh8c2JdHLofPxsW3m2dkDFw8RA@mail.gmail.com --- diff --git a/src/backend/commands/dbcommands.c b/src/backend/commands/dbcommands.c index c64e495bf92..547844ee475 100644 --- a/src/backend/commands/dbcommands.c +++ b/src/backend/commands/dbcommands.c @@ -933,7 +933,9 @@ dropdb(const char *dbname, bool missing_ok) dropDatabaseDependencies(db_id); /* - * Update the database's pg_database tuple + * Get the pg_database tuple to scribble on. Note that this does not + * directly rely on the syscache to avoid issues with flattened toast + * values for the in-place update. */ ScanKeyInit(&scankey, Anum_pg_database_datname,