diff --git a/src/backend/commands/tablecmds.c b/src/backend/commands/tablecmds.c index 56915c4fe389083e217bfe2cc0ad2b311d92c240..3720a0fe56300bcab1442e672c31fee1f725c34e 100644 --- a/src/backend/commands/tablecmds.c +++ b/src/backend/commands/tablecmds.c @@ -3175,19 +3175,23 @@ ATPrepCmd(List **wqueue, Relation rel, AlterTableCmd *cmd, case AT_SetLogged: /* SET LOGGED */ ATSimplePermissions(rel, ATT_TABLE); tab->chgPersistence = ATPrepChangePersistence(rel, true); - tab->newrelpersistence = RELPERSISTENCE_PERMANENT; - /* force rewrite if necessary */ + /* force rewrite if necessary; see comment in ATRewriteTables */ if (tab->chgPersistence) + { tab->rewrite = true; + tab->newrelpersistence = RELPERSISTENCE_PERMANENT; + } pass = AT_PASS_MISC; break; case AT_SetUnLogged: /* SET UNLOGGED */ ATSimplePermissions(rel, ATT_TABLE); tab->chgPersistence = ATPrepChangePersistence(rel, false); - tab->newrelpersistence = RELPERSISTENCE_UNLOGGED; - /* force rewrite if necessary */ + /* force rewrite if necessary; see comment in ATRewriteTables */ if (tab->chgPersistence) + { tab->rewrite = true; + tab->newrelpersistence = RELPERSISTENCE_UNLOGGED; + } pass = AT_PASS_MISC; break; case AT_AddOids: /* SET WITH OIDS */