@Override
  public void allowChange(Configuration conf, Table oldTable, Table newTable)
      throws InvalidOperationException {
    if (!MetastoreConf.getBoolVar(conf,
        MetastoreConf.ConfVars.DISALLOW_INCOMPATIBLE_COL_TYPE_CHANGES)) {
      // incompatible column changes are allowed for all
      return;
    }
    if (oldTable.getTableType().equals(TableType.VIRTUAL_VIEW.toString())) {
      // Views derive the column type from the base table definition. So the view
      // definition can be altered to change the column types. The column type
      // compatibility checks should be done only for non-views.
      return;
    }
    checkColTypeChangeCompatible(conf, oldTable, newTable);
  }
Checks if the column type changes in the oldTable and newTable are allowed or not. In
addition to checking if the incompatible changes are allowed or not, this also checks
if the table serde library belongs to a list of table serdes which support making any
column type changes.

@param conf     The configuration which if incompatible col type changes are allowed
                or not.
@param oldTable The instance of the table being altered.
@param newTable The new instance of the table which represents the altered state of
                the table.
@throws InvalidOperationException
standalone-metastore/metastore-server/src/main/java/org/apache/hadoop/hive/metastore/DefaultIncompatibleTableChangeHandler.java