postgres.git / summary / log / commit / refs

commit    de8770b47f1f763378d9d130d69e3a7b8a54684a
Author:   Tomas Vondra <tomas.vondra@postgresql.org>
Date:     Mon Aug 19 11:31:51 2024 +0000
First released in: 18.0, 12.21, 13.17, 14.14, 15.9, 16.5, 17.0

    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


src/backend/commands/dbcommands.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/backend/commands/dbcommands.c b/src/backend/commands/dbcommands.c index 377aae31bd0..04a4638b452 100644 --- a/src/backend/commands/dbcommands.c +++ b/src/backend/commands/dbcommands.c @@ -1777,7 +1777,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, [parent: 19021d28cdf0]