protected Row parseRow(XInputStream is, TableMapEvent tme, BitColumn usedColumns)
throws IOException {
//
int unusedColumnCount = 0;
final byte[] types = tme.getColumnTypes();
final Metadata metadata = tme.getColumnMetadata();
final BitColumn nullColumns = is.readBit(types.length, true);
final List<Column> columns = new ArrayList<Column>(types.length);
for(int i = 0; i < types.length; ++i) {
//
int length = 0;
final int meta = metadata.getMetadata(i);
int type = CodecUtils.toUnsigned(types[i]);
if(type == MySQLConstants.TYPE_STRING && meta > 256) {
final int meta0 = meta >> 8;
final int meta1 = meta & 0xFF;
if ((meta0 & 0x30) != 0x30) { // a long CHAR() field: see #37426