MCPcopy Create free account
hub / github.com/apache/impala / FinishExecQueryOrDmlRequest

Method FinishExecQueryOrDmlRequest

be/src/service/client-request-state.cc:678–784  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

676}
677
678void ClientRequestState::FinishExecQueryOrDmlRequest() {
679 const TExecRequest& exec_req = exec_request();
680 DCHECK(exec_req.__isset.query_exec_request);
681 UniqueIdPB query_id_pb;
682 TUniqueIdToUniqueIdPB(query_id(), &query_id_pb);
683
684 if (otel_trace_query() && !IsCTAS()) {
685 otel_trace_manager_->StartChildSpanAdmissionControl();
686 }
687
688 TQueryExecRequest req;
689 req = exec_req.query_exec_request;
690 req.query_ctx.client_request.query_options = exec_req.query_options;
691 if (ExecEnv::GetInstance()->AdmissionServiceEnabled()) {
692 if (req.__isset.query_plan) {
693 // Use the swap() to ensure the string's memory is deallocated.
694 // Using clear() sets the size to 0 but may not release the capacity.
695 std::string().swap(req.query_plan);
696 req.__isset.query_plan = false;
697 }
698 if (req.__isset.lineage_graph) {
699 req.lineage_graph = TLineageGraph();
700 req.__isset.lineage_graph = false;
701 }
702 if (req.__isset.result_set_metadata) {
703 req.result_set_metadata = TResultSetMetadata();
704 req.__isset.result_set_metadata = false;
705 }
706 if (req.__isset.finalize_params) {
707 req.finalize_params = TFinalizeParams();
708 req.__isset.finalize_params = false;
709 }
710 TClientRequest& client_req = req.query_ctx.client_request;
711 if (client_req.__isset.redacted_stmt) {
712 // Use the swap() to ensure the string's memory is deallocated.
713 std::string().swap(client_req.redacted_stmt);
714 client_req.__isset.redacted_stmt = false;
715 }
716 }
717
718 DCHECK(!admission_exec_request_);
719 admission_exec_request_ = std::make_unique<AdmissionExecRequestUncompressed>(&req);
720 Status admit_status = admission_control_client_->SubmitForAdmission(
721 {query_id_pb, ExecEnv::GetInstance()->backend_id(), *admission_exec_request_,
722 summary_profile_, blacklisted_executor_addresses_},
723 query_events_, &schedule_, &wait_start_time_ms_, &wait_end_time_ms_,
724 otel_trace_manager_.get());
725
726 if (otel_trace_query() && !IsCTAS()) {
727 otel_trace_manager_->EndChildSpanAdmissionControl(admit_status);
728 }
729
730 {
731 lock_guard<mutex> l(lock_);
732 if (!UpdateQueryStatus(admit_status).ok()) return;
733 }
734
735 // Don't start the query execution span for the insert portion of a CTAS query since it

Callers

nothing calls this directly

Calls 15

TUniqueIdToUniqueIdPBFunction · 0.85
TFinalizeParamsClass · 0.85
DebugActionNoFailFunction · 0.85
PrintIdFunction · 0.85
discard_resultFunction · 0.85
AddChildMethod · 0.80
getMethod · 0.65

Tested by

no test coverage detected