ClickHouse client version 21.8.4.51 (official build).

I had a problem synchronizing Nullable(Decimal(20, 8))  using the MaterializeMySQL

mysql data is  10929.00000000 

but clickhouse data is -32771294956408.94967295

Can someone help me plz



static constexpr size_t digits_per_integer = 9;
                            static const size_t compressed_bytes_map[] = {0, 1, 1, 2, 2, 3, 3, 4, 4, 4};
                            static const size_t compressed_integer_align_numbers[] = {
                                0x0, 0xFF, 0xFF, 0xFFFF, 0xFFFF, 0xFFFFFF, 0xFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF};
                            UInt32 mask = 0;
                            DecimalType res(0);
                            if ((*payload.position() & 0x80) == 0)
                                mask = UInt32(-1);
                            *payload.position() ^= 0x80;
                            {
                                size_t integral = (precision - scale);
                                size_t uncompressed_integers = integral / digits_per_integer;
                                size_t compressed_integers = integral - (uncompressed_integers * digits_per_integer);
                                
                                if (compressed_integers != 0)
                                {
                                    UInt32 val = 0;
                                    size_t to_read = compressed_bytes_map[compressed_integers];
                                    readBigEndianStrict(payload, reinterpret_cast<char *>(&val), to_read);
                                    res += (val ^ (mask & compressed_integer_align_numbers[compressed_integers]));
                                }
                                for (auto k = 0U; k < uncompressed_integers; k++)
                                {
                                    UInt32 val = 0;
                                    readBigEndianStrict(payload, reinterpret_cast<char *>(&val), 4);
                                    res *= intExp10OfSize<DecimalType>(digits_per_integer);
                                    res += (val ^ mask);
                                }
                            }
                            {