Skip to content

Commit

Permalink
DecimalQuantiles: Refactor code reusing logicl and use enum instead o…
Browse files Browse the repository at this point in the history
…f int /2
  • Loading branch information
carlopi committed Nov 13, 2023
1 parent ed95d09 commit a1ef8e7
Showing 1 changed file with 13 additions and 5 deletions.
18 changes: 13 additions & 5 deletions src/core_functions/aggregate/holistic/quantile.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -511,7 +511,8 @@ struct QuantileBindData : public FunctionData {
deserializer.ReadProperty(101, "order", result->order);
deserializer.ReadProperty(102, "desc", result->desc);
QuantileSerializationType deserialization_type;
deserializer.ReadPropertyWithDefault(103, "type", deserialization_type, QuantileSerializationType::NON_DECIMAL);
deserializer.ReadPropertyWithDefault(103, "quantile_type", deserialization_type,
QuantileSerializationType::NON_DECIMAL);

if (deserialization_type != QuantileSerializationType::NON_DECIMAL) {
LogicalType arg_type;
Expand All @@ -530,30 +531,37 @@ struct QuantileBindData : public FunctionData {
const AggregateFunction &function) {
Serialize(serializer, bind_data_p, function);

serializer.WritePropertyWithDefault<int>(103, "flag", 1, 0);
serializer.WritePropertyWithDefault<QuantileSerializationType>(
103, "quantile_type", QuantileSerializationType::DECIMAL_DISCRETE, QuantileSerializationType::NON_DECIMAL);
serializer.WriteProperty(104, "logical_type", function.arguments[0]);
}
static void SerializeDecimalDiscreteList(Serializer &serializer, const optional_ptr<FunctionData> bind_data_p,
const AggregateFunction &function) {

Serialize(serializer, bind_data_p, function);

serializer.WritePropertyWithDefault<int>(103, "flag", 2, 0);
serializer.WritePropertyWithDefault<QuantileSerializationType>(103, "quantile_type",
QuantileSerializationType::DECIMAL_DISCRETE_LIST,
QuantileSerializationType::NON_DECIMAL);
serializer.WriteProperty(104, "logical_type", function.arguments[0]);
}
static void SerializeDecimalContinuous(Serializer &serializer, const optional_ptr<FunctionData> bind_data_p,
const AggregateFunction &function) {
Serialize(serializer, bind_data_p, function);

serializer.WritePropertyWithDefault<int>(103, "flag", 3, 0);
serializer.WritePropertyWithDefault<QuantileSerializationType>(103, "quantile_type",
QuantileSerializationType::DECIMAL_CONTINUOUS,
QuantileSerializationType::NON_DECIMAL);
serializer.WriteProperty(104, "logical_type", function.arguments[0]);
}
static void SerializeDecimalContinuousList(Serializer &serializer, const optional_ptr<FunctionData> bind_data_p,
const AggregateFunction &function) {

Serialize(serializer, bind_data_p, function);

serializer.WritePropertyWithDefault<int>(103, "flag", 4, 0);
serializer.WritePropertyWithDefault<QuantileSerializationType>(
103, "quantile_type", QuantileSerializationType::DECIMAL_CONTINUOUS_LIST,
QuantileSerializationType::NON_DECIMAL);
serializer.WriteProperty(104, "logical_type", function.arguments[0]);
}

Expand Down

0 comments on commit a1ef8e7

Please sign in to comment.