• unknown's avatar
    WL #3337 (Events new architecture) · 31caa8c4
    unknown authored
    Final stroke, events should be loaded from disk on server startup.
    Also check the validity of their bodies if possible during loading.
    
    
    sql/event_data_objects.cc:
      Remove Event_job_data::free_sp(), move the code to the destructor
      Change the way we change the security context
      Steal some code from sql_parse.cc
    sql/event_data_objects.h:
      Remove free_sp()
      Make compile() public, to be used when booting for verifying the integrity of mysql.event
    sql/event_queue.cc:
      Make the queue load events from disk on server boot.
      Compile and thus check for integrity the events.
    sql/event_queue.h:
      shift methods around. add queue_loaded boolean.
    sql/event_scheduler.cc:
      Rename init_event_thread() to pre_init_event_thread()
      and make it more generic.
      Add post_init_event_thread()
      Export these two as well as deinit_event_thread().
      Now it is quite easy to write code to spawn a new event thread
      whenever needed.
    sql/event_scheduler.h:
      export pre_init_event_thread(), post_init_event_thread() and deinit_event_thread()
      to simplify writing of thread functions.
    sql/events.cc:
      Events::init() returns only one error code, then make it bool
    sql/events.h:
      Events::init() returns only one error code, then make it bool
    sql/mysqld.cc:
      Check the return code of Events::init()
    sql/sp_head.cc:
      Add trace info
    sql/sql_class.cc:
      Reorganize thd::change_security_context() to load main_security_ctx
    sql/sql_class.h:
      Reorganize thd::change_security_context() to load main_security_ctx
    sql/sql_lex.cc:
      Initialize lex->spname
    sql/sql_yacc.yy:
      Add a comment
    31caa8c4
events.cc 18 KB