| 118 | } |
| 119 | |
| 120 | QueryState* QueryExecMgr::GetQueryState(const TUniqueId& query_id) { |
| 121 | QueryState* qs = nullptr; |
| 122 | int refcnt; |
| 123 | { |
| 124 | ScopedShardedMapRef<QueryState*> map_ref(query_id, |
| 125 | &ExecEnv::GetInstance()->query_exec_mgr()->qs_map_); |
| 126 | DCHECK(map_ref.get() != nullptr); |
| 127 | |
| 128 | auto it = map_ref->find(query_id); |
| 129 | if (it == map_ref->end()) return nullptr; |
| 130 | qs = it->second; |
| 131 | refcnt = qs->refcnt_.Add(1); |
| 132 | } |
| 133 | DCHECK(qs != nullptr && refcnt > 0); |
| 134 | VLOG_QUERY << "QueryState: query_id=" << PrintId(query_id) << " refcnt=" << refcnt; |
| 135 | return qs; |
| 136 | } |
| 137 | |
| 138 | QueryState* QueryExecMgr::GetOrCreateQueryState( |
| 139 | const TQueryCtx& query_ctx, int64_t mem_limit, bool* created) { |
no test coverage detected