This catches a bug in `sql.BuildDMLInsertQuery` where we we are fetching
the insert values using the renamed column's name, and end up fetching
the value of the wrong column.
The test in `localtests/rename` did not catch this because binlog
update events were "correcting" the error, as they follow a different
code path that does not contain the bug.
This catches a bug in `sql.BuildDMLInsertQuery` where we are using the target
column's Charset to drive the value conversion. In the case where we are
altering the charset, the Charset used for conversion will be different than
the original column's charset, resulting in an erroneous conversion.
- Identifying textual characters sets; converting into specific type when applying dml events
- Refactored `ColumnsList`: introducing `Column` type
- Refactored `unsigned` handling, as part of `Column`
- `Column` type supports `convertArg()`: converting value of argument according to column data type
- DB URI attempts `utf8mb4,utf8,latin1` charsets in that order (first one to be recognized wins)
- Local tests filter by pattern
- Local tests append table schema on failure
- Local tests do not have postpone flag file
- Added character set local tests: `utf8`, `utf8mb4`, `latin1`