[enhancement](array-type) Split Array Offsets and String Offsets (#12341)
In old Doris version string offsets are 32bit, but it is not enough for Array type. If we change string offsets from 32bit to 64bit, there will be problem if we upgrade BE one by one. Because at the same time 32bit Offsets and 64 bit Offsets String will exist at the same time. As a result, we separate the Codes for Array Offsets. Co-authored-by: cambyzju <zhuxiaoli01@baidu.com>
This commit is contained in:
@ -65,7 +65,7 @@ public:
|
||||
|
||||
private:
|
||||
template <typename NestedColumnType, typename RightColumnType>
|
||||
ColumnPtr _execute_number(const ColumnArray::Offsets& offsets, const IColumn& nested_column,
|
||||
ColumnPtr _execute_number(const ColumnArray::Offsets64& offsets, const IColumn& nested_column,
|
||||
const IColumn& right_column, const UInt8* nested_null_map) {
|
||||
// check array nested column type and get data
|
||||
const auto& src_data = reinterpret_cast<const NestedColumnType&>(nested_column).get_data();
|
||||
@ -135,7 +135,7 @@ private:
|
||||
return dst;
|
||||
}
|
||||
|
||||
ColumnPtr _execute_string(const ColumnArray::Offsets& offsets, const IColumn& nested_column,
|
||||
ColumnPtr _execute_string(const ColumnArray::Offsets64& offsets, const IColumn& nested_column,
|
||||
const IColumn& right_column, const UInt8* nested_null_map) {
|
||||
// check array nested column type and get data
|
||||
const auto& src_offs = reinterpret_cast<const ColumnString&>(nested_column).get_offsets();
|
||||
@ -224,7 +224,7 @@ private:
|
||||
}
|
||||
|
||||
template <typename NestedColumnType>
|
||||
ColumnPtr _execute_number_expanded(const ColumnArray::Offsets& offsets,
|
||||
ColumnPtr _execute_number_expanded(const ColumnArray::Offsets64& offsets,
|
||||
const IColumn& nested_column, const IColumn& right_column,
|
||||
const UInt8* nested_null_map) {
|
||||
if (check_column<ColumnUInt8>(right_column)) {
|
||||
|
||||
Reference in New Issue
Block a user