173
173
free((char*) uc);
176
void session_init_client_charset(Session *session, uint32_t cs_number)
179
Use server character set and collation if
180
- opt_character_set_client_handshake is not set
181
- client has not specified a character set
182
- client character set is the same as the servers
183
- client character set doesn't exists in server
185
if (!opt_character_set_client_handshake ||
186
!(session->variables.character_set_client= get_charset(cs_number, MYF(0))) ||
187
!my_strcasecmp(&my_charset_utf8_general_ci,
188
global_system_variables.character_set_client->name,
189
session->variables.character_set_client->name))
191
session->variables.character_set_client=
192
global_system_variables.character_set_client;
193
session->variables.collation_connection=
194
global_system_variables.collation_connection;
195
session->variables.character_set_results=
196
global_system_variables.character_set_results;
200
session->variables.character_set_results=
201
session->variables.collation_connection=
202
session->variables.character_set_client;
208
177
Initialize connection threads
316
285
session->client_capabilities|= ((uint32_t) uint2korr(net->read_pos+2)) << 16;
317
286
session->max_client_packet_length= uint4korr(net->read_pos+4);
318
session_init_client_charset(session, (uint) net->read_pos[8]);
319
287
session->update_charset();
320
288
end= (char*) net->read_pos+32;