Commit e50e8c94 authored by evgen@moonbone.local's avatar evgen@moonbone.local
Browse files

Merge epotemkin@bk-internal.mysql.com:/home/bk/mysql-5.0-opt

into  moonbone.local:/mnt/gentoo64/work/29898-bug-5.0-opt-mysql
parents c06d233d 08b9103d
Loading
Loading
Loading
Loading
+11 −0
Original line number Diff line number Diff line
@@ -403,4 +403,15 @@ hex(cast('a' as binary(2)))
select hex(cast('a' as char(2) binary));
hex(cast('a' as char(2) binary))
61
CREATE TABLE t1 (d1 datetime);
INSERT INTO t1(d1) VALUES ('2007-07-19 08:30:00'), (NULL),
('2007-07-19 08:34:00'), (NULL), ('2007-07-19 08:36:00');
SELECT cast(date(d1) as signed) FROM t1;
cast(date(d1) as signed)
20070719
NULL
20070719
NULL
20070719
drop table t1;
End of 5.0 tests
+9 −0
Original line number Diff line number Diff line
@@ -237,4 +237,13 @@ select hex(cast('a' as char(2) binary));
select hex(cast('a' as binary(2)));
select hex(cast('a' as char(2) binary));

#
# Bug#29898: Item_date_typecast::val_int doesn't reset the null_value flag.
#
CREATE TABLE t1 (d1 datetime);
INSERT INTO t1(d1) VALUES ('2007-07-19 08:30:00'), (NULL),
  ('2007-07-19 08:34:00'), (NULL), ('2007-07-19 08:36:00');
SELECT cast(date(d1) as signed) FROM t1;
drop table t1;

--echo End of 5.0 tests
+1 −4
Original line number Diff line number Diff line
@@ -2662,11 +2662,8 @@ longlong Item_date_typecast::val_int()
{
  DBUG_ASSERT(fixed == 1);
  MYSQL_TIME ltime;
  if (args[0]->get_date(&ltime, TIME_FUZZY_DATE))
  {
    null_value= 1;
  if ((null_value= args[0]->get_date(&ltime, TIME_FUZZY_DATE)))
    return 0;
  }
  return (longlong) (ltime.year * 10000L + ltime.month * 100 + ltime.day);
}