Add the following

    && actualType.isFixedWidth() == desiredType.isFixedWidth()

We need this for cases like CHAR -> VARCHAR, since they are bytes comparable, but we still need to do the work below in this case.