#pragma once #include #include #include #include namespace DB { namespace ErrorCodes { } class ReadBuffer; class WriteBuffer; /// The following are request-response messages for TablesStatus request of the client-server protocol. /// Client can ask for about a set of tables and the server will respond with the following information for each table: /// - Is the table Replicated? /// - If yes, replication delay for that table. /// /// For nonexistent tables there will be no TableStatus entry in the response. struct TableStatus { bool is_replicated = false; UInt32 absolute_delay = 0; void write(WriteBuffer & out) const; void read(ReadBuffer & in); }; struct TablesStatusRequest { std::unordered_set tables; void write(WriteBuffer & out, UInt64 server_protocol_revision) const; void read(ReadBuffer & in, UInt64 client_protocol_revision); }; struct TablesStatusResponse { std::unordered_map table_states_by_id; void write(WriteBuffer & out, UInt64 client_protocol_revision) const; void read(ReadBuffer & in, UInt64 server_protocol_revision); }; }