amorynan commented on code in PR #17330: URL: https://github.com/apache/doris/pull/17330#discussion_r1123979930
########## be/src/vec/columns/column_map.h: ########## @@ -116,38 +120,52 @@ class ColumnMap final : public COWHelper<IColumn, ColumnMap> { void replace_column_data_default(size_t self_row = 0) override { LOG(FATAL) << "replace_column_data_default not implemented"; } - void check_size() const; - ColumnArray::Offsets64& get_offsets() const; + + ColumnArray::Offsets64& get_offsets() { + return assert_cast<COffsets&>(*offsets_column).get_data(); + } + const ColumnArray::Offsets64& get_offsets() const { + return assert_cast<const COffsets&>(*offsets_column).get_data(); + } + IColumn& get_offsets_column() { return *offsets_column; } + const IColumn& get_offsets_column() const { return *offsets_column; } + + const ColumnPtr& get_offsets_ptr() const { return offsets_column; } + ColumnPtr& get_offsets_ptr() { return offsets_column; } + + size_t size() const override { return get_offsets().size(); } void reserve(size_t n) override; size_t byte_size() const override; size_t allocated_bytes() const override; void protect() override; /******************** keys and values ***************/ - const ColumnPtr& get_keys_ptr() const { return keys; } - ColumnPtr& get_keys_ptr() { return keys; } + const ColumnPtr& get_keys_ptr() const { return keys_column; } + ColumnPtr& get_keys_ptr() { return keys_column; } - const IColumn& get_keys() const { return *keys; } - IColumn& get_keys() { return *keys; } + const IColumn& get_keys() const { return *keys_column; } + IColumn& get_keys() { return *keys_column; } - const ColumnPtr& get_values_ptr() const { return values; } - ColumnPtr& get_values_ptr() { return values; } + const ColumnPtr& get_values_ptr() const { return values_column; } + ColumnPtr& get_values_ptr() { return values_column; } - const IColumn& get_values() const { return *values; } - IColumn& get_values() { return *values; } + const IColumn& get_values() const { return *values_column; } + IColumn& get_values() { return *values_column; } private: friend class COWHelper<IColumn, ColumnMap>; - WrappedPtr keys; // nullable - WrappedPtr values; // nullable + WrappedPtr keys_column; // nullable + WrappedPtr values_column; // nullable + WrappedPtr offsets_column; // offset size_t ALWAYS_INLINE offset_at(ssize_t i) const { return get_offsets()[i - 1]; } size_t ALWAYS_INLINE size_at(ssize_t i) const { return get_offsets()[i] - get_offsets()[i - 1]; } - ColumnMap(MutableColumnPtr&& keys, MutableColumnPtr&& values); + explicit ColumnMap(MutableColumnPtr&& keys, MutableColumnPtr&& values, Review Comment: i will remove it -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: commits-unsubscr...@doris.apache.org For queries about this service, please contact Infrastructure at: us...@infra.apache.org --------------------------------------------------------------------- To unsubscribe, e-mail: commits-unsubscr...@doris.apache.org For additional commands, e-mail: commits-h...@doris.apache.org