[Fix](multi catalog)Skip non-vectorized init code for NewFileScanNode. #15550

This commit is contained in:
Jibing-Li
2023-01-03 09:22:17 +08:00
committed by GitHub
parent 14eaf41029
commit 17286861ef

View File

@ -123,7 +123,8 @@ Status ExecNode::init(const TPlanNode& tnode, RuntimeState* state) {
RETURN_IF_ERROR(doris::vectorized::VExpr::create_expr_tree(_pool, tnode.vconjunct,
_vconjunct_ctx_ptr.get()));
}
if (typeid(*this) != typeid(doris::vectorized::NewOlapScanNode)) {
if (typeid(*this) != typeid(doris::vectorized::NewOlapScanNode) &&
typeid(*this) != typeid(doris::vectorized::NewFileScanNode)) {
RETURN_IF_ERROR(Expr::create_expr_trees(_pool, tnode.conjuncts, &_conjunct_ctxs));
}
@ -166,7 +167,8 @@ Status ExecNode::prepare(RuntimeState* state) {
// For vectorized olap scan node, the conjuncts is prepared in _vconjunct_ctx_ptr.
// And _conjunct_ctxs is useless.
// TODO: Should be removed when non-vec engine is removed.
if (typeid(*this) != typeid(doris::vectorized::NewOlapScanNode)) {
if (typeid(*this) != typeid(doris::vectorized::NewOlapScanNode) &&
typeid(*this) != typeid(doris::vectorized::NewFileScanNode)) {
RETURN_IF_ERROR(Expr::prepare(_conjunct_ctxs, state, _row_descriptor));
}
RETURN_IF_ERROR(vectorized::VExpr::prepare(_projections, state, intermediate_row_desc()));
@ -184,7 +186,8 @@ Status ExecNode::alloc_resource(doris::RuntimeState* state) {
RETURN_IF_ERROR((*_vconjunct_ctx_ptr)->open(state));
}
RETURN_IF_ERROR(vectorized::VExpr::open(_projections, state));
if (typeid(*this) != typeid(doris::vectorized::NewOlapScanNode)) {
if (typeid(*this) != typeid(doris::vectorized::NewOlapScanNode) &&
typeid(*this) != typeid(doris::vectorized::NewFileScanNode)) {
return Expr::open(_conjunct_ctxs, state);
} else {
return Status::OK();
@ -220,7 +223,8 @@ void ExecNode::release_resource(doris::RuntimeState* state) {
if (_vconjunct_ctx_ptr) {
(*_vconjunct_ctx_ptr)->close(state);
}
if (typeid(*this) != typeid(doris::vectorized::NewOlapScanNode)) {
if (typeid(*this) != typeid(doris::vectorized::NewOlapScanNode) &&
typeid(*this) != typeid(doris::vectorized::NewFileScanNode)) {
Expr::close(_conjunct_ctxs, state);
}
vectorized::VExpr::close(_projections, state);