diff --git a/mysql-test/r/ctype_utf8.result b/mysql-test/r/ctype_utf8.result index 6572947e8aa..5e4895b6d9c 100644 --- a/mysql-test/r/ctype_utf8.result +++ b/mysql-test/r/ctype_utf8.result @@ -5954,6 +5954,13 @@ SET @arg00=_binary 0xFF; EXECUTE stmt USING @arg00; ERROR HY000: Invalid utf8 character string: 'FF' DEALLOCATE PREPARE stmt; +SET NAMES latin1; +PREPARE stmt FROM "SELECT CONCAT(_utf8'a' COLLATE utf8_unicode_ci, ?)"; +EXECUTE stmt USING @no_such_var; +CONCAT(_utf8'a' COLLATE utf8_unicode_ci, ?) +NULL +DEALLOCATE PREPARE stmt; +SET NAMES utf8; # # End of 10.0 tests # diff --git a/mysql-test/t/ctype_utf8.test b/mysql-test/t/ctype_utf8.test index 086a66c68cb..3c5857daee9 100644 --- a/mysql-test/t/ctype_utf8.test +++ b/mysql-test/t/ctype_utf8.test @@ -1675,6 +1675,11 @@ SET @arg00=_binary 0xFF; --error ER_INVALID_CHARACTER_STRING EXECUTE stmt USING @arg00; DEALLOCATE PREPARE stmt; +SET NAMES latin1; +PREPARE stmt FROM "SELECT CONCAT(_utf8'a' COLLATE utf8_unicode_ci, ?)"; +EXECUTE stmt USING @no_such_var; +DEALLOCATE PREPARE stmt; +SET NAMES utf8; --echo # --echo # End of 10.0 tests diff --git a/sql/item.cc b/sql/item.cc index f3d8c4f54ad..790afe1f775 100644 --- a/sql/item.cc +++ b/sql/item.cc @@ -1274,6 +1274,8 @@ Item *Item_param::safe_charset_converter(CHARSET_INFO *tocs) */ if (const_item()) { + if (state == NULL_VALUE) + return this; uint cnv_errors; String *ostr= val_str(&cnvstr); if (!needs_charset_converter(tocs))