1. 10 Jul, 2006 1 commit
    • andrey@lmy004.'s avatar
      WL#3337 (Event scheduler new architecture) · e3d0524b
      andrey@lmy004. authored
      This patch introduces specialized Event data objects
      Event_basic as parent.
      Event_queue_element used for queue storage
      Event_timed used for SHOW EVENTS/ I_S.EVENTS / SHOW CREATE EVENT
      Event_job_data using during execution.
      Methods were moved out of Event_timed to other classes.
      
      This patch also introduces Events::LOCK_event_metadata.
      This patch gives new implementation of Events::dump_internal_status().
      Now both the Event_scheduler and Event_queue return information during
      their ::dump_internal_status().
      
      Shortened a bit the runtime for executing events test cases.
      e3d0524b
  2. 05 Jul, 2006 1 commit
    • andrey@lmy004.'s avatar
      WL#3337 (Event scheduler new architecture) · 3b840ade
      andrey@lmy004. authored
      Cleaned up the code a bit. Fixed few leaks.
      This code still does not load events on server startup
      from disk. The problem is that there is a need for a THD instance, which
      does not exist during server boot. This will be solved soon.
      Still Event_timed is used both for the memory queue and for exectution.
      This will be changed according to WL#3337 probably in the next commit.
      3b840ade
  3. 04 Jul, 2006 1 commit
    • andrey@lmy004.'s avatar
      WL #3337 (Event scheduler new architecture) · 2bdd872e
      andrey@lmy004. authored
      Cut Nr. 8.
      
      All tests pass.
      
      Separated Event_scheduler into Event_queue and Event_scheduler.
      Added new Event_scheduler_ng which is the new scheduler and is used
      system-wide. Will be moved to the event_scheduler.cc in the future.
      Using Event_timed in Event_queue as well as cloned during execution.
      Next step is to have Event_worker_data which will be used during execution
      and will take ::compile()/::execute() out of Event_timed.
      2bdd872e
  4. 03 Jul, 2006 1 commit
    • andrey@lmy004.'s avatar
      WL#3337 (Event scheduler new architecture) · 6dd9a3bb
      andrey@lmy004. authored
      This is the first cut of separating Event_scheduler in two
      classes which are more specialized.
      Inheritance was used to separate methods and member variables.
      Still Event_scheduler is a child of Event_queue. This dependency
      will be removed soon.
      6dd9a3bb
  5. 29 Jun, 2006 1 commit
    • andrey@lmy004.'s avatar
      fix for bug#16394 "Events: Crash if schedule contains SELECT" · 4d22fd1a
      andrey@lmy004. authored
      Parsing of CREATE/ALTER EVENT statement was crashing because of early
      initialization done during parsing, instead in the after parsing phase.
      Moreover, we don't want SUBqueries in CREATE/ALTER EVENT therefore we
      disable them, though it is possible to make them work. It can be emulated
      inside SP with a cursor and SP variable (CREATE/ALTER EVENT can still
      accept variables as values).
      4d22fd1a
  6. 28 Jun, 2006 5 commits
    • andrey@lmy004.'s avatar
      WL#3337 (Events new architecture) · 3c793e23
      andrey@lmy004. authored
      This cut No 7 should finish the part of fixing the parsing of the events :
      - Event_timed is no more used during parsing. Less problems because it has
        a mutex. Event_parse_data class is used during parsing. It is suited only
        for this purpose. It's pretty lightweight
      - Late checking of data from parsing is being performed. This should solve
        the problems of nested events in SP or other events (for the situation 
        of no nested bodies). Before if an ALTER EVENT was in a SP, then when the
        SP was compiled, and not executed, the actual init_xxx methods of Event_timed
        were called, which is wrong.
      - It could be a side effect of using a specialized class, but test events_stress is
        now 25% quicker.
      
      Cut No8 will start splitting Event_scheduler into 2 parts, the QUEUE will be moved
      to Event_queue.
      3c793e23
    • andrey@lmy004.'s avatar
      after merge fix · e5e8713c
      andrey@lmy004. authored
      e5e8713c
    • andrey@lmy004.'s avatar
      Merge · f9245408
      andrey@lmy004. authored
      f9245408
    • andrey@lmy004.'s avatar
      WL#3337 (Events new architecture) · 98d10477
      andrey@lmy004. authored
      Cut 7 (refactoring)
      
      db_repository is no more embedded in the Events
      singleton. Therefore a change to Events_db_repository
      won't mean recompile of all files in the server which include events.h
      98d10477
    • andrey@lmy004.'s avatar
      WL#3337 (Events new architecture) · 03e0a231
      andrey@lmy004. authored
      Cut number 6. Move code from sql_show.cc to event_db_repository.cc
      that more belongs to the latter.
      03e0a231
  7. 27 Jun, 2006 5 commits
    • andrey@lmy004.'s avatar
      WL#3337 (Events new architecture) · 9309fae9
      andrey@lmy004. authored
      5th cut, moved DB related code to Event_db_repository and
      updated accordingly the remanining code.
      Moved change/restore_security_context() to class THD
      Removed events_priv.h
      Next step is to reorganize create/update_event() and parsing for them.
      But probably some other refactoring could be done in the meanwhile.
      The changes so far pass the test suite.
      9309fae9
    • andrey@lmy004.'s avatar
      WL#3337 (Event scheduler new architecture) Fourth cut of refactoring · 0c439c9f
      andrey@lmy004. authored
      the parsing. Next step will be to refactor of usage of Event_timed 
      during Events::create_event() and Events::update_event().
      
      Disallow:
      - CREATE EVENT ... DO CREATE EVENT ...;
      - ALTER  EVENT ... DO CREATE EVENT ...;
      - CREATE EVENT ... DO ALTER EVENT DO ....;
      - CREATE PROCEDURE ... BEGIN CREATE EVENT ... END|
      
      Allowed:
      - CREATE EVENT ... DO DROP EVENT yyy;
      - CREATE EVENT ... DO ALTER EVENT yyy;
        (the nested ALTER EVENT can have anything but DO clause)
      - ALTER  EVENT ... DO ALTER EVENT yyy;
        (the nested ALTER EVENT can have anything but DO clause)
      - ALTER  EVENT ... DO DROP EVENT yyy;
      - CREATE PROCEDURE ... BEGIN ALTER EVENT ... END|
        (the nested ALTER EVENT can have anything but DO clause)
      - CREATE PROCEDURE ... BEGIN DROP EVENT ... END|
      0c439c9f
    • andrey@lmy004.'s avatar
      WL#3337 (Event scheduler new architecture) · 4e0a752f
      andrey@lmy004. authored
      Third cut to simplify parsing phase. Now DROP EVENT works.
      
      Overloaded few functions to be able to use either sp_name or pass two LEX_STRINGs
      instead of a Event_timed pointer. This is transitional and eventually the old
      functions will be removed. For now DROP EVENT also works, does not need anymore
      a parsing object (Event_timed) and definer initialization because everyone who
      has EVENT_ACL can drop events, and this is checked on execution time in sql_parse.cc
      from the security context, as it should be.
      4e0a752f
    • andrey@lmy004.'s avatar
      WL#3337 (Events new infrasctructure) · 04659677
      andrey@lmy004. authored
      Second cut of separating parsing phase from execution phase
      Separate Event_timed from parsing phase and introducing Event_parse_data.
      04659677
    • andrey@lmy004.'s avatar
      first cut of WL#3337 (New event scheduler locking infrastructure). · e5936fce
      andrey@lmy004. authored
      Infrastructure built. Added the  foreseen files and change Makefile.am/CMakeLists.txt
      accordingly.
      e5936fce
  8. 26 Jun, 2006 9 commits
  9. 25 Jun, 2006 4 commits
  10. 24 Jun, 2006 4 commits
  11. 23 Jun, 2006 8 commits