Commit 23006f9b authored by unknown's avatar unknown
Browse files

Fix for #16327: invalid TIMESTAMP values retrieved


mysql-test/r/func_time.result:
  Fix for #16327: invalid TIMESTAMP values retrieved
    - test result
mysql-test/t/func_time.test:
  Fix for #16327: invalid TIMESTAMP values retrieved
    - test case
sql/field.cc:
  Fix for #16327: invalid TIMESTAMP values retrieved
    - let 1969 as well
parent 32d954f3
Loading
Loading
Loading
Loading
+7 −0
Original line number Diff line number Diff line
@@ -630,3 +630,10 @@ select monthname(str_to_date(null, '%m')), monthname(str_to_date(null, '%m')),
monthname(str_to_date(1, '%m')), monthname(str_to_date(0, '%m'));
monthname(str_to_date(null, '%m'))	monthname(str_to_date(null, '%m'))	monthname(str_to_date(1, '%m'))	monthname(str_to_date(0, '%m'))
NULL	NULL	January	NULL
set time_zone='-6:00';
create table t1(a timestamp);
insert into t1 values (19691231190001);
select * from t1;
a
1969-12-31 19:00:01
drop table t1;
+10 −0
Original line number Diff line number Diff line
@@ -322,4 +322,14 @@ select last_day('2005-01-00');
select monthname(str_to_date(null, '%m')), monthname(str_to_date(null, '%m')),
       monthname(str_to_date(1, '%m')), monthname(str_to_date(0, '%m'));

#
# Bug #16327: problem with timestamp < 1970
#

set time_zone='-6:00';
create table t1(a timestamp);
insert into t1 values (19691231190001);
select * from t1;
drop table t1;

# End of 4.1 tests
+1 −1
Original line number Diff line number Diff line
@@ -3809,7 +3809,7 @@ String *Field_timestamp::val_str(String *val_buffer, String *val_ptr)
  thd->time_zone_used= 1;

  temp= time_tmp.year % 100;
  if (temp < YY_PART_YEAR)
  if (temp < YY_PART_YEAR - 1)
  {
    *to++= '2';
    *to++= '0';