summaryrefslogtreecommitdiff
path: root/sql/item.cc
diff options
context:
space:
mode:
authorAlexander Barkov <bar@mariadb.org>2017-09-15 12:25:06 +0400
committerAlexander Barkov <bar@mariadb.org>2017-09-15 12:25:06 +0400
commit434e283507e5e73d6b3873fff50daddb99cea4d6 (patch)
tree8a20fb10855bd57e7e9b24732eb40e01b11e47cc /sql/item.cc
parent65c94238f8651d596f78bc86ae680f31ca65b280 (diff)
downloadmariadb-git-434e283507e5e73d6b3873fff50daddb99cea4d6.tar.gz
MDEV-13685 Can not replay binary log due to Illegal mix of collations (latin1_swedish_ci,IMPLICIT) and (utf8mb4_general_ci,COERCIBLE) for operation 'concat'
Diffstat (limited to 'sql/item.cc')
-rw-r--r--sql/item.cc5
1 files changed, 4 insertions, 1 deletions
diff --git a/sql/item.cc b/sql/item.cc
index 6bd982f8854..0b603e1ad2c 100644
--- a/sql/item.cc
+++ b/sql/item.cc
@@ -1796,7 +1796,10 @@ bool Item_name_const::fix_fields(THD *thd, Item **ref)
{
set_name(item_name->ptr(), (uint) item_name->length(), system_charset_info);
}
- collation.set(value_item->collation.collation, DERIVATION_IMPLICIT);
+ if (value_item->collation.derivation == DERIVATION_NUMERIC)
+ collation.set_numeric();
+ else
+ collation.set(value_item->collation.collation, DERIVATION_IMPLICIT);
max_length= value_item->max_length;
decimals= value_item->decimals;
fixed= 1;