[feature](vectorized) support vexplode_bitmap (#8890)
This commit is contained in:
@ -33,13 +33,12 @@ public:
|
||||
|
||||
virtual Status forward(bool* eos) override;
|
||||
|
||||
private:
|
||||
protected:
|
||||
void _reset_iterator();
|
||||
|
||||
private:
|
||||
// Read from tuple row.
|
||||
// if _cur_bitmap_owned is true, need to delete it when deconstruction
|
||||
BitmapValue* _cur_bitmap = nullptr;
|
||||
const BitmapValue* _cur_bitmap = nullptr;
|
||||
bool _cur_bitmap_owned = false;
|
||||
// iterator of _cur_bitmap
|
||||
BitmapValueIterator* _cur_iter = nullptr;
|
||||
|
||||
@ -22,9 +22,10 @@
|
||||
#include "exprs/table_function/explode_json_array.h"
|
||||
#include "exprs/table_function/explode_split.h"
|
||||
#include "exprs/table_function/table_function.h"
|
||||
#include "vec/exprs/table_function/vexplode_bitmap.h"
|
||||
#include "vec/exprs/table_function/vexplode_json_array.h"
|
||||
#include "vec/exprs/table_function/vexplode_numbers.h"
|
||||
#include "vec/exprs/table_function/vexplode_split.h"
|
||||
#include "vec/exprs/table_function/vexplode_json_array.h"
|
||||
|
||||
namespace doris {
|
||||
|
||||
@ -36,13 +37,15 @@ struct TableFunctionCreator {
|
||||
template <>
|
||||
struct TableFunctionCreator<ExplodeJsonArrayTableFunction> {
|
||||
ExplodeJsonArrayType type;
|
||||
TableFunction* operator()() { return new ExplodeJsonArrayTableFunction(type); }
|
||||
TableFunction* operator()() const { return new ExplodeJsonArrayTableFunction(type); }
|
||||
};
|
||||
|
||||
template <>
|
||||
struct TableFunctionCreator<vectorized::VExplodeJsonArrayTableFunction> {
|
||||
ExplodeJsonArrayType type;
|
||||
TableFunction* operator()() { return new vectorized::VExplodeJsonArrayTableFunction(type); }
|
||||
TableFunction* operator()() const {
|
||||
return new vectorized::VExplodeJsonArrayTableFunction(type);
|
||||
}
|
||||
};
|
||||
|
||||
inline auto ExplodeJsonArrayIntCreator =
|
||||
@ -76,7 +79,9 @@ const std::unordered_map<std::pair<std::string, bool>, std::function<TableFuncti
|
||||
TableFunctionCreator<vectorized::VExplodeNumbersTableFunction>()},
|
||||
{{"explode_json_array_int", true}, VExplodeJsonArrayIntCreator},
|
||||
{{"explode_json_array_double", true}, VExplodeJsonArrayDoubleCreator},
|
||||
{{"explode_json_array_string", true}, VExplodeJsonArrayStringCreator}};
|
||||
{{"explode_json_array_string", true}, VExplodeJsonArrayStringCreator},
|
||||
{{"explode_bitmap", true},
|
||||
TableFunctionCreator<vectorized::VExplodeBitmapTableFunction>()}};
|
||||
|
||||
Status TableFunctionFactory::get_fn(const std::string& fn_name, bool is_vectorized,
|
||||
ObjectPool* pool, TableFunction** fn) {
|
||||
|
||||
Reference in New Issue
Block a user