Replication Features and Issues Row-based replication: attribute promotion and demotion.   Row-based replication supports attribute promotion and demotion between smaller data types and larger types. It is also possible to specify whether or not to permit lossy (truncated) or non-lossy conversions of demoted column values, as explained later in this section. Lossy and non-lossy conversions.   In the event that the target type cannot represent the value being inserted, a decision must be made on how to handle the conversion. If we permit the conversion but truncate (or otherwise modify) the source value to achieve a “fit”  in the target column, we make what is known as a  lossy conversion . A conversion which does not require truncation or similar modifications to fit the source column value in the target column is a  non-lossy  conversion. Type conversion modes.   The setting of the  slave_type_conversions  global server variable controls the type conversion mode used on the replica. This variable takes a set of values from the following list, which describes the effects of each mode on the replica’s type-conversion behavior: When an integer type is promoted, its signedness is not preserved. By default, the replica treats all such values as signed. You can control this behavior using  ALL_SIGNED ,  ALL_UNSIGNED , or both. ALL_SIGNED  tells the replica to treat all promoted integer types as signed;  ALL_UNSIGNED  instructs it to treat these as unsigned. Specifying both causes the replica to treat the value as signed if possible, This mode is the default. 3660 ALL_LOSSY In this mode, type conversions that would mean loss of information are permitted. ALL_NON_LOSSY This mode permits conversions that do not require truncation or other special handling of the source value; that is, it permits conversions where the target type has a wider range than the source type. ALL_LOSSY,ALL_NON_LOSSY When this mode is set, all supported type conversions are permitted, whether or not they are lossy conversions. ALL_SIGNED Treat promoted integer types as signed values (the default behavior). ALL_UNSIGNED Treat promoted integer types as unsigned values. ALL_SIGNED,ALL_UNSIGNED Treat promoted integer types as signed if possible, otherwise as unsigned. [ empty ] When  slave_type_conversions  is not set, no attribute promotion or demotion is permitted; this means that all columns in the source and target tables must be of the same types. This does not imply that non-lossy conversions are permitted, merely that only cases requiring either lossy conversions or no conversion at all are permitted; for example, enabling  only  this mode permits an  INT column to be converted to  TINYINT  (a lossy conversion), but not a TINYINT  column to an  INT  column (non-lossy). Attempting the latter conversion in this case would cause replication to stop with an error on the replica. Setting this mode has no bearing on whether lossy conversions are permitted; this is controlled with the  ALL_LOSSY  mode. If only ALL_NON_LOSSY  is set, but not  ALL_LOSSY , then attempting a conversion that would result in the loss of data (such as  INT  to TINYINT , or  CHAR(25)  to  VARCHAR(20) ) causes the replica to stop with an error.