[enhancement](cancel) add cancel query ability on be
This commit is contained in:
@ -582,7 +582,23 @@ void PInternalServiceImpl::cancel_plan_fragment(google::protobuf::RpcController*
|
||||
Status st = Status::OK();
|
||||
|
||||
const bool has_cancel_reason = request->has_cancel_reason();
|
||||
if (request->has_fragment_id()) {
|
||||
// KILL QUERY need send query directly to BE ignore the fragmentid or fragment instance id.
|
||||
// Actully, not need check fragmentid, but should keep stable on 2.1, so that only call
|
||||
// cancel_query when queryid is set and fragment id not set.
|
||||
if (request->has_query_id() && !request->has_fragment_id()) {
|
||||
TUniqueId query_id;
|
||||
query_id.__set_hi(request->query_id().hi());
|
||||
query_id.__set_lo(request->query_id().lo());
|
||||
LOG(INFO) << fmt::format(
|
||||
"Cancel query {}, reason: {}", print_id(query_id),
|
||||
has_cancel_reason ? PPlanFragmentCancelReason_Name(request->cancel_reason())
|
||||
: "INTERNAL_ERROR");
|
||||
_exec_env->fragment_mgr()->cancel_query(
|
||||
query_id,
|
||||
has_cancel_reason ? request->cancel_reason()
|
||||
: PPlanFragmentCancelReason::INTERNAL_ERROR,
|
||||
"cancel query from FE");
|
||||
} else if (request->has_fragment_id()) {
|
||||
TUniqueId query_id;
|
||||
query_id.__set_hi(request->query_id().hi());
|
||||
query_id.__set_lo(request->query_id().lo());
|
||||
|
||||
Reference in New Issue
Block a user