MCPcopy Create free account
hub / github.com/bytedance/bolt / write

Method write

bolt/exec/TaskTraceWriter.cpp:50–80  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

48}
49
50void TaskTraceMetadataWriter::write(
51 const std::shared_ptr<core::QueryCtx>& queryCtx,
52 const core::PlanNodePtr& planNode) {
53 BOLT_CHECK(!finished_, "Query metadata can only be written once");
54 finished_ = true;
55 folly::dynamic queryConfigObj = folly::dynamic::object;
56 const auto configValues = queryCtx->queryConfig().rawConfigsCopy();
57 for (const auto& [key, value] : configValues) {
58 queryConfigObj[key] = value;
59 }
60
61 folly::dynamic connectorPropertiesObj = folly::dynamic::object;
62 for (const auto& [connectorId, configs] :
63 queryCtx->connectorSessionProperties()) {
64 folly::dynamic obj = folly::dynamic::object;
65 for (const auto& [key, value] : configs->rawConfigsCopy()) {
66 obj[key] = value;
67 }
68 connectorPropertiesObj[connectorId] = obj;
69 }
70
71 folly::dynamic metaObj = folly::dynamic::object;
72 metaObj[TraceTraits::kQueryConfigKey] = queryConfigObj;
73 metaObj[TraceTraits::kConnectorPropertiesKey] = connectorPropertiesObj;
74 metaObj[TraceTraits::kPlanNodeKey] = planNode->serialize();
75
76 const auto metaStr = folly::toJson(metaObj);
77 const auto file = fs_->openFileForWrite(traceFilePath_);
78 file->append(metaStr);
79 file->close();
80}
81
82} // namespace bytedance::bolt::exec::trace

Callers

nothing calls this directly

Calls 7

toJsonFunction · 0.85
rawConfigsCopyMethod · 0.45
serializeMethod · 0.45
openFileForWriteMethod · 0.45
appendMethod · 0.45
closeMethod · 0.45

Tested by

no test coverage detected