diff options
author | Tomas Vondra <tomas.vondra@postgresql.org> | 2024-08-19 13:31:51 +0200 |
---|---|---|
committer | Tomas Vondra <tomas.vondra@postgresql.org> | 2024-08-19 13:43:43 +0200 |
commit | f6991cafa36ee8cb943a34f13452fd166b7907c2 (patch) | |
tree | 3e91f8137188517dee9c33e64014a68456ef0cb6 /src | |
parent | 9333174af47560677b62ae5025e4414f860a84a7 (diff) | |
download | postgresql-f6991cafa36ee8cb943a34f13452fd166b7907c2.tar.gz postgresql-f6991cafa36ee8cb943a34f13452fd166b7907c2.zip |
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
Diffstat (limited to 'src')
-rw-r--r-- | src/backend/commands/dbcommands.c | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/src/backend/commands/dbcommands.c b/src/backend/commands/dbcommands.c index c20ecd68ab2..7509946c119 100644 --- a/src/backend/commands/dbcommands.c +++ b/src/backend/commands/dbcommands.c @@ -1726,7 +1726,9 @@ dropdb(const char *dbname, bool missing_ok, bool force) pgstat_drop_database(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, |