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

Method TExecuteStatementReqToTQueryContext

be/src/service/impala-hs2-server.cc:255–298  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

253}
254
255Status ImpalaServer::TExecuteStatementReqToTQueryContext(
256 const TExecuteStatementReq execute_request, TQueryCtx* query_ctx) {
257 query_ctx->client_request.stmt = execute_request.statement;
258 QueryOptionsMask set_query_options_mask;
259 {
260 shared_ptr<SessionState> session_state;
261 TUniqueId session_id;
262 TUniqueId secret;
263 RETURN_IF_ERROR(THandleIdentifierToTUniqueId(execute_request.sessionHandle.sessionId,
264 &session_id, &secret));
265
266 RETURN_IF_ERROR(
267 GetSessionState(session_id, SecretArg::Session(secret), &session_state));
268 session_state->ToThrift(session_id, &query_ctx->session);
269 lock_guard<mutex> l(session_state->lock);
270 query_ctx->client_request.query_options = session_state->QueryOptions();
271 set_query_options_mask = session_state->set_query_options_mask;
272 }
273
274 if (execute_request.__isset.confOverlay) {
275 TQueryOptions overlay;
276 QueryOptionsMask overlay_mask;
277 map<string, string>::const_iterator conf_itr = execute_request.confOverlay.begin();
278 for (; conf_itr != execute_request.confOverlay.end(); ++conf_itr) {
279 if (conf_itr->first == IMPALA_RESULT_CACHING_OPT) continue;
280 if (conf_itr->first == ChildQuery::PARENT_QUERY_OPT) {
281 if (ParseId(conf_itr->second, &query_ctx->parent_query_id)) {
282 query_ctx->__isset.parent_query_id = true;
283 }
284 continue;
285 }
286 RETURN_IF_ERROR(SetQueryOption(conf_itr->first, conf_itr->second,
287 &overlay, &overlay_mask));
288 }
289 OverlayQueryOptions(overlay, overlay_mask, &query_ctx->client_request.query_options);
290 set_query_options_mask |= overlay_mask;
291 }
292 // Only query options not set in the session or confOverlay can be overridden by the
293 // pool options.
294 AddPoolConfiguration(query_ctx, ~set_query_options_mask);
295 VLOG_QUERY << "TClientRequest.queryOptions: "
296 << DebugQueryOptions(query_ctx->client_request.query_options);
297 return Status::OK();
298}
299
300// HiveServer2 API
301void ImpalaServer::OpenSession(TOpenSessionResp& return_val,

Callers

nothing calls this directly

Calls 7

SessionEnum · 0.85
ParseIdFunction · 0.85
OKFunction · 0.85
QueryOptionsMethod · 0.80
ToThriftMethod · 0.45
beginMethod · 0.45
endMethod · 0.45

Tested by

no test coverage detected