Due to change from simple semantic type to struct-based semantic types and support of composition of arbitrary complexity, when hashing the arrow table, the struct columns must be carefully inspected for semantic data types and apply hashing based on that.