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

Method MaterializeNextTuple

be/src/exec/system-table-scanner.cc:175–429  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

173}
174
175Status QueryScanner::MaterializeNextTuple(
176 MemPool* pool, Tuple* tuple, const TupleDescriptor* tuple_desc) {
177 using impala::workloadmgmt::IncludeField;
178 DCHECK(!query_records_.empty());
179 const QueryStateExpanded& query = *query_records_.front();
180 const QueryStateRecord& record = *query.base_state;
181 ExecEnv* exec_env = ExecEnv::GetInstance();
182 // Verify there are no clustering columns (partitions) to offset col_pos.
183 DCHECK_EQ(0, tuple_desc->table_desc()->num_clustering_cols());
184 for (const SlotDescriptor* slot_desc : tuple_desc->slots()) {
185 void* slot = tuple->GetSlot(slot_desc->tuple_offset());
186
187 switch (slot_desc->col_pos()) {
188 case TQueryTableColumn::CLUSTER_ID:
189 RETURN_IF_ERROR(WriteStringSlot(FLAGS_cluster_id, pool, slot));
190 break;
191 case TQueryTableColumn::QUERY_ID:
192 RETURN_IF_ERROR(WriteStringSlot(PrintId(record.id), pool, slot));
193 break;
194 case TQueryTableColumn::SESSION_ID:
195 RETURN_IF_ERROR(WriteStringSlot(PrintId(query.session_id), pool, slot));
196 break;
197 case TQueryTableColumn::SESSION_TYPE:
198 RETURN_IF_ERROR(WriteStringSlot(to_string(query.session_type), pool, slot));
199 break;
200 case TQueryTableColumn::HIVESERVER2_PROTOCOL_VERSION:
201 if (query.session_type == TSessionType::HIVESERVER2) {
202 RETURN_IF_ERROR(WriteStringSlot(
203 query.hiveserver2_protocol_version_formatted(), pool, slot));
204 }
205 break;
206 case TQueryTableColumn::DB_USER:
207 RETURN_IF_ERROR(WriteStringSlot(record.effective_user, pool, slot));
208 break;
209 case TQueryTableColumn::DB_USER_CONNECTION:
210 RETURN_IF_ERROR(WriteStringSlot(query.db_user_connection, pool, slot));
211 break;
212 case TQueryTableColumn::DB_NAME:
213 RETURN_IF_ERROR(WriteStringSlot(record.default_db, pool, slot));
214 break;
215 case TQueryTableColumn::IMPALA_COORDINATOR:
216 RETURN_IF_ERROR(WriteStringSlot(
217 TNetworkAddressToString(exec_env->configured_backend_address()), pool, slot));
218 break;
219 case TQueryTableColumn::QUERY_STATUS:
220 RETURN_IF_ERROR(WriteStringSlot(record.query_status.ok() ?
221 "OK" : record.query_status.msg().msg(), pool, slot));
222 break;
223 case TQueryTableColumn::QUERY_STATE:
224 RETURN_IF_ERROR(WriteStringSlot(record.query_state, pool, slot));
225 break;
226 case TQueryTableColumn::IMPALA_QUERY_END_STATE:
227 RETURN_IF_ERROR(WriteStringSlot(query.impala_query_end_state, pool, slot));
228 break;
229 case TQueryTableColumn::QUERY_TYPE:
230 RETURN_IF_ERROR(WriteStringSlot(to_string(record.stmt_type), pool, slot));
231 break;
232 case TQueryTableColumn::NETWORK_ADDRESS:

Callers

nothing calls this directly

Calls 15

PrintIdFunction · 0.85
TNetworkAddressToStringFunction · 0.85
WriteUnixTimestampSlotFunction · 0.85
UnixMicrosFunction · 0.85
WriteDecimalSlotFunction · 0.85
WriteBigIntSlotFunction · 0.85
maxFunction · 0.85
WriteIntSlotFunction · 0.85
WriteEventFunction · 0.85
PrintTableListFunction · 0.85
IncludeFieldFunction · 0.85
joinFunction · 0.85

Tested by

no test coverage detected