Loading mysql-test/r/metadata.result +17 −0 Original line number Diff line number Diff line Loading @@ -181,4 +181,21 @@ c1 c2 3 3 DROP VIEW v1,v2; DROP TABLE t1,t2; CREATE TABLE t1 (i INT, d DATE); INSERT INTO t1 VALUES (1, '2008-01-01'), (2, '2008-01-02'), (3, '2008-01-03'); SELECT COALESCE(d, d), IFNULL(d, d), IF(i, d, d), CASE i WHEN i THEN d ELSE d END, GREATEST(d, d), LEAST(d, d) FROM t1 ORDER BY RAND(); Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr 2008-01-01 2008-01-01 2008-01-01 2008-01-01 2008-01-01 2008-01-01 2008-01-02 2008-01-02 2008-01-02 2008-01-02 2008-01-02 2008-01-02 2008-01-03 2008-01-03 2008-01-03 2008-01-03 2008-01-03 2008-01-03 COALESCE(d, d) IFNULL(d, d) IF(i, d, d) CASE i WHEN i THEN d ELSE d END GREATEST(d, d) LEAST(d, d) def CASE i WHEN i THEN d ELSE d END CASE i WHEN i THEN d ELSE d END 10 10 10 Y 128 0 63 def COALESCE(d, d) COALESCE(d, d) 10 10 10 Y 128 0 63 def GREATEST(d, d) GREATEST(d, d) 10 10 10 Y 128 0 63 def IF(i, d, d) IF(i, d, d) 10 10 10 Y 128 0 63 def IFNULL(d, d) IFNULL(d, d) 10 10 10 Y 128 0 63 def LEAST(d, d) LEAST(d, d) 10 10 10 Y 128 0 63 DROP TABLE t1; End of 5.0 tests mysql-test/t/metadata.test +17 −0 Original line number Diff line number Diff line Loading @@ -112,4 +112,21 @@ SELECT v1.c1, v2.c2 FROM v1 JOIN v2 ON c1=c2 GROUP BY v1.c1 ORDER BY v2.c2; DROP VIEW v1,v2; DROP TABLE t1,t2; # # Bug #39283: Date returned as VARBINARY to client for queries # with COALESCE and JOIN # CREATE TABLE t1 (i INT, d DATE); INSERT INTO t1 VALUES (1, '2008-01-01'), (2, '2008-01-02'), (3, '2008-01-03'); --enable_metadata --sorted_result SELECT COALESCE(d, d), IFNULL(d, d), IF(i, d, d), CASE i WHEN i THEN d ELSE d END, GREATEST(d, d), LEAST(d, d) FROM t1 ORDER BY RAND(); # force filesort --disable_metadata DROP TABLE t1; --echo End of 5.0 tests sql/sql_select.cc +1 −0 Original line number Diff line number Diff line Loading @@ -9274,6 +9274,7 @@ static Field *create_tmp_field_from_item(THD *thd, Item *item, TABLE *table, */ if ((type= item->field_type()) == MYSQL_TYPE_DATETIME || type == MYSQL_TYPE_TIME || type == MYSQL_TYPE_DATE || type == MYSQL_TYPE_NEWDATE || type == MYSQL_TYPE_TIMESTAMP || type == MYSQL_TYPE_GEOMETRY) new_field= item->tmp_table_field_from_field_type(table, 1); /* Loading Loading
mysql-test/r/metadata.result +17 −0 Original line number Diff line number Diff line Loading @@ -181,4 +181,21 @@ c1 c2 3 3 DROP VIEW v1,v2; DROP TABLE t1,t2; CREATE TABLE t1 (i INT, d DATE); INSERT INTO t1 VALUES (1, '2008-01-01'), (2, '2008-01-02'), (3, '2008-01-03'); SELECT COALESCE(d, d), IFNULL(d, d), IF(i, d, d), CASE i WHEN i THEN d ELSE d END, GREATEST(d, d), LEAST(d, d) FROM t1 ORDER BY RAND(); Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr 2008-01-01 2008-01-01 2008-01-01 2008-01-01 2008-01-01 2008-01-01 2008-01-02 2008-01-02 2008-01-02 2008-01-02 2008-01-02 2008-01-02 2008-01-03 2008-01-03 2008-01-03 2008-01-03 2008-01-03 2008-01-03 COALESCE(d, d) IFNULL(d, d) IF(i, d, d) CASE i WHEN i THEN d ELSE d END GREATEST(d, d) LEAST(d, d) def CASE i WHEN i THEN d ELSE d END CASE i WHEN i THEN d ELSE d END 10 10 10 Y 128 0 63 def COALESCE(d, d) COALESCE(d, d) 10 10 10 Y 128 0 63 def GREATEST(d, d) GREATEST(d, d) 10 10 10 Y 128 0 63 def IF(i, d, d) IF(i, d, d) 10 10 10 Y 128 0 63 def IFNULL(d, d) IFNULL(d, d) 10 10 10 Y 128 0 63 def LEAST(d, d) LEAST(d, d) 10 10 10 Y 128 0 63 DROP TABLE t1; End of 5.0 tests
mysql-test/t/metadata.test +17 −0 Original line number Diff line number Diff line Loading @@ -112,4 +112,21 @@ SELECT v1.c1, v2.c2 FROM v1 JOIN v2 ON c1=c2 GROUP BY v1.c1 ORDER BY v2.c2; DROP VIEW v1,v2; DROP TABLE t1,t2; # # Bug #39283: Date returned as VARBINARY to client for queries # with COALESCE and JOIN # CREATE TABLE t1 (i INT, d DATE); INSERT INTO t1 VALUES (1, '2008-01-01'), (2, '2008-01-02'), (3, '2008-01-03'); --enable_metadata --sorted_result SELECT COALESCE(d, d), IFNULL(d, d), IF(i, d, d), CASE i WHEN i THEN d ELSE d END, GREATEST(d, d), LEAST(d, d) FROM t1 ORDER BY RAND(); # force filesort --disable_metadata DROP TABLE t1; --echo End of 5.0 tests
sql/sql_select.cc +1 −0 Original line number Diff line number Diff line Loading @@ -9274,6 +9274,7 @@ static Field *create_tmp_field_from_item(THD *thd, Item *item, TABLE *table, */ if ((type= item->field_type()) == MYSQL_TYPE_DATETIME || type == MYSQL_TYPE_TIME || type == MYSQL_TYPE_DATE || type == MYSQL_TYPE_NEWDATE || type == MYSQL_TYPE_TIMESTAMP || type == MYSQL_TYPE_GEOMETRY) new_field= item->tmp_table_field_from_field_type(table, 1); /* Loading