anchor.diff:      | st24=dropTriggerStatement        { $stmt = st24; }
   #endif
       | st25=createTypeStatement         { $stmt = st25; }
  +    | st26=alterTypeStatement          { $stmt = st26; }
       | st27=dropTypeStatement           { $stmt = st27; }
   #if 0
  -    | st26=alterTypeStatement          { $stmt = st26; }
       | st28=createFunctionStatement     { $stmt = st28; }
       | st29=dropFunctionStatement       { $stmt = st29; }
       | st30=createAggregateStatement    { $stmt = st30; }
  
positive.code:     }
      ;
  
  #if 0
  /**
   * ALTER TYPE <name> ALTER <field> TYPE <newtype>;
   * ALTER TYPE <name> ADD <field> <newtype>;
   * ALTER TYPE <name> RENAME <field> TO <newtype> AND ...;
   */
  alterTypeStatement returns [AlterTypeStatement expr]
      : K_ALTER K_TYPE name=userTypeName
            ( K_ALTER f=ident K_TYPE v=comparatorType { $expr = AlterTypeStatement.alter(name, f, v); }
            | K_ADD   f=ident v=comparatorType        { $expr = AlterTypeStatement.addition(name, f, v); }
            | K_RENAME
                 { Map<ColumnIdentifier, ColumnIdentifier> renames = new HashMap<ColumnIdentifier, ColumnIdentifier>(); }
                   id1=ident K_TO toId1=ident { renames.put(id1, toId1); }
                   ( K_AND idn=ident K_TO toIdn=ident { renames.put(idn, toIdn); } )*
                 { $expr = AlterTypeStatement.renames(name, renames); }
            )
      ;
  #endif
  
  
  /**
   * DROP KEYSPACE [IF EXISTS] <KSP>;
  
negative.code: #include "cql3/statements/create_table_statement.hh"
  #include "cql3/statements/create_type_statement.hh"
  #include "cql3/statements/drop_type_statement.hh"
  #include "cql3/statements/alter_type_statement.hh"
  #include "cql3/statements/property_definitions.hh"
  #include "cql3/statements/drop_table_statement.hh"
  #include "cql3/statements/truncate_statement.hh"
  