mirror of
https://github.com/MariaDB/server.git
synced 2025-01-15 19:42:28 +01:00
MDEV-5138 Numerous test failures in "mtr --ps --embedded".
The function Protocol::net_store_data(a, b, CHARSET_A, CHARSET_B) should be adapted to be working in the embedded server as it's done with the Protocol::net_store_data(a, b). That new function renamed as net_store_data_cs, so we can make it virtual.
This commit is contained in:
parent
05722f06b2
commit
7d1033115a
3 changed files with 14 additions and 7 deletions
|
@ -1238,7 +1238,7 @@ bool Protocol::net_store_data(const uchar *from, size_t length)
|
|||
}
|
||||
|
||||
|
||||
bool Protocol::net_store_data(const uchar *from, size_t length,
|
||||
bool Protocol::net_store_data_cs(const uchar *from, size_t length,
|
||||
CHARSET_INFO *from_cs, CHARSET_INFO *to_cs)
|
||||
{
|
||||
uint conv_length= to_cs->mbmaxlen * length / from_cs->mbminlen;
|
||||
|
|
|
@ -64,7 +64,7 @@ bool Protocol_binary::net_store_data(const uchar *from, size_t length)
|
|||
|
||||
|
||||
/*
|
||||
net_store_data() - extended version with character set conversion.
|
||||
net_store_data_cs() - extended version with character set conversion.
|
||||
|
||||
It is optimized for short strings whose length after
|
||||
conversion is garanteed to be less than 251, which accupies
|
||||
|
@ -76,8 +76,12 @@ bool Protocol_binary::net_store_data(const uchar *from, size_t length)
|
|||
*/
|
||||
|
||||
#ifndef EMBEDDED_LIBRARY
|
||||
bool Protocol::net_store_data(const uchar *from, size_t length,
|
||||
bool Protocol::net_store_data_cs(const uchar *from, size_t length,
|
||||
CHARSET_INFO *from_cs, CHARSET_INFO *to_cs)
|
||||
#else
|
||||
bool Protocol_binary::net_store_data_cs(const uchar *from, size_t length,
|
||||
CHARSET_INFO *from_cs, CHARSET_INFO *to_cs)
|
||||
#endif
|
||||
{
|
||||
uint dummy_errors;
|
||||
/* Calculate maxumum possible result length */
|
||||
|
@ -117,7 +121,6 @@ bool Protocol::net_store_data(const uchar *from, size_t length,
|
|||
packet->length((uint) (to - packet->ptr()));
|
||||
return 0;
|
||||
}
|
||||
#endif
|
||||
|
||||
|
||||
/**
|
||||
|
@ -1007,7 +1010,7 @@ bool Protocol::store_string_aux(const char *from, size_t length,
|
|||
tocs != &my_charset_bin)
|
||||
{
|
||||
/* Store with conversion */
|
||||
return net_store_data((uchar*) from, length, fromcs, tocs);
|
||||
return net_store_data_cs((uchar*) from, length, fromcs, tocs);
|
||||
}
|
||||
/* Store without conversion */
|
||||
return net_store_data((uchar*) from, length);
|
||||
|
|
|
@ -43,14 +43,16 @@ protected:
|
|||
uint field_count;
|
||||
#ifndef EMBEDDED_LIBRARY
|
||||
bool net_store_data(const uchar *from, size_t length);
|
||||
bool net_store_data_cs(const uchar *from, size_t length,
|
||||
CHARSET_INFO *fromcs, CHARSET_INFO *tocs);
|
||||
#else
|
||||
virtual bool net_store_data(const uchar *from, size_t length);
|
||||
virtual bool net_store_data_cs(const uchar *from, size_t length,
|
||||
CHARSET_INFO *fromcs, CHARSET_INFO *tocs);
|
||||
char **next_field;
|
||||
MYSQL_FIELD *next_mysql_field;
|
||||
MEM_ROOT *alloc;
|
||||
#endif
|
||||
bool net_store_data(const uchar *from, size_t length,
|
||||
CHARSET_INFO *fromcs, CHARSET_INFO *tocs);
|
||||
bool store_string_aux(const char *from, size_t length,
|
||||
CHARSET_INFO *fromcs, CHARSET_INFO *tocs);
|
||||
|
||||
|
@ -179,6 +181,8 @@ public:
|
|||
#ifdef EMBEDDED_LIBRARY
|
||||
virtual bool write();
|
||||
bool net_store_data(const uchar *from, size_t length);
|
||||
bool net_store_data_cs(const uchar *from, size_t length,
|
||||
CHARSET_INFO *fromcs, CHARSET_INFO *tocs);
|
||||
#endif
|
||||
virtual bool store_null();
|
||||
virtual bool store_tiny(longlong from);
|
||||
|
|
Loading…
Reference in a new issue