@@ -26,13 +26,14 @@ namespace ErrorCodes
2626MySQLClient::MySQLClient (const String & host_, UInt16 port_, const String & user_, const String & password_)
2727 : host(host_), port(port_), user(user_), password(std::move(password_))
2828{
29- client_capability_flags = CLIENT_PROTOCOL_41 | CLIENT_PLUGIN_AUTH | CLIENT_SECURE_CONNECTION;
29+ mysql_context. client_capabilities = CLIENT_PROTOCOL_41 | CLIENT_PLUGIN_AUTH | CLIENT_SECURE_CONNECTION;
3030}
3131
3232MySQLClient::MySQLClient (MySQLClient && other)
3333 : host(std::move(other.host)), port(other.port), user(std::move(other.user)), password(std::move(other.password))
34- , client_capability_flags (other.client_capability_flags )
34+ , mysql_context (other.mysql_context )
3535{
36+ mysql_context.sequence_id = 0 ;
3637}
3738
3839void MySQLClient::connect ()
@@ -56,7 +57,7 @@ void MySQLClient::connect()
5657
5758 in = std::make_shared<ReadBufferFromPocoSocket>(*socket);
5859 out = std::make_shared<WriteBufferFromPocoSocket>(*socket);
59- packet_endpoint = std::make_shared<PacketEndpoint> (*in, *out, seq );
60+ packet_endpoint = mysql_context. makeEndpoint (*in, *out);
6061 handshake ();
6162}
6263
@@ -68,7 +69,7 @@ void MySQLClient::disconnect()
6869 socket->close ();
6970 socket = nullptr ;
7071 connected = false ;
71- seq = 0 ;
72+ mysql_context. sequence_id = 0 ;
7273}
7374
7475// / https://dev.mysql.com/doc/internals/en/connection-phase-packets.html
@@ -87,10 +88,10 @@ void MySQLClient::handshake()
8788 String auth_plugin_data = native41.getAuthPluginData ();
8889
8990 HandshakeResponse handshake_response (
90- client_capability_flags , MAX_PACKET_LENGTH, charset_utf8, user, " " , auth_plugin_data, mysql_native_password);
91+ mysql_context. client_capabilities , MAX_PACKET_LENGTH, charset_utf8, user, " " , auth_plugin_data, mysql_native_password);
9192 packet_endpoint->sendPacket <HandshakeResponse>(handshake_response, true );
9293
93- ResponsePacket packet_response (client_capability_flags , true );
94+ ResponsePacket packet_response (mysql_context. client_capabilities , true );
9495 packet_endpoint->receivePacket (packet_response);
9596 packet_endpoint->resetSequenceId ();
9697
@@ -105,7 +106,7 @@ void MySQLClient::writeCommand(char command, String query)
105106 WriteCommand write_command (command, query);
106107 packet_endpoint->sendPacket <WriteCommand>(write_command, true );
107108
108- ResponsePacket packet_response (client_capability_flags );
109+ ResponsePacket packet_response (mysql_context. client_capabilities );
109110 packet_endpoint->receivePacket (packet_response);
110111 switch (packet_response.getType ())
111112 {
@@ -124,7 +125,7 @@ void MySQLClient::registerSlaveOnMaster(UInt32 slave_id)
124125 RegisterSlave register_slave (slave_id);
125126 packet_endpoint->sendPacket <RegisterSlave>(register_slave, true );
126127
127- ResponsePacket packet_response (client_capability_flags );
128+ ResponsePacket packet_response (mysql_context. client_capabilities );
128129 packet_endpoint->receivePacket (packet_response);
129130 packet_endpoint->resetSequenceId ();
130131 if (packet_response.getType () == PACKET_ERR)
0 commit comments