@Override
    public Serializable read(final MySQLBinlogColumnDef columnDef, final MySQLPacketPayload payload) {
        DecimalMetaData decimalMetaData = new DecimalMetaData(columnDef.getColumnMeta());
        return toDecimal(decimalMetaData, payload.readStringFixByBytes(decimalMetaData.getTotalByteLength()));
    }
@Test
    void assertDecodeNegativeNewDecimalWithLargeNumber() {
        columnDef = new MySQLBinlogColumnDef(MySQLBinaryColumnType.NEWDECIMAL);
        columnDef.setColumnMeta(32 << 8 | 6);
        byte[] newDecimalBytes = ByteBufUtil.decodeHexDump("7DFEFDB5CC2741EFDEBE4154FD52E7");
        when(payload.readStringFixByBytes(newDecimalBytes.length)).thenReturn(newDecimalBytes);
        BigDecimal actual = (BigDecimal) new MySQLDecimalBinlogProtocolValue().read(columnDef, payload);
        assertThat(actual.toString(), is("-33620554869842448557956779.175384"));
    }