mirror of
https://github.com/MariaDB/server.git
synced 2025-08-08 11:22:35 +03:00
Merge 10.5 into 10.6
This commit is contained in:
@@ -262,9 +262,10 @@ protected:
|
||||
virtual bool store_long(longlong from);
|
||||
virtual bool store_longlong(longlong from, bool unsigned_flag);
|
||||
virtual bool store_decimal(const my_decimal *);
|
||||
virtual bool store(const char *from, size_t length, CHARSET_INFO *cs);
|
||||
virtual bool store(const char *from, size_t length,
|
||||
CHARSET_INFO *fromcs, CHARSET_INFO *tocs);
|
||||
virtual bool store_str(const char *from, size_t length,
|
||||
CHARSET_INFO *fromcs,
|
||||
my_repertoire_t from_repertoire,
|
||||
CHARSET_INFO *tocs);
|
||||
virtual bool store(MYSQL_TIME *time, int decimals);
|
||||
virtual bool store_date(MYSQL_TIME *time);
|
||||
virtual bool store_time(MYSQL_TIME *time, int decimals);
|
||||
@@ -287,7 +288,9 @@ protected:
|
||||
virtual bool send_error(uint sql_errno, const char *err_msg, const char* sqlstate);
|
||||
private:
|
||||
bool store_string(const char *str, size_t length,
|
||||
CHARSET_INFO *src_cs, CHARSET_INFO *dst_cs);
|
||||
CHARSET_INFO *src_cs,
|
||||
my_repertoire_t src_repertoire,
|
||||
CHARSET_INFO *dst_cs);
|
||||
|
||||
bool store_column(const void *data, size_t length);
|
||||
void opt_add_row_to_rset();
|
||||
@@ -5270,14 +5273,14 @@ bool Protocol_local::store_column(const void *data, size_t length)
|
||||
|
||||
bool
|
||||
Protocol_local::store_string(const char *str, size_t length,
|
||||
CHARSET_INFO *src_cs, CHARSET_INFO *dst_cs)
|
||||
CHARSET_INFO *src_cs,
|
||||
my_repertoire_t src_repertoire,
|
||||
CHARSET_INFO *dst_cs)
|
||||
{
|
||||
/* Store with conversion */
|
||||
uint error_unused;
|
||||
|
||||
if (dst_cs && !my_charset_same(src_cs, dst_cs) &&
|
||||
src_cs != &my_charset_bin &&
|
||||
dst_cs != &my_charset_bin)
|
||||
if (needs_conversion(src_cs, src_repertoire, dst_cs))
|
||||
{
|
||||
if (unlikely(convert->copy(str, length, src_cs, dst_cs, &error_unused)))
|
||||
return TRUE;
|
||||
@@ -5334,24 +5337,14 @@ bool Protocol_local::store_decimal(const my_decimal *value)
|
||||
}
|
||||
|
||||
|
||||
/** Convert to cs_results and store a string. */
|
||||
|
||||
bool Protocol_local::store(const char *str, size_t length,
|
||||
CHARSET_INFO *src_cs)
|
||||
{
|
||||
CHARSET_INFO *dst_cs;
|
||||
|
||||
dst_cs= m_connection->m_thd->variables.character_set_results;
|
||||
return store_string(str, length, src_cs, dst_cs);
|
||||
}
|
||||
|
||||
|
||||
/** Store a string. */
|
||||
|
||||
bool Protocol_local::store(const char *str, size_t length,
|
||||
CHARSET_INFO *src_cs, CHARSET_INFO *dst_cs)
|
||||
bool Protocol_local::store_str(const char *str, size_t length,
|
||||
CHARSET_INFO *src_cs,
|
||||
my_repertoire_t from_repertoire,
|
||||
CHARSET_INFO *dst_cs)
|
||||
{
|
||||
return store_string(str, length, src_cs, dst_cs);
|
||||
return store_string(str, length, src_cs, from_repertoire, dst_cs);
|
||||
}
|
||||
|
||||
|
||||
@@ -5360,7 +5353,7 @@ bool Protocol_local::store(const char *str, size_t length,
|
||||
bool Protocol_local::store(MYSQL_TIME *time, int decimals)
|
||||
{
|
||||
if (decimals != AUTO_SEC_PART_DIGITS)
|
||||
my_time_trunc(time, decimals);
|
||||
my_datetime_trunc(time, decimals);
|
||||
return store_column(time, sizeof(MYSQL_TIME));
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user