diff options
author | unknown <bar@mysql.com/bar.intranet.mysql.r18.ru> | 2006-11-09 14:41:34 +0400 |
---|---|---|
committer | unknown <bar@mysql.com/bar.intranet.mysql.r18.ru> | 2006-11-09 14:41:34 +0400 |
commit | 7856d3fd69ad9133945423fd79fd6999ca3b882f (patch) | |
tree | 4128d47fe2a8d79671addfc8d18cbde6885ce7cd /sql/field.cc | |
parent | bc131e2b82709509978f164b135b0ead23bea524 (diff) | |
download | mariadb-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.cc | 1 |
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; } |