summaryrefslogtreecommitdiff
path: root/sql/sql_time.cc
diff options
context:
space:
mode:
authorAlexander Barkov <bar@mariadb.org>2016-12-19 14:28:08 +0400
committerAlexander Barkov <bar@mariadb.org>2016-12-19 14:28:08 +0400
commit2f6fede8d5f7e98319b4b7b557bd565fdb42fac3 (patch)
treef57ad1b04932d80eb36f05a5ef55cb62dece012c /sql/sql_time.cc
parentc4d9dc705b781bb155aab8f04cece2b87116d3c1 (diff)
downloadmariadb-git-2f6fede8d5f7e98319b4b7b557bd565fdb42fac3.tar.gz
MDEV-10524 Assertion `arg1_int >= 0' failed in Item_func_additive_op::result_precision()
This change is a backport from 10.0 to 5.5 for: 1. The full patch for: MDEV-4841 Wrong character set of ADDTIME() and DATE_ADD() 9adb6e991ec87b65d04929f115d9d0c899e4ab19 2. A small fragment of: MDEV-5298 Illegal mix of collations on timestamp 03f6778d61a74bdd7d09103a16473a2a5624cf66 which overrides Item_temporal_hybrid_func::cmp_type(), and adds a new line into cache_temporal_4265.result.
Diffstat (limited to 'sql/sql_time.cc')
-rw-r--r--sql/sql_time.cc17
1 files changed, 17 insertions, 0 deletions
diff --git a/sql/sql_time.cc b/sql/sql_time.cc
index c5c65391758..d912a7b78d6 100644
--- a/sql/sql_time.cc
+++ b/sql/sql_time.cc
@@ -838,6 +838,23 @@ const char *get_date_time_format_str(KNOWN_DATE_TIME_FORMAT *format,
}
}
+
+/**
+ Convert TIME/DATE/DATETIME value to String.
+ @param l_time DATE value
+ @param OUT str String to convert to
+ @param dec Number of fractional digits.
+*/
+bool my_TIME_to_str(const MYSQL_TIME *ltime, String *str, uint dec)
+{
+ if (str->alloc(MAX_DATE_STRING_REP_LENGTH))
+ return true;
+ str->set_charset(&my_charset_numeric);
+ str->length(my_TIME_to_str(ltime, const_cast<char*>(str->ptr()), dec));
+ return false;
+}
+
+
void make_truncated_value_warning(THD *thd,
MYSQL_ERROR::enum_warning_level level,
const ErrConv *sval,