summaryrefslogtreecommitdiff
path: root/sql/sql_string.cc
diff options
context:
space:
mode:
authorRamil Kalimullin <ramil@mysql.com>2009-05-21 13:06:43 +0500
committerRamil Kalimullin <ramil@mysql.com>2009-05-21 13:06:43 +0500
commit985df4dcdc734ac3b63d6829b417302649c20104 (patch)
tree0185f68987e2f6ff26e9d6e768a54ce71ea7fbbb /sql/sql_string.cc
parent60955e54a2514decef0369350969f5d06414e688 (diff)
downloadmariadb-git-985df4dcdc734ac3b63d6829b417302649c20104.tar.gz
Fix for bug#44743: Join in combination with concat does not always work
bug#44766: valgrind error when using convert() in a subquery Problem: input and output buffers may be the same converting a string to some charset. That may lead to wrong results/valgrind warnings. Fix: use different buffers. mysql-test/r/cast.result: Fix for bug#44743: Join in combination with concat does not always work bug#44766: valgrind error when using convert() in a subquery - test result. mysql-test/r/func_concat.result: Fix for bug#44743: Join in combination with concat does not always work bug#44766: valgrind error when using convert() in a subquery - test result. mysql-test/t/cast.test: Fix for bug#44743: Join in combination with concat does not always work bug#44766: valgrind error when using convert() in a subquery - test case. mysql-test/t/func_concat.test: Fix for bug#44743: Join in combination with concat does not always work bug#44766: valgrind error when using convert() in a subquery - test case. sql/item.cc: Fix for bug#44743: Join in combination with concat does not always work bug#44766: valgrind error when using convert() in a subquery - comment added. sql/item_strfunc.cc: Fix for bug#44743: Join in combination with concat does not always work bug#44766: valgrind error when using convert() in a subquery - '&args[0]->str_value' used as a parameter of args[0]->val_str(), as 'str' may be equal to 'str_value' which we use as the output buffer converting strings. sql/sql_string.cc: Fix for bug#44743: Join in combination with concat does not always work bug#44766: valgrind error when using convert() in a subquery - input and output buffers must NOT be the same.
Diffstat (limited to 'sql/sql_string.cc')
-rw-r--r--sql/sql_string.cc3
1 files changed, 3 insertions, 0 deletions
diff --git a/sql/sql_string.cc b/sql/sql_string.cc
index 1dd7b55d136..61731f3b984 100644
--- a/sql/sql_string.cc
+++ b/sql/sql_string.cc
@@ -328,6 +328,9 @@ bool String::copy(const char *str, uint32 arg_length,
CHARSET_INFO *from_cs, CHARSET_INFO *to_cs, uint *errors)
{
uint32 offset;
+
+ DBUG_ASSERT(str != Ptr);
+
if (!needs_conversion(arg_length, from_cs, to_cs, &offset))
{
*errors= 0;