[feature-wip](new-scan)Add new file scan node (#12048)

Related pr: #11582
This is the new file scan node and scanner for external hms catalog.
This commit is contained in:
Jibing-Li
2022-09-01 10:01:20 +08:00
committed by GitHub
parent 65051d67cf
commit ec4863b63a
12 changed files with 1058 additions and 3 deletions

View File

@ -61,6 +61,7 @@
#include "vec/core/block.h"
#include "vec/exec/file_scan_node.h"
#include "vec/exec/join/vhash_join_node.h"
#include "vec/exec/scan/new_file_scan_node.h"
#include "vec/exec/scan/new_olap_scan_node.h"
#include "vec/exec/vaggregation_node.h"
#include "vec/exec/vanalytic_eval_node.h"
@ -584,7 +585,12 @@ Status ExecNode::create_node(RuntimeState* state, ObjectPool* pool, const TPlanN
return Status::OK();
case TPlanNodeType::FILE_SCAN_NODE:
*node = pool->add(new vectorized::FileScanNode(pool, tnode, descs));
// *node = pool->add(new vectorized::FileScanNode(pool, tnode, descs));
if (config::enable_new_scan_node) {
*node = pool->add(new vectorized::NewFileScanNode(pool, tnode, descs));
} else {
*node = pool->add(new vectorized::FileScanNode(pool, tnode, descs));
}
return Status::OK();
@ -704,7 +710,8 @@ void ExecNode::try_do_aggregate_serde_improve() {
// TODO(cmy): should be removed when NewOlapScanNode is ready
ExecNode* child0 = agg_node[0]->_children[0];
if (typeid(*child0) == typeid(vectorized::NewOlapScanNode)) {
if (typeid(*child0) == typeid(vectorized::NewOlapScanNode) ||
typeid(*child0) == typeid(vectorized::NewFileScanNode)) {
vectorized::VScanNode* scan_node =
static_cast<vectorized::VScanNode*>(agg_node[0]->_children[0]);
scan_node->set_no_agg_finalize();