anchor.diff:      ;
   
   alterTable
  -    : ALTER TABLE tableName (alterTableProperties | columnClauses | constraintClauses | alterExternalTable)?
  +    : ALTER TABLE tableName alterClause_
       ;
   
   // TODO hongjun throw exeption when alter index on oracle
  
positive.code:     : CHECKPOINT NUMBER_
      ;
  
  renameColumnSpecification
      : RENAME COLUMN columnName TO columnName
      ;
  
  
negative.code:     : columnDefinition | virtualColumnDefinition
      ;
  
  columnProperties
      : columnProperty+
      ;
  
  columnProperty
      : objectTypeColProperties
      ;
  
  objectTypeColProperties
      : COLUMN columnName substitutableColumnClause
      ;
  
  substitutableColumnClause
      : ELEMENT? IS OF TYPE? LP_ ONLY? dataTypeName_ RP_ | NOT? SUBSTITUTABLE AT ALL LEVELS
      ;
  
  modifyColumnSpecification
      : MODIFY (LP_? modifyColProperties (COMMA_ modifyColProperties)* RP_? | modifyColSubstitutable)
      ;
  