This class contains the original column stats from child, and maintains the updated column stats.
This version of Spark does not have min/max for binary/string types, we define their default behaviors by this class.
This is for columns with only null values.
For simplicity we use decimal to unify operations of numeric ranges.
Value range of a column.
This class contains the original column stats from child, and maintains the updated column stats. We will update the corresponding ColumnStats for a column after we apply a predicate condition. For example, column c has [min, max] value as [0, 100]. In a range condition such as (c > 40 AND c <= 50), we need to set the column's [min, max] value to [40, 100] after we evaluate the first condition c > 40. We also need to set the column's [min, max] value to [40, 50] after we evaluate the second condition c <= 50.
Original column stats from child.