]> granicus.if.org Git - postgresql/commitdiff
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);