diff options
-rw-r--r-- | mysql-test/r/union.result | 14 | ||||
-rw-r--r-- | mysql-test/t/union.test | 10 | ||||
-rw-r--r-- | sql/item.cc | 4 |
3 files changed, 26 insertions, 2 deletions
diff --git a/mysql-test/r/union.result b/mysql-test/r/union.result index b315ae9a3f5..1b5fa69d713 100644 --- a/mysql-test/r/union.result +++ b/mysql-test/r/union.result @@ -1235,6 +1235,20 @@ show columns from t2; Field Type Null Key Default Extra a varchar(3) YES NULL drop table t2, t1; +CREATE TABLE t1 (a mediumtext); +CREATE TABLE t2 (b varchar(20)); +INSERT INTO t1 VALUES ('a'),('b'); +SELECT left(a,100000000) FROM t1 UNION SELECT b FROM t2; +left(a,100000000) +a +b +create table t3 SELECT left(a,100000000) FROM t1 UNION SELECT b FROM t2; +show create table t3; +Table Create Table +t3 CREATE TABLE `t3` ( + `left(a,100000000)` longtext +) ENGINE=MyISAM DEFAULT CHARSET=latin1 +drop tables t1,t2,t3; create table t1 ( id int not null auto_increment, primary key (id), col1 int); insert into t1 (col1) values (2),(3),(4),(5),(6); select 99 union all select id from t1 order by 1; diff --git a/mysql-test/t/union.test b/mysql-test/t/union.test index ecd98428b5a..3666e3c3127 100644 --- a/mysql-test/t/union.test +++ b/mysql-test/t/union.test @@ -743,6 +743,16 @@ create table t2 select a from t1 union select b from t1; show columns from t2; drop table t2, t1; +# +# correct conversion long string to TEXT (BUG#10025) +# +CREATE TABLE t1 (a mediumtext); +CREATE TABLE t2 (b varchar(20)); +INSERT INTO t1 VALUES ('a'),('b'); +SELECT left(a,100000000) FROM t1 UNION SELECT b FROM t2; +create table t3 SELECT left(a,100000000) FROM t1 UNION SELECT b FROM t2; +show create table t3; +drop tables t1,t2,t3; # # Bug #10032 Bug in parsing UNION with ORDER BY when one node does not use FROM diff --git a/sql/item.cc b/sql/item.cc index c43421117e5..5372ad58efa 100644 --- a/sql/item.cc +++ b/sql/item.cc @@ -3100,8 +3100,8 @@ Field *Item_type_holder::make_field_by_type(TABLE *table) enum_set_typelib, collation.collation); case MYSQL_TYPE_VAR_STRING: table->db_create_options|= HA_OPTION_PACK_RECORD; - return new Field_string(max_length, maybe_null, name, table, - collation.collation); + fld_type= MYSQL_TYPE_STRING; + break; default: break; } |