[feature-wip](array-type) add function array_union/array_except/array_intersect (#10781)

Add array_union/array_except/array_intersect function.
This commit is contained in:
xy720
2022-07-22 13:50:13 +08:00
committed by GitHub
parent 9d21b2154d
commit 3744321f01
18 changed files with 1160 additions and 2 deletions

View File

@ -17,6 +17,7 @@
#pragma once
#include "vec/columns/column_array.h"
#include "vec/columns/column_nullable.h"
#include "vec/data_types/data_type_array.h"
namespace doris::vectorized {
@ -39,6 +40,19 @@ public:
const IColumn* nested_col = nullptr;
};
struct ColumnArrayMutableData {
public:
MutableColumnPtr array_nested_col = nullptr;
ColumnUInt8::Container* nested_nullmap_data = nullptr;
MutableColumnPtr offsets_col = nullptr;
ColumnArray::Offsets* offsets_ptr = nullptr;
IColumn* nested_col = nullptr;
};
bool extract_column_array_info(const IColumn& src, ColumnArrayExecutionData& data);
ColumnArrayMutableData create_mutable_data(const IColumn* nested_col, bool is_nullable);
MutableColumnPtr assemble_column_array(ColumnArrayMutableData& data);
} // namespace doris::vectorized