• petr/cps@mysql.com/owlet.local's avatar
    Fix Bug #9191 "TIMESTAMP/from_unixtime() no longer accepts 2^31-1" · 3ec542df
    petr/cps@mysql.com/owlet.local authored
    (4.1 version, with post-review fixes)
      
      The fix for another Bug (6439) limited FROM_UNIXTIME() to
      TIMESTAMP_MAX_VALUE which is 2145916799 or 2037-12-01 23:59:59 GMT,
      however unix timestamp in general is not considered to be limited 
      by this value. All dates up to power(2,31)-1 are valid.
      
      This patch extends allowed TIMESTAMP range so, that max
      TIMESTAMP value is power(2,31)-1. It also corrects
      FROM_UNIXTIME() and UNIX_TIMESTAMP() functions, so that
      max allowed UNIX_TIMESTAMP() is power(2,31)-1. FROM_UNIXTIME()
      is fixed accordingly to allow conversion of dates up to
      2038-01-19 03:14:07 UTC. The patch also fixes CONVERT_TZ()
      function to allow extended range of dates.
      
      The main problem solved in the patch is possible overflows
      of variables, used in broken-time representation to time_t
      conversion (required for UNIX_TIMESTAMP).
    3ec542df
time.cc 23.5 KB