Assert that ALTER TABLE subcommands have pass set
authorSimon Riggs <simon@2ndQuadrant.com>
Fri, 28 Jun 2013 23:26:46 +0000 (00:26 +0100)
committerSimon Riggs <simon@2ndQuadrant.com>
Fri, 28 Jun 2013 23:26:46 +0000 (00:26 +0100)
src/backend/commands/tablecmds.c

index 8294b29b285124caac3f769641c205383b72c966..50341f6ef9ade55945b5234a1dd7038eb3ff36d9 100644 (file)
@@ -126,6 +126,7 @@ static List *on_commits = NIL;
  * 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_ALTER_TYPE     1       /* ALTER COLUMN TYPE */
 #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)
 {
    AlteredTableInfo *tab;
-   int         pass;
+   int         pass = AT_PASS_UNSET;
 
    /* Find or create work queue entry for this table */
    tab = ATGetQueueEntry(wqueue, rel);
@@ -3160,9 +3161,10 @@ ATPrepCmd(List **wqueue, Relation rel, AlterTableCmd *cmd,
        default:                /* oops */
            elog(ERROR, "unrecognized alter table type: %d",
                 (int) cmd->subtype);
-           pass = 0;           /* keep compiler quiet */
+           pass = AT_PASS_UNSET;       /* keep compiler quiet */
            break;
    }
+   Assert(pass > AT_PASS_UNSET);
 
    /* Add the subcommand to the appropriate list for phase 2 */
    tab->subcmds[pass] = lappend(tab->subcmds[pass], cmd);