MCPcopy Create free account
hub / github.com/ClickHouse/ClickHouse / read

Method read

src/Interpreters/ClientInfo.cpp:222–326  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

220
221
222void ClientInfo::read(ReadBuffer & in, UInt64 client_protocol_revision, bool with_client_agent)
223{
224 if (client_protocol_revision < DBMS_MIN_REVISION_WITH_CLIENT_INFO)
225 throw Exception(ErrorCodes::LOGICAL_ERROR, "Method ClientInfo::read is called for unsupported client revision");
226
227 UInt8 read_query_kind = 0;
228 readBinary(read_query_kind, in);
229 query_kind = QueryKind(read_query_kind);
230 if (empty())
231 return;
232
233 readBinary(initial_user, in);
234 readBinary(initial_query_id, in);
235
236 String initial_address_string;
237 readBinary(initial_address_string, in);
238 initial_address = std::make_shared<Poco::Net::SocketAddress>(initial_address_string);
239
240 if (client_protocol_revision >= DBMS_MIN_PROTOCOL_VERSION_WITH_INITIAL_QUERY_START_TIME)
241 {
242 readBinary(initial_query_start_time_microseconds, in);
243 initial_query_start_time = initial_query_start_time_microseconds / 1000000;
244 }
245
246 UInt8 read_interface = 0;
247 readBinary(read_interface, in);
248 interface = Interface(read_interface);
249
250 if (interface == Interface::TCP)
251 {
252 readBinary(os_user, in);
253 readBinary(client_hostname, in);
254 readBinary(client_name, in);
255 readVarUInt(client_version_major, in);
256 readVarUInt(client_version_minor, in);
257 readVarUInt(client_tcp_protocol_version, in);
258 }
259 else if (interface == Interface::HTTP)
260 {
261 UInt8 read_http_method = 0;
262 readBinary(read_http_method, in);
263 http_method = HTTPMethod(read_http_method);
264
265 readBinary(http_user_agent, in);
266
267 if (client_protocol_revision >= DBMS_MIN_REVISION_WITH_X_FORWARDED_FOR_IN_CLIENT_INFO)
268 readBinary(forwarded_for, in);
269
270 if (client_protocol_revision >= DBMS_MIN_REVISION_WITH_REFERER_IN_CLIENT_INFO)
271 readBinary(http_referer, in);
272 }
273
274 if (client_protocol_revision >= DBMS_MIN_REVISION_WITH_QUOTA_KEY_IN_CLIENT_INFO)
275 readBinary(quota_key, in);
276
277 if (client_protocol_revision >= DBMS_MIN_PROTOCOL_VERSION_WITH_DISTRIBUTED_DEPTH)
278 readVarUInt(distributed_depth, in);
279

Callers 5

deserializeMethod · 0.45
validateModuleFileFunction · 0.45
executeFetchColumnsMethod · 0.45
loadRightBlockMethod · 0.45
generateMethod · 0.45

Calls 5

InterfaceEnum · 0.85
HTTPMethodEnum · 0.85
ExceptionClass · 0.70
QueryKindEnum · 0.70
readBinaryFunction · 0.50

Tested by

no test coverage detected