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

Method TLineageToJSON

be/src/util/lineage-util.h:87–129  ·  view source on GitHub ↗

Serializes a TLineageGraph object to JSON

Source from the content-addressed store, hash-verified

85 public:
86 /// Serializes a TLineageGraph object to JSON
87 static void TLineageToJSON(const TLineageGraph &lineage, string* out) {
88 rapidjson::StringBuffer buffer;
89 rapidjson::Writer<rapidjson::StringBuffer> writer(buffer);
90 writer.StartObject();
91 writer.String("queryText");
92 writer.String(lineage.query_text);
93 writer.String("operationType");
94 writer.String(lineage.operation_type);
95 writer.String("queryId");
96 writer.String(PrintId(lineage.query_id));
97 writer.String("hash");
98 writer.String(lineage.hash);
99 writer.String("user");
100 writer.String(lineage.user);
101 // write query start time
102 writer.String("timestamp");
103 writer.Int64(lineage.started);
104 // write query end time
105 writer.String("endTime");
106 DCHECK(lineage.ended >= lineage.started);
107 writer.Int64(lineage.ended);
108 // Write edges
109 writer.String("edges");
110 writer.StartArray();
111 for(int i=0; i < lineage.edges.size(); ++i) {
112 TMultiEdgeToJSON(lineage.edges[i], &writer);
113 }
114 writer.EndArray();
115 // Write vertices
116 writer.String("vertices");
117 writer.StartArray();
118 for(int i=0; i < lineage.vertices.size(); ++i) {
119 TVertexToJSON(lineage.vertices[i], &writer);
120 }
121 writer.EndArray();
122 // Write location if it is available.
123 if (lineage.__isset.table_location) {
124 writer.String("tableLocation");
125 writer.String(lineage.table_location);
126 }
127 writer.EndObject();
128 *out = buffer.GetString();
129 }
130};
131
132}

Callers

nothing calls this directly

Calls 9

PrintIdFunction · 0.85
StartObjectMethod · 0.45
StringMethod · 0.45
Int64Method · 0.45
StartArrayMethod · 0.45
sizeMethod · 0.45
EndArrayMethod · 0.45
EndObjectMethod · 0.45
GetStringMethod · 0.45

Tested by

no test coverage detected