question: 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 ; } }
target:  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.