mirror of
https://github.com/ClickHouse/ClickHouse.git
synced 2024-09-29 21:20:49 +00:00
Fix AggregateFunctionAvg serialization backwards compatibility
This commit is contained in:
parent
9490bf7e5b
commit
cb0b74af86
@ -20,6 +20,7 @@ template <typename T, typename Denominator>
|
||||
struct AggregateFunctionAvgData
|
||||
{
|
||||
using NumeratorType = T;
|
||||
using DenominatorType = Denominator;
|
||||
|
||||
T numerator = 0;
|
||||
Denominator denominator = 0;
|
||||
@ -73,13 +74,21 @@ public:
|
||||
void serialize(ConstAggregateDataPtr place, WriteBuffer & buf) const override
|
||||
{
|
||||
writeBinary(this->data(place).numerator, buf);
|
||||
writeBinary(this->data(place).denominator, buf);
|
||||
|
||||
if constexpr (std::is_integral_v<typename Data::DenominatorType>)
|
||||
writeVarUInt(this->data(place).denominator, buf);
|
||||
else /// Floating point denominator type can be used
|
||||
writeBinary(this->data(place).denominator, buf);
|
||||
}
|
||||
|
||||
void deserialize(AggregateDataPtr place, ReadBuffer & buf, Arena *) const override
|
||||
{
|
||||
readBinary(this->data(place).numerator, buf);
|
||||
readBinary(this->data(place).denominator, buf);
|
||||
|
||||
if constexpr (std::is_integral_v<typename Data::DenominatorType>)
|
||||
readVarUInt(this->data(place).denominator, buf);
|
||||
else /// Floating point denominator type can be used
|
||||
readBinary(this->data(place).denominator, buf);
|
||||
}
|
||||
|
||||
void insertResultInto(AggregateDataPtr place, IColumn & to, Arena *) const override
|
||||
|
Loading…
Reference in New Issue
Block a user