public void remove(final HCatFieldSchema hcatFieldSchema) throws HCatException {
    if (!fieldSchemas.contains(hcatFieldSchema)) {
      throw new HCatException("Attempt to delete a non-existent column from HCat Schema: " + hcatFieldSchema);
    }     
    fieldSchemas.remove(hcatFieldSchema);
    // Re-align the positionMap by -1 for the columns appearing after hcatFieldSchema.
    String fieldName = normalizeName(hcatFieldSchema.getName());
    reAlignPositionMap(fieldPositionMap.get(fieldName)+1, -1);
    fieldPositionMap.remove(fieldName);
    fieldNames.remove(fieldName);
  }
Note : The position will be re-numbered when one of the preceding columns are removed.
Hence, the client should not cache this value and expect it to be always valid.
@param fieldName
@return the index of field named fieldName in Schema. If field is not
present, returns null.
hcatalog/core/src/main/java/org/apache/hive/hcatalog/data/schema/HCatSchema.java