Commit 62273f8e authored by unknown's avatar unknown
Browse files

remove assert


sql/event_data_objects.cc:
  add a comments that using gmt_sec_to_TIME() won't
  be safe after 2038. per andrey's request
sql/event_queue.cc:
  remove assert, which aborts server in the case when it shouldn't
parent 0c55e29a
Loading
Loading
Loading
Loading
+16 −9
Original line number Diff line number Diff line
@@ -395,7 +395,14 @@ Event_parse_data::init_starts(THD *thd)
  if ((not_used= item_starts->get_date(&ltime, TIME_NO_ZERO_DATE)))
    goto wrong_value;

  /* Let's check whether time is in the past */
  /*
    Let's check whether time is in the past.
    Note: This call is not post year 2038 safe. That's because
          thd->query_start() is of time_t, while gmt_sec_to_TIME()
          wants my_time_t. In the case time_t is larger than my_time_t
          an overflow might happen and events subsystem will not work as
          expected.
  */
  thd->variables.time_zone->gmt_sec_to_TIME(&time_tmp,
                                            (my_time_t) thd->query_start());

@@ -407,12 +414,12 @@ Event_parse_data::init_starts(THD *thd)
    goto wrong_value;

  /*
    This may result in a 1970-01-01 date if ltime is > 2037-xx-xx.
    CONVERT_TZ has similar problem.
    Again, after 2038 this code won't work. As
    mysql_priv.h currently lists
      #define TIMESTAMP_MAX_YEAR 2038 (see TIME_to_timestamp())
  */
  my_tz_UTC->gmt_sec_to_TIME(&ltime,t=TIME_to_timestamp(thd, &ltime, &not_used));
  my_tz_UTC->gmt_sec_to_TIME(&ltime,t=TIME_to_timestamp(thd, &ltime,
                                                        &not_used));
  if (!t)
    goto wrong_value;

@@ -465,13 +472,13 @@ Event_parse_data::init_ends(THD *thd)
    goto error_bad_params;

  /*
    This may result in a 1970-01-01 date if ltime is > 2037-xx-xx.
    CONVERT_TZ has similar problem.
    Again, after 2038 this code won't work. As
    mysql_priv.h currently lists
      #define TIMESTAMP_MAX_YEAR 2038 (see TIME_to_timestamp())
  */
  DBUG_PRINT("info", ("get the UTC time"));
  my_tz_UTC->gmt_sec_to_TIME(&ltime,t=TIME_to_timestamp(thd, &ltime, &not_used));
  my_tz_UTC->gmt_sec_to_TIME(&ltime,t=TIME_to_timestamp(thd, &ltime,
                                                        &not_used));
  if (!t)
    goto error_bad_params;

+0 −1
Original line number Diff line number Diff line
@@ -160,7 +160,6 @@ Event_queue::init_queue(THD *thd, Event_db_repository *db_repo)
  {
    sql_print_error("SCHEDULER: sizeof(my_time_t) != sizeof(time_t) ."
                    "The scheduler may not work correctly. Stopping");
    DBUG_ASSERT(0);
    goto err;
  }