*
  *
  * IDENTIFICATION
- *   $PostgreSQL: pgsql/src/backend/commands/alter.c,v 1.8 2004/06/25 21:55:53 tgl Exp $
+ *   $PostgreSQL: pgsql/src/backend/commands/alter.c,v 1.9 2004/08/22 00:08:27 tgl Exp $
  *
  *-------------------------------------------------------------------------
  */
            break;
 
        case OBJECT_TABLE:
+       case OBJECT_INDEX:
        case OBJECT_COLUMN:
        case OBJECT_TRIGGER:
            {
                switch (stmt->renameType)
                {
                    case OBJECT_TABLE:
+                   case OBJECT_INDEX:
                        {
                            /*
                             * RENAME TABLE requires that we (still) hold
 
  * Portions Copyright (c) 1994, Regents of the University of California
  *
  * IDENTIFICATION
- *   $PostgreSQL: pgsql/src/backend/nodes/copyfuncs.c,v 1.289 2004/08/02 04:26:05 tgl Exp $
+ *   $PostgreSQL: pgsql/src/backend/nodes/copyfuncs.c,v 1.290 2004/08/22 00:08:28 tgl Exp $
  *
  *-------------------------------------------------------------------------
  */
 
    COPY_NODE_FIELD(relation);
    COPY_NODE_FIELD(cmds);
+   COPY_SCALAR_FIELD(relkind);
 
    return newnode;
 }
 
  * Portions Copyright (c) 1994, Regents of the University of California
  *
  * IDENTIFICATION
- *   $PostgreSQL: pgsql/src/backend/nodes/equalfuncs.c,v 1.228 2004/08/02 04:26:05 tgl Exp $
+ *   $PostgreSQL: pgsql/src/backend/nodes/equalfuncs.c,v 1.229 2004/08/22 00:08:28 tgl Exp $
  *
  *-------------------------------------------------------------------------
  */
 {
    COMPARE_NODE_FIELD(relation);
    COMPARE_NODE_FIELD(cmds);
+   COMPARE_SCALAR_FIELD(relkind);
 
    return true;
 }
 
  * Portions Copyright (c) 1996-2003, PostgreSQL Global Development Group
  * Portions Copyright (c) 1994, Regents of the University of California
  *
- * $PostgreSQL: pgsql/src/backend/parser/analyze.c,v 1.308 2004/08/02 04:26:29 tgl Exp $
+ * $PostgreSQL: pgsql/src/backend/parser/analyze.c,v 1.309 2004/08/22 00:08:28 tgl Exp $
  *
  *-------------------------------------------------------------------------
  */
 
        alterstmt->relation = cxt->relation;
        alterstmt->cmds = NIL;
+       alterstmt->relkind = OBJECT_TABLE;
 
        foreach(fkclist, cxt->fkconstraints)
        {
 
  *
  *
  * IDENTIFICATION
- *   $PostgreSQL: pgsql/src/backend/parser/gram.y,v 2.472 2004/08/20 04:29:32 momjian Exp $
+ *   $PostgreSQL: pgsql/src/backend/parser/gram.y,v 2.473 2004/08/22 00:08:28 tgl Exp $
  *
  * HISTORY
  *   AUTHOR            DATE            MAJOR EVENT
            | alter_table_cmds ',' alter_table_cmd  { $$ = lappend($1, $3); }
        ;
 
+/* Subcommands that are for ALTER TABLE only */
 alter_table_cmd:
            /* ALTER TABLE <relation> ADD [COLUMN] <coldef> */
            ADD opt_column columnDef
                }
        ;
 
-alter_rel_cmds: alter_rel_cmd                         { $$ = list_make1($1); }
-            | alter_rel_cmds ',' alter_rel_cmd  { $$ = lappend($1, $3); }
-        ;
-
+alter_rel_cmds:
+           alter_rel_cmd                           { $$ = list_make1($1); }
+           | alter_rel_cmds ',' alter_rel_cmd      { $$ = lappend($1, $3); }
+       ;
 
+/* Subcommands that are for ALTER TABLE or ALTER INDEX */
 alter_rel_cmd:
-           /* ALTER [ TABLE | INDEX ] <name> OWNER TO UserId */
+           /* ALTER [TABLE|INDEX] <name> OWNER TO UserId */
            OWNER TO UserId
                {
                    AlterTableCmd *n = makeNode(AlterTableCmd);
                    n->name = $3;
                    $$ = (Node *)n;
                }
-           /* ALTER [ TABLE | INDEX ] <name> SET TABLESPACE <tablespacename> */
+           /* ALTER [TABLE|INDEX] <name> SET TABLESPACE <tablespacename> */
            | SET TABLESPACE name
                {
                    AlterTableCmd *n = makeNode(AlterTableCmd);