[pipelineX](feature) Support schema scan operator (#24850)

This commit is contained in:
Gabriel
2023-09-25 14:42:25 +08:00
committed by GitHub
parent 9412775686
commit 3b4d8b4ac8
23 changed files with 667 additions and 210 deletions

View File

@ -64,42 +64,47 @@ VSchemaScanNode::~VSchemaScanNode() {}
Status VSchemaScanNode::init(const TPlanNode& tnode, RuntimeState* state) {
RETURN_IF_ERROR(ExecNode::init(tnode, state));
if (tnode.schema_scan_node.__isset.db) {
_scanner_param.db = _pool->add(new std::string(tnode.schema_scan_node.db));
_scanner_param.common_param->db = _pool->add(new std::string(tnode.schema_scan_node.db));
}
if (tnode.schema_scan_node.__isset.table) {
_scanner_param.table = _pool->add(new std::string(tnode.schema_scan_node.table));
_scanner_param.common_param->table =
_pool->add(new std::string(tnode.schema_scan_node.table));
}
if (tnode.schema_scan_node.__isset.wild) {
_scanner_param.wild = _pool->add(new std::string(tnode.schema_scan_node.wild));
_scanner_param.common_param->wild =
_pool->add(new std::string(tnode.schema_scan_node.wild));
}
if (tnode.schema_scan_node.__isset.current_user_ident) {
_scanner_param.current_user_ident =
_scanner_param.common_param->current_user_ident =
_pool->add(new TUserIdentity(tnode.schema_scan_node.current_user_ident));
} else {
if (tnode.schema_scan_node.__isset.user) {
_scanner_param.user = _pool->add(new std::string(tnode.schema_scan_node.user));
_scanner_param.common_param->user =
_pool->add(new std::string(tnode.schema_scan_node.user));
}
if (tnode.schema_scan_node.__isset.user_ip) {
_scanner_param.user_ip = _pool->add(new std::string(tnode.schema_scan_node.user_ip));
_scanner_param.common_param->user_ip =
_pool->add(new std::string(tnode.schema_scan_node.user_ip));
}
}
if (tnode.schema_scan_node.__isset.ip) {
_scanner_param.ip = _pool->add(new std::string(tnode.schema_scan_node.ip));
_scanner_param.common_param->ip = _pool->add(new std::string(tnode.schema_scan_node.ip));
}
if (tnode.schema_scan_node.__isset.port) {
_scanner_param.port = tnode.schema_scan_node.port;
_scanner_param.common_param->port = tnode.schema_scan_node.port;
}
if (tnode.schema_scan_node.__isset.thread_id) {
_scanner_param.thread_id = tnode.schema_scan_node.thread_id;
_scanner_param.common_param->thread_id = tnode.schema_scan_node.thread_id;
}
if (tnode.schema_scan_node.__isset.catalog) {
_scanner_param.catalog = _pool->add(new std::string(tnode.schema_scan_node.catalog));
_scanner_param.common_param->catalog =
_pool->add(new std::string(tnode.schema_scan_node.catalog));
}
return Status::OK();
}
@ -121,9 +126,9 @@ Status VSchemaScanNode::open(RuntimeState* state) {
RETURN_IF_CANCELLED(state);
RETURN_IF_ERROR(ExecNode::open(state));
if (_scanner_param.user) {
if (_scanner_param.common_param->user) {
TSetSessionParams param;
param.__set_user(*_scanner_param.user);
param.__set_user(*_scanner_param.common_param->user);
//TStatus t_status;
//RETURN_IF_ERROR(SchemaJniHelper::set_session(param, &t_status));
//RETURN_IF_ERROR(Status(t_status));