Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion be/src/vec/data_types/data_type.h
Original file line number Diff line number Diff line change
Expand Up @@ -86,7 +86,7 @@ class IDataType : private boost::noncopyable {
virtual Status from_string(ReadBuffer& rb, IColumn* column) const;

// get specific serializer or deserializer
virtual DataTypeSerDeSPtr get_serde() const = 0;
virtual DataTypeSerDeSPtr get_serde(int nesting_level = 1) const = 0;

protected:
virtual String do_get_name() const;
Expand Down
4 changes: 3 additions & 1 deletion be/src/vec/data_types/data_type_agg_state.h
Original file line number Diff line number Diff line change
Expand Up @@ -126,7 +126,9 @@ class DataTypeAggState : public DataTypeString {
return _agg_function->create_serialize_column();
}

DataTypeSerDeSPtr get_serde() const override { return _agg_serialized_type->get_serde(); };
DataTypeSerDeSPtr get_serde(int nesting_level = 1) const override {
return _agg_serialized_type->get_serde(nesting_level);
};

DataTypePtr get_serialized_type() const { return _agg_serialized_type; }

Expand Down
5 changes: 3 additions & 2 deletions be/src/vec/data_types/data_type_array.h
Original file line number Diff line number Diff line change
Expand Up @@ -111,8 +111,9 @@ class DataTypeArray final : public IDataType {
void to_string(const IColumn& column, size_t row_num, BufferWritable& ostr) const override;
Status from_string(ReadBuffer& rb, IColumn* column) const override;

DataTypeSerDeSPtr get_serde() const override {
return std::make_shared<DataTypeArraySerDe>(nested->get_serde());
DataTypeSerDeSPtr get_serde(int nesting_level = 1) const override {
return std::make_shared<DataTypeArraySerDe>(nested->get_serde(nesting_level + 1),
nesting_level);
};
};

Expand Down
4 changes: 2 additions & 2 deletions be/src/vec/data_types/data_type_bitmap.h
Original file line number Diff line number Diff line change
Expand Up @@ -107,8 +107,8 @@ class DataTypeBitMap : public IDataType {

static void deserialize_as_stream(BitmapValue& value, BufferReadable& buf);

DataTypeSerDeSPtr get_serde() const override {
return std::make_shared<DataTypeBitMapSerDe>();
DataTypeSerDeSPtr get_serde(int nesting_level = 1) const override {
return std::make_shared<DataTypeBitMapSerDe>(nesting_level);
};
};

Expand Down
4 changes: 3 additions & 1 deletion be/src/vec/data_types/data_type_date.h
Original file line number Diff line number Diff line change
Expand Up @@ -77,7 +77,9 @@ class DataTypeDate final : public DataTypeNumberBase<Int64> {

MutableColumnPtr create_column() const override;

DataTypeSerDeSPtr get_serde() const override { return std::make_shared<DataTypeDate64SerDe>(); }
DataTypeSerDeSPtr get_serde(int nesting_level = 1) const override {
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

warning: method 'get_serde' can be made static [readability-convert-member-functions-to-static]

Suggested change
DataTypeSerDeSPtr get_serde(int nesting_level = 1) const override {
static DataTypeSerDeSPtr get_serde(int nesting_level = 1) override {

return std::make_shared<DataTypeDate64SerDe>(nesting_level);
}
};

} // namespace doris::vectorized
4 changes: 2 additions & 2 deletions be/src/vec/data_types/data_type_date_time.h
Original file line number Diff line number Diff line change
Expand Up @@ -86,8 +86,8 @@ class DataTypeDateTime final : public DataTypeNumberBase<Int64> {

std::string to_string(const IColumn& column, size_t row_num) const override;

DataTypeSerDeSPtr get_serde() const override {
return std::make_shared<DataTypeDateTimeSerDe>();
DataTypeSerDeSPtr get_serde(int nesting_level = 1) const override {
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

warning: method 'get_serde' can be made static [readability-convert-member-functions-to-static]

Suggested change
DataTypeSerDeSPtr get_serde(int nesting_level = 1) const override {
static DataTypeSerDeSPtr get_serde(int nesting_level = 1) override {

return std::make_shared<DataTypeDateTimeSerDe>(nesting_level);
}

Field get_field(const TExprNode& node) const override {
Expand Down
4 changes: 2 additions & 2 deletions be/src/vec/data_types/data_type_decimal.h
Original file line number Diff line number Diff line change
Expand Up @@ -241,8 +241,8 @@ class DataTypeDecimal final : public IDataType {
std::string to_string(const IColumn& column, size_t row_num) const override;
void to_string(const IColumn& column, size_t row_num, BufferWritable& ostr) const override;
Status from_string(ReadBuffer& rb, IColumn* column) const override;
DataTypeSerDeSPtr get_serde() const override {
return std::make_shared<DataTypeDecimalSerDe<T>>(scale, precision);
DataTypeSerDeSPtr get_serde(int nesting_level = 1) const override {
return std::make_shared<DataTypeDecimalSerDe<T>>(scale, precision, nesting_level);
};

/// Decimal specific
Expand Down
4 changes: 2 additions & 2 deletions be/src/vec/data_types/data_type_fixed_length_object.h
Original file line number Diff line number Diff line change
Expand Up @@ -83,8 +83,8 @@ class DataTypeFixedLengthObject final : public IDataType {
bool have_subtypes() const override { return false; }

bool can_be_inside_low_cardinality() const override { return false; }
DataTypeSerDeSPtr get_serde() const override {
return std::make_shared<DataTypeFixedLengthObjectSerDe>();
DataTypeSerDeSPtr get_serde(int nesting_level = 1) const override {
return std::make_shared<DataTypeFixedLengthObjectSerDe>(nesting_level);
};
};

Expand Down
4 changes: 3 additions & 1 deletion be/src/vec/data_types/data_type_hll.h
Original file line number Diff line number Diff line change
Expand Up @@ -101,7 +101,9 @@ class DataTypeHLL : public IDataType {

static void deserialize_as_stream(HyperLogLog& value, BufferReadable& buf);

DataTypeSerDeSPtr get_serde() const override { return std::make_shared<DataTypeHLLSerDe>(); };
DataTypeSerDeSPtr get_serde(int nesting_level = 1) const override {
return std::make_shared<DataTypeHLLSerDe>(nesting_level);
};
};

} // namespace doris::vectorized
4 changes: 3 additions & 1 deletion be/src/vec/data_types/data_type_ipv4.h
Original file line number Diff line number Diff line change
Expand Up @@ -64,7 +64,9 @@ class DataTypeIPv4 final : public DataTypeNumberBase<IPv4> {

MutableColumnPtr create_column() const override;

DataTypeSerDeSPtr get_serde() const override { return std::make_shared<DataTypeIPv4SerDe>(); }
DataTypeSerDeSPtr get_serde(int nesting_level = 1) const override {
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

warning: method 'get_serde' can be made static [readability-convert-member-functions-to-static]

Suggested change
DataTypeSerDeSPtr get_serde(int nesting_level = 1) const override {
static DataTypeSerDeSPtr get_serde(int nesting_level = 1) override {

return std::make_shared<DataTypeIPv4SerDe>(nesting_level);
}
};

template <typename DataType>
Expand Down
4 changes: 3 additions & 1 deletion be/src/vec/data_types/data_type_ipv6.h
Original file line number Diff line number Diff line change
Expand Up @@ -72,7 +72,9 @@ class DataTypeIPv6 final : public DataTypeNumberBase<IPv6> {

MutableColumnPtr create_column() const override;

DataTypeSerDeSPtr get_serde() const override { return std::make_shared<DataTypeIPv6SerDe>(); }
DataTypeSerDeSPtr get_serde(int nesting_level = 1) const override {
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

warning: method 'get_serde' can be made static [readability-convert-member-functions-to-static]

Suggested change
DataTypeSerDeSPtr get_serde(int nesting_level = 1) const override {
static DataTypeSerDeSPtr get_serde(int nesting_level = 1) override {

return std::make_shared<DataTypeIPv6SerDe>(nesting_level);
}
};

template <typename DataType>
Expand Down
4 changes: 3 additions & 1 deletion be/src/vec/data_types/data_type_jsonb.h
Original file line number Diff line number Diff line change
Expand Up @@ -93,7 +93,9 @@ class DataTypeJsonb final : public IDataType {
std::string to_string(const IColumn& column, size_t row_num) const override;
void to_string(const IColumn& column, size_t row_num, BufferWritable& ostr) const override;
Status from_string(ReadBuffer& rb, IColumn* column) const override;
DataTypeSerDeSPtr get_serde() const override { return std::make_shared<DataTypeJsonbSerDe>(); };
DataTypeSerDeSPtr get_serde(int nesting_level = 1) const override {
return std::make_shared<DataTypeJsonbSerDe>(nesting_level);
};

private:
DataTypeString data_type_string;
Expand Down
6 changes: 4 additions & 2 deletions be/src/vec/data_types/data_type_map.h
Original file line number Diff line number Diff line change
Expand Up @@ -104,8 +104,10 @@ class DataTypeMap final : public IDataType {
std::string to_string(const IColumn& column, size_t row_num) const override;
void to_string(const IColumn& column, size_t row_num, BufferWritable& ostr) const override;
Status from_string(ReadBuffer& rb, IColumn* column) const override;
DataTypeSerDeSPtr get_serde() const override {
return std::make_shared<DataTypeMapSerDe>(key_type->get_serde(), value_type->get_serde());
DataTypeSerDeSPtr get_serde(int nesting_level = 1) const override {
return std::make_shared<DataTypeMapSerDe>(key_type->get_serde(nesting_level + 1),
value_type->get_serde(nesting_level + 1),
nesting_level);
};
};

Expand Down
2 changes: 1 addition & 1 deletion be/src/vec/data_types/data_type_nothing.h
Original file line number Diff line number Diff line change
Expand Up @@ -90,7 +90,7 @@ class DataTypeNothing final : public IDataType {
}

bool have_subtypes() const override { return false; }
DataTypeSerDeSPtr get_serde() const override {
DataTypeSerDeSPtr get_serde(int nesting_level = 1) const override {
LOG(FATAL) << get_name() << " not support serde";
};
};
Expand Down
5 changes: 3 additions & 2 deletions be/src/vec/data_types/data_type_nullable.h
Original file line number Diff line number Diff line change
Expand Up @@ -123,8 +123,9 @@ class DataTypeNullable final : public IDataType {
const DataTypePtr& get_nested_type() const { return nested_data_type; }
bool is_null_literal() const override { return nested_data_type->is_null_literal(); }

DataTypeSerDeSPtr get_serde() const override {
return std::make_shared<DataTypeNullableSerDe>(nested_data_type->get_serde());
DataTypeSerDeSPtr get_serde(int nesting_level = 1) const override {
return std::make_shared<DataTypeNullableSerDe>(nested_data_type->get_serde(nesting_level),
nesting_level);
}

private:
Expand Down
4 changes: 2 additions & 2 deletions be/src/vec/data_types/data_type_number_base.h
Original file line number Diff line number Diff line change
Expand Up @@ -154,8 +154,8 @@ class DataTypeNumberBase : public IDataType {
Status from_string(ReadBuffer& rb, IColumn* column) const override;
bool is_null_literal() const override { return _is_null_literal; }
void set_null_literal(bool flag) { _is_null_literal = flag; }
DataTypeSerDeSPtr get_serde() const override {
return std::make_shared<DataTypeNumberSerDe<T>>();
DataTypeSerDeSPtr get_serde(int nesting_level = 1) const override {
return std::make_shared<DataTypeNumberSerDe<T>>(nesting_level);
};

private:
Expand Down
4 changes: 2 additions & 2 deletions be/src/vec/data_types/data_type_object.h
Original file line number Diff line number Diff line change
Expand Up @@ -83,8 +83,8 @@ class DataTypeObject : public IDataType {
LOG(FATAL) << "Unimplemented get_field for object";
}

DataTypeSerDeSPtr get_serde() const override {
return std::make_shared<DataTypeObjectSerDe>();
DataTypeSerDeSPtr get_serde(int nesting_level = 1) const override {
return std::make_shared<DataTypeObjectSerDe>(nesting_level);
};
};
} // namespace doris::vectorized
4 changes: 2 additions & 2 deletions be/src/vec/data_types/data_type_quantilestate.h
Original file line number Diff line number Diff line change
Expand Up @@ -100,8 +100,8 @@ class DataTypeQuantileState : public IDataType {
static void serialize_as_stream(const QuantileState& value, BufferWritable& buf);

static void deserialize_as_stream(QuantileState& value, BufferReadable& buf);
DataTypeSerDeSPtr get_serde() const override {
return std::make_shared<DataTypeQuantileStateSerDe>();
DataTypeSerDeSPtr get_serde(int nesting_level = 1) const override {
return std::make_shared<DataTypeQuantileStateSerDe>(nesting_level);
};
};
} // namespace doris::vectorized
4 changes: 2 additions & 2 deletions be/src/vec/data_types/data_type_string.h
Original file line number Diff line number Diff line change
Expand Up @@ -91,8 +91,8 @@ class DataTypeString : public IDataType {
std::string to_string(const IColumn& column, size_t row_num) const override;
void to_string(const IColumn& column, size_t row_num, BufferWritable& ostr) const override;
Status from_string(ReadBuffer& rb, IColumn* column) const override;
DataTypeSerDeSPtr get_serde() const override {
return std::make_shared<DataTypeStringSerDe>();
DataTypeSerDeSPtr get_serde(int nesting_level = 1) const override {
return std::make_shared<DataTypeStringSerDe>(nesting_level);
};
};

Expand Down
6 changes: 3 additions & 3 deletions be/src/vec/data_types/data_type_struct.h
Original file line number Diff line number Diff line change
Expand Up @@ -129,12 +129,12 @@ class DataTypeStruct final : public IDataType {
std::string to_string(const IColumn& column, size_t row_num) const override;
void to_string(const IColumn& column, size_t row_num, BufferWritable& ostr) const override;
bool get_have_explicit_names() const { return have_explicit_names; }
DataTypeSerDeSPtr get_serde() const override {
DataTypeSerDeSPtr get_serde(int nesting_level = 1) const override {
DataTypeSerDeSPtrs ptrs;
for (auto iter = elems.begin(); iter < elems.end(); ++iter) {
ptrs.push_back((*iter)->get_serde());
ptrs.push_back((*iter)->get_serde(nesting_level + 1));
}
return std::make_shared<DataTypeStructSerDe>(ptrs, names);
return std::make_shared<DataTypeStructSerDe>(ptrs, names, nesting_level);
};
};

Expand Down
8 changes: 5 additions & 3 deletions be/src/vec/data_types/data_type_time.h
Original file line number Diff line number Diff line change
Expand Up @@ -69,7 +69,9 @@ class DataTypeTime final : public DataTypeNumberBase<Float64> {
bool can_be_used_in_boolean_context() const override { return true; }
bool can_be_inside_nullable() const override { return true; }

DataTypeSerDeSPtr get_serde() const override { return std::make_shared<DataTypeTimeSerDe>(); };
DataTypeSerDeSPtr get_serde(int nesting_level = 1) const override {
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

warning: method 'get_serde' can be made static [readability-convert-member-functions-to-static]

Suggested change
DataTypeSerDeSPtr get_serde(int nesting_level = 1) const override {
static DataTypeSerDeSPtr get_serde(int nesting_level = 1) override {

return std::make_shared<DataTypeTimeSerDe>(nesting_level);
};
TypeIndex get_type_id() const override { return TypeIndex::Time; }
const char* get_family_name() const override { return "time"; }
};
Expand Down Expand Up @@ -104,8 +106,8 @@ class DataTypeTimeV2 final : public DataTypeNumberBase<Float64> {
bool can_be_inside_nullable() const override { return true; }

void to_pb_column_meta(PColumnMeta* col_meta) const override;
DataTypeSerDeSPtr get_serde() const override {
return std::make_shared<DataTypeTimeV2SerDe>(_scale);
DataTypeSerDeSPtr get_serde(int nesting_level = 1) const override {
return std::make_shared<DataTypeTimeV2SerDe>(_scale, nesting_level);
};
TypeIndex get_type_id() const override { return TypeIndex::TimeV2; }
const char* get_family_name() const override { return "timev2"; }
Expand Down
8 changes: 5 additions & 3 deletions be/src/vec/data_types/data_type_time_v2.h
Original file line number Diff line number Diff line change
Expand Up @@ -69,7 +69,9 @@ class DataTypeDateV2 final : public DataTypeNumberBase<UInt32> {

bool can_be_inside_nullable() const override { return true; }

DataTypeSerDeSPtr get_serde() const override { return std::make_shared<DataTypeDateV2SerDe>(); }
DataTypeSerDeSPtr get_serde(int nesting_level = 1) const override {
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

warning: method 'get_serde' can be made static [readability-convert-member-functions-to-static]

Suggested change
DataTypeSerDeSPtr get_serde(int nesting_level = 1) const override {
static DataTypeSerDeSPtr get_serde(int nesting_level = 1) override {

return std::make_shared<DataTypeDateV2SerDe>(nesting_level);
}

Field get_field(const TExprNode& node) const override {
DateV2Value<DateV2ValueType> value;
Expand Down Expand Up @@ -127,8 +129,8 @@ class DataTypeDateTimeV2 final : public DataTypeNumberBase<UInt64> {
std::string to_string(const IColumn& column, size_t row_num) const override;
void to_string(const IColumn& column, size_t row_num, BufferWritable& ostr) const override;
Status from_string(ReadBuffer& rb, IColumn* column) const override;
DataTypeSerDeSPtr get_serde() const override {
return std::make_shared<DataTypeDateTimeV2SerDe>(_scale);
DataTypeSerDeSPtr get_serde(int nesting_level = 1) const override {
return std::make_shared<DataTypeDateTimeV2SerDe>(_scale, nesting_level);
};

Field get_field(const TExprNode& node) const override {
Expand Down
Loading