[Vectorized](stream-load-vec) Support stream load in vectorized engine (#8709) (#9280)

Implement vectorized stream load.
Added fe configuration option `enable_vectorized_load` to enable vectorized stream load.

    Co-authored-by: tengjp@outlook.com
    Co-authored-by: mrhhsg@gmail.com
    Co-authored-by: minghong.zhou@163.com
    Co-authored-by: HappenLee <happenlee@hotmail.com>
    Co-authored-by: zhoubintao <35688959+zbtzbtzbt@users.noreply.github.com>
This commit is contained in:
HappenLee
2022-04-29 09:50:51 +08:00
committed by GitHub
parent 74a482ca7f
commit d330bc3806
65 changed files with 5147 additions and 621 deletions

View File

@ -82,6 +82,7 @@
#include "vec/exec/vsort_node.h"
#include "vec/exec/vtable_function_node.h"
#include "vec/exec/vunion_node.h"
#include "vec/exec/vbroker_scan_node.h"
#include "vec/exprs/vexpr.h"
namespace doris {
@ -392,6 +393,7 @@ Status ExecNode::create_node(RuntimeState* state, ObjectPool* pool, const TPlanN
case TPlanNodeType::SELECT_NODE:
case TPlanNodeType::REPEAT_NODE:
case TPlanNodeType::TABLE_FUNCTION_NODE:
case TPlanNodeType::BROKER_SCAN_NODE:
break;
default: {
const auto& i = _TPlanNodeType_VALUES_TO_NAMES.find(tnode.node_type);
@ -555,7 +557,11 @@ Status ExecNode::create_node(RuntimeState* state, ObjectPool* pool, const TPlanN
return Status::OK();
case TPlanNodeType::BROKER_SCAN_NODE:
*node = pool->add(new BrokerScanNode(pool, tnode, descs));
if (state->enable_vectorized_exec()) {
*node = pool->add(new vectorized::VBrokerScanNode(pool, tnode, descs));
} else {
*node = pool->add(new BrokerScanNode(pool, tnode, descs));
}
return Status::OK();
case TPlanNodeType::REPEAT_NODE: