The code in these methods:
is not friendly to pluggable data types, as it tests for cmp_type().
Pluggable data types may want to implement a different way for signed/unsigned conversion.
Under terms of this task will add new methods in Type_handler:
and split the mentioned code into virtual implementations for relevant Type_handler_xxx classes.