protected boolean columnsDiffer(Column currentColumn,Column desiredColumn){
  String desiredDefault=desiredColumn.getDefaultValue();
  String currentDefault=currentColumn.getDefaultValue();
  boolean defaultsEqual=(desiredDefault == null) || desiredDefault.equals(currentDefault);
  boolean sizeMatters=databaseInfo.hasSize(currentColumn.getMappedTypeCode()) && (desiredColumn.getSize() != null);
  if ((databaseInfo.getTargetJdbcType(desiredColumn.getMappedTypeCode()) != currentColumn.getMappedTypeCode()) || (desiredColumn.isRequired() != currentColumn.isRequired()) || (sizeMatters && !StringUtils.equals(desiredColumn.getSize(),currentColumn.getSize()))|| !defaultsEqual) {
    return true;
  }
 else {
    return false;
  }
}

protected boolean columnsDiffer ( Column currentColumn , Column desiredColumn ) { String desiredDefault = desiredColumn . getDefaultValue ( ) ; String currentDefault = currentColumn . getDefaultValue ( ) ; boolean defaultsEqual = ( desiredDefault == null ) || desiredDefault . equals ( currentDefault ) ; boolean sizeMatters = databaseInfo . hasSize ( currentColumn . getMappedTypeCode ( ) ) && ( desiredColumn . getSize ( ) != null ) ; if ( ( databaseInfo . getTargetJdbcType ( desiredColumn . getMappedTypeCode ( ) ) != currentColumn . getMappedTypeCode ( ) ) || ( desiredColumn . isRequired ( ) != currentColumn . isRequired ( ) ) || ( sizeMatters && ! StringUtils . equals ( desiredColumn . getSize ( ) , currentColumn . getSize ( ) ) ) || ! defaultsEqual ) { return true ; } else { return false ; } }
compares the current column in the database with the desired one . type , nullability , size , scale , default value , and precision radix are the attributes checked . currently default values are compared , and null and empty string are considered equal .
