summaryrefslogtreecommitdiff
path: root/sql/field.cc
diff options
context:
space:
mode:
authorunknown <bar@mysql.com/bar.intranet.mysql.r18.ru>2006-11-09 14:41:34 +0400
committerunknown <bar@mysql.com/bar.intranet.mysql.r18.ru>2006-11-09 14:41:34 +0400
commit7856d3fd69ad9133945423fd79fd6999ca3b882f (patch)
tree4128d47fe2a8d79671addfc8d18cbde6885ce7cd /sql/field.cc
parentbc131e2b82709509978f164b135b0ead23bea524 (diff)
downloadmariadb-git-7856d3fd69ad9133945423fd79fd6999ca3b882f.tar.gz
Bug#21505 Create view - illegal mix of collation for operation 'UNION'
The problem was that any VIEW columns had always implicit derivation. Fix: derivation is now copied from the original expression given in VIEW definition. For example: - a VIEW column which comes from a string constant in CREATE VIEW definition have now coercible derivation. - a VIEW column having COLLATE clause in CREATE VIEW definition have now explicit derivation. mysql-test/r/ctype_utf8.result: Adding test case mysql-test/t/ctype_utf8.test: Adding test case sql/field.cc: Copying derivation from item to field. sql/field.h: Adding derivation and methods to get/set it into Field. sql/item.cc: Copying derivation from field to item. sql/item.h: Moving "enum Derivation" declaration from item.h to mysql_priv.h sql/mysql_priv.h: Moving "enum Derivation" declaration from item.h to mysql_priv.h sql/sql_select.cc: Copying derivation from item to field in create_tmp_field_from_item() and create_tmp_field().
Diffstat (limited to 'sql/field.cc')
-rw-r--r--sql/field.cc1
1 files changed, 1 insertions, 0 deletions
diff --git a/sql/field.cc b/sql/field.cc
index 745e48460b5..f04efc66dfd 100644
--- a/sql/field.cc
+++ b/sql/field.cc
@@ -1399,6 +1399,7 @@ Field_str::Field_str(char *ptr_arg,uint32 len_arg, uchar *null_ptr_arg,
field_charset=charset;
if (charset->state & MY_CS_BINSORT)
flags|=BINARY_FLAG;
+ field_derivation= DERIVATION_IMPLICIT;
}