1. 16 Feb, 2006 37 commits
  2. 15 Feb, 2006 3 commits
    • unknown's avatar
      fix for bug#16406 (Events: DROP DATABASE doesn't automatically drop events) · 7c593c9e
      unknown authored
      WL#1034
      - This changeset also changes the executor so its quite more stable now.
        Stressing test case added that executes ~800 events per second and dropping
        hundreds of events at once using DROP DATABASE.
      (with fixes after review of JimW)
      (with fixes after review of Serg)
      
      
      mysql-test/r/events.result:
        update results after TRIGGER_ACL was added
      mysql-test/t/events.test:
        -redundant line
      sql/event.cc:
        Implemented evex_db_drop_events() which drops all events
        from a specific database. Needed for SQLCOM_DROP_DATABASE
      sql/event.h:
        - protect the event better (see the changes to event_executor.cc
          and event.cc). An event object could be used in a spawned thread
          before it's executed but till now the object is marked as being
          executed when the anonymous sp_head is executed. However, there are
          timeframes before and after that during which the event is not marked
          as executed and other thread may delete the object -> so we end with
          a nirvana pointer.
      sql/event_executor.cc:
        - extract some of the code executed in the main thread to a function. Too long
          functions are bad for the overview.
        - prepend all information/error messages to the console with "SCHEDULER:" for
          better overview, and easied searching in the log tables.
      sql/event_priv.h:
        - change the name, of evex_db_find_event_by_name() and don't
          used C++ features like function overloading
        - define consts for result returned from event_timed::spawn_now()
      sql/event_timed.cc:
        - add few methods related to event execution.
          now the event spawns the worker thread and
          passes itself as parameter. This way it locks itself for exectution
          first and then spawning -> no race condition. When the worker thread
          has finished working with the reference it calls back
          event_timed::spawn_thread_finish() to unlock itself.
      sql/sql_db.cc:
        - call evex_drop_db_events() on DROP DATABASE
      7c593c9e
    • unknown's avatar
    • unknown's avatar
      Merge bk-internal:/home/bk/mysql-5.1-new · 01e2e438
      unknown authored
      into  mysql.com:/home/jimw/my/mysql-5.1-clean
      
      01e2e438