Assert that ALTER TABLE subcommands have pass set

This commit is contained in:
Simon Riggs 2013-06-29 00:26:46 +01:00
parent f85136106d
commit 2f74e4ec50

View File

@ -126,6 +126,7 @@ static List *on_commits = NIL;
* a pass determined by subcommand type. * a pass determined by subcommand type.
*/ */
#define AT_PASS_UNSET -1 /* UNSET will cause ERROR */
#define AT_PASS_DROP 0 /* DROP (all flavors) */ #define AT_PASS_DROP 0 /* DROP (all flavors) */
#define AT_PASS_ALTER_TYPE 1 /* ALTER COLUMN TYPE */ #define AT_PASS_ALTER_TYPE 1 /* ALTER COLUMN TYPE */
#define AT_PASS_OLD_INDEX 2 /* re-add existing indexes */ #define AT_PASS_OLD_INDEX 2 /* re-add existing indexes */
@ -2947,7 +2948,7 @@ ATPrepCmd(List **wqueue, Relation rel, AlterTableCmd *cmd,
bool recurse, bool recursing, LOCKMODE lockmode) bool recurse, bool recursing, LOCKMODE lockmode)
{ {
AlteredTableInfo *tab; AlteredTableInfo *tab;
int pass; int pass = AT_PASS_UNSET;
/* Find or create work queue entry for this table */ /* Find or create work queue entry for this table */
tab = ATGetQueueEntry(wqueue, rel); tab = ATGetQueueEntry(wqueue, rel);
@ -3160,9 +3161,10 @@ ATPrepCmd(List **wqueue, Relation rel, AlterTableCmd *cmd,
default: /* oops */ default: /* oops */
elog(ERROR, "unrecognized alter table type: %d", elog(ERROR, "unrecognized alter table type: %d",
(int) cmd->subtype); (int) cmd->subtype);
pass = 0; /* keep compiler quiet */ pass = AT_PASS_UNSET; /* keep compiler quiet */
break; break;
} }
Assert(pass > AT_PASS_UNSET);
/* Add the subcommand to the appropriate list for phase 2 */ /* Add the subcommand to the appropriate list for phase 2 */
tab->subcmds[pass] = lappend(tab->subcmds[pass], cmd); tab->subcmds[pass] = lappend(tab->subcmds[pass], cmd);