From: Alvaro Herrera Date: Thu, 25 Mar 2021 19:07:15 +0000 (-0300) Subject: Add comments for AlteredTableInfo->rel X-Git-Tag: REL_14_BETA1~455 X-Git-Url: http://git.postgresql.org/gitweb/?a=commitdiff_plain;h=cc121d5596964f8aac93607e6f14607184558b16;p=postgresql.git Add comments for AlteredTableInfo->rel The prior commit which introduced it was pretty squalid in terms of code documentation, so add some comments. --- diff --git a/src/backend/commands/tablecmds.c b/src/backend/commands/tablecmds.c index bf7fd6e8ae6..550b84681e4 100644 --- a/src/backend/commands/tablecmds.c +++ b/src/backend/commands/tablecmds.c @@ -157,8 +157,16 @@ typedef struct AlteredTableInfo Oid relid; /* Relation to work on */ char relkind; /* Its relkind */ TupleDesc oldDesc; /* Pre-modification tuple descriptor */ - /* Transiently set during Phase 2, normally set to NULL */ + + /* + * Transiently set during Phase 2, normally set to NULL. + * + * ATRewriteCatalogs sets this when it starts, and closes when ATExecCmd + * returns control. This can be exploited by ATExecCmd subroutines to + * close/reopen across transaction boundaries. + */ Relation rel; + /* Information saved by Phase 1 for Phase 2: */ List *subcmds[AT_NUM_PASSES]; /* Lists of AlterTableCmd */ /* Information saved by Phases 1/2 for Phase 3: */ @@ -4577,7 +4585,9 @@ ATRewriteCatalogs(List **wqueue, LOCKMODE lockmode, continue; /* - * Appropriate lock was obtained by phase 1, needn't get it again + * Open the relation and store it in tab. This allows subroutines + * close and reopen, if necessary. Appropriate lock was obtained + * by phase 1, needn't get it again. */ tab->rel = relation_open(tab->relid, NoLock);