An error occurred fetching the project authors.
  1. 17 Mar, 2006 1 commit
  2. 16 Mar, 2006 1 commit
    • unknown's avatar
      fix for bug #17578: Test "events" fails due to scheduling difference · 119de054
      unknown authored
      mysql-test/r/events.result:
        update result
      mysql-test/r/events_bugs.result:
        update result
      mysql-test/t/events.test:
        - use information_schema.processlist
        - move from error codes to constants
      mysql-test/t/events_bugs.test:
        fix for bug #17578: Test "events" fails due to scheduling difference
        use information_schema.processlist
      119de054
  3. 15 Mar, 2006 1 commit
    • unknown's avatar
      A fix and test case for Bug#16164 "Easter egg": · 271d20ba
      unknown authored
      SHOW AUTHORS caused 'Packets out of order' in stored functions:
      add the corresponding SQLCOM to sp_get_flags_for_command so that
      it'd return sp-related flags for it. 
      Fix Bug#17403 "Events: packets out of order with show create event"
      in the same chaneset.
      
      
      mysql-test/r/events.result:
        Update the results (Bug#17403)
      mysql-test/r/sp-error.result:
        Test results fixed (Bug#16164)
      mysql-test/t/events.test:
        Add a test case for Bug#17403 "Events: packets out of order with
        show create event"
      mysql-test/t/sp-error.test:
        Add a test case for Bug#16164 "Easter egg"
      sql/sp_head.cc:
        Add SHOW AUTHORS to the list of commands that return a result
        set: such commands are not allowed in stored functions and
        triggers. Add SHOW CREATE EVENT for the same reason.
      271d20ba
  4. 28 Feb, 2006 1 commit
    • unknown's avatar
      fix for bug#16537 (Events: mysql.event.starts is null) · 317c6851
      unknown authored
      - now when the event is created and STARTS is omitted then STARTS is implicitly
        CURRENT_TIMESTAMP
      - This CS also fixed incorrect presentation of STARTS/ENDS in I_S.EVENTS
      (incorporated review changes)
      
      
      mysql-test/r/events.result:
        results of new test cases
      mysql-test/t/events.test:
        new test cases for bug #16537 (Events: mysql.event.starts is null)
      sql/event.cc:
        - check whether event_timed::starts_null only in case
          event_timed::expression is set, so for recurring events only
        - disable binlogging of CREATE EVENT statement. It should not be
          replicated but the result of the execution. Still the replication is
          untouched topic.
      sql/event.h:
        - add flags whether starts, ends and execute_at are null or not
      sql/event_executor.cc:
        - check whether xxx_null instead of !xxxx.year
      sql/event_timed.cc:
        - introduce xxx_null and change the usage of xxx.year to !xxx_null
      sql/sql_show.cc:
        - don't show 0000-00-00 in I_S.EVENTS when the value is NULL
      sql/sql_yacc.yy:
        - if STARTS is omitted default to current_timestamp
      317c6851
  5. 16 Feb, 2006 2 commits
    • unknown's avatar
      fix for bug#17543 Creating Event crash the server · f39aca3f
      unknown authored
      this problem affects only debug builds
      
      
      mysql-test/r/events.result:
        update results
      mysql-test/t/events.test:
        tests for bug#17543 Creating Event crash the server
      sql/event_timed.cc:
        the delimiter between DO and the body could be not only a space
        but any other recognized white space, so use proper macro.
      f39aca3f
    • unknown's avatar
      small post-merge fixes for bug#16406 · 89f598ee
      unknown authored
      (pre-push)
      
      
      mysql-test/r/events.result:
        update result
      mysql-test/t/events.test:
        few more tests
      sql/event.cc:
        fix compilation failure after big merge
      sql/event.h:
        initialize s_ctx to be the context to be used.
        don't use sphead->m_security_ctx but we will copy 
        the initted ctx to there
      sql/event_timed.cc:
        -initialize s_ctx to be the context to be used.
        don't use sphead->m_security_ctx but we will copy 
        the initted ctx to there
        
        - first init the context
        - then compile the event
        - and then copy the context
        - don't use mysql_change_db() for now change_security_context() gets the
          right context info
      89f598ee
  6. 15 Feb, 2006 2 commits
    • unknown's avatar
      fix for bug#16406 (Events: DROP DATABASE doesn't automatically drop events) · fea4742d
      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
      fea4742d
    • unknown's avatar
      fix for bug#16410 (Events: CREATE EVENT is legal in a CREATE TRIGGER statement) · 2557f80f
      unknown authored
      WL#1034 (Internal CRON)
      (post-post-review updates)
      
      
      
      mysql-test/r/events.result:
        update results file
      mysql-test/t/events.test:
        add test for Bug #16410  Events: CREATE EVENT is legal in a CREATE TRIGGER statement
      sql/sp_head.cc:
        CREATE/ALTER/DROP event mean explicit commit, so they are not allowed in
        a FUNCTION/TRIGGER. Fixes bug#16410
      sql/sql_parse.cc:
        - end active transaction for CREATE/ALTER/DROP EVENT because
          they are DDL statements.
      2557f80f
  7. 14 Feb, 2006 2 commits
    • unknown's avatar
      post-merge fixes of bug 16548 · 99526f2e
      unknown authored
      mysql-test/r/events.result:
        post-merge fixes
      mysql-test/t/events.test:
        post-merge fixes
      sql/event.cc:
        post-merge fixes
      sql/share/errmsg.txt:
        post-merge fixes
      sql/table.cc:
        post-merge fixes
      99526f2e
    • unknown's avatar
      - final fixes for bug#16431 (Events: An event which alters itself disappears) · 8d4f74be
      unknown authored
      - fix for bug#16423 (Events: SHOW CREATE EVENT doesn't work)
      - this Changeset commits makes CREATE/UPDATE/DELETE EVENT real DDL statements
        by committing the currently open transaction before they are executed.
      - this Changeset also fixes a trailing space problem since the very early days
        of the internal cron
      - adds sophisticated checking of whether mysql.event was tampered accidentally
        or with purpose by an user.
      - adds a lot of inline function documentation - documents everything left
        uncodumented
      - INTERVAL_XXXX to XXX in I_S.EVENTS.INTERVAL_FIELD
      
      WL#1034 (Internal CRON)
      
      
      mysql-test/r/events.result:
        update result
      mysql-test/t/events.test:
        add test cases for SHOW CREATE EVENT
        add test cases where the structure of mysql.event is changed and error reporting in this case
      sql/event.cc:
        - do a lot more checking on mysql.event whether it's valid
          introduced generic function table_check_intact() which can be used also
          for checking whether a system table (mysql.*) has been tampered by user
          and report an error in this case. The checking is quite strict, thus
          maybe some mechanism can be added later that loosens this like some
          session variable, for instance, i_am_aware_that_i_can_damage_my_data
          so the table will be opened nevertheless we think that it's not valid.
        - add evex_show_create_event(THD *thd, sp_name *spn, LEX_STRING definer)
        - document a loooot. not a single function left undocumented.
      sql/event.h:
        - add evex_show_create_event(THD *thd, sp_name *spn, LEX_STRING definer)
        - change get_show_create_event() to get_create_event()
        - add TABLE_FIELD_W_TYPE used by table_check_intact()
        - add event_timed::sql_mode so it can be used by show create event. currently
          always 0, will be fixed by a patch for another bug. At least makes the code
          of show create event complete.
      sql/event_executor.cc:
        - add evex_check_system_tables() that checks on boot and event
          main thread startup that mysql.db and mysql.user tables are correct.
        - document everything!
      sql/event_priv.h:
        remove a line
      sql/event_timed.cc:
        - implement SHOW CREATE EVENT
        - document undocumented functions!
      sql/share/errmsg.txt:
        - fix an error message and add two new
      sql/sql_acl.cc:
        - add mysql.db table definition to use by table_check_intact()
        - exchange some of the positions by numbers from mysql.db to enum names (see sql_acl.h)
      sql/sql_acl.h:
        - define the structure of mysql.db table
      sql/sql_parse.cc:
        - handle SQLCOM_SHOW_CREATE_EVENT
        - end the current transaction becase CREATE/UPDATE/DELETE EVENT is a DDL
          statement
      sql/sql_show.cc:
        - remove interval_type_to_name
        - use common function event_reconstruct_interval_expression()
          that reconstructs the expression given at create/alter, to some
          extent - interval of 2:62 MINUTE_SECOND will be reconstructed as
          interval of 3:02 MINUTE_SECOND!
      sql/sql_yacc.yy:
        init the definer of event_timed also when doing SHOW CREATE EVENT
        because it's needed for checking into mysql.event
      sql/table.cc:
        - remove stale code. only mysql.event should be a 'system_table'
        - add table_check_intact() to check the consistency of a table.
          mostly usable with mysql.xxx tables.
      sql/table.h:
        - export TABLE_FIELD_W_TYPE and table_check_intact() which are used for 
          checking the structure of a table. mostly usable for mysql.xxx tables.
      8d4f74be
  8. 10 Feb, 2006 1 commit
    • unknown's avatar
      fix for bug #17289 Events: missing privilege check for drop database · 5b497b16
      unknown authored
      Events were executed with all privileges possible on planet Earth :(
      WL#1034
      
      
      mysql-test/r/events.result:
        update test results
      mysql-test/t/events.test:
        test for bug#17289 Events: missing privilege check for drop database
      sql/event.h:
        -add two new methods to event_timed to change and restore
         the security context
      sql/event_executor.cc:
        - move code regarding privilieges checking to event_timed::execute()
        - add a new function evex_print_warnings() which prints the notes/warnings/errors
          to the console (easily capturable with logs-into-tables) so one can see what
          has happened if there was an error of some sort!
      sql/event_timed.cc:
        - fix documentation
        - add a new error code -99, EVENT was revoked from the user on the DB
        - set_sec_ctx, execute, restore_sex_ctx
      sql/sql_error.cc:
        - make warning_level_names public to be used in event_executor.cc
        - change from 2 arrays to a LEX_STRING array
      5b497b16
  9. 09 Feb, 2006 1 commit
  10. 07 Feb, 2006 1 commit
    • unknown's avatar
      - fix for bug #16414 (Events: Crash or hang if event drops itself) · 99eb6eb6
      unknown authored
      WL#1034 (Internal CRON)
      (with post-review fix)
      
      
      mysql-test/r/events.result:
        update the result
      mysql-test/t/events.test:
        use --sleep instead of select sleep()
        enable some scheduler related tests. They were disabled because of a hang that
        happened. The hang is fixed with this bugfix.
      sql/event.cc:
        - evex_remove_from_cache reports back whether the in_memory
          object was deleted or was scheduled. In case scheduling then
          don't delete it from outside but let it do it itself
        - move out db interaction code out of evex_drop_event to db_drop_event
          so it can be called from outter space :)
      sql/event_priv.h:
        - export the new function db_drop_event()
      sql/event_timed.cc:
        - use db_drop_event() and don't implement the dropping ourselves
      sql/sql_parse.cc:
        - some debug info about the status code returned.
      99eb6eb6
  11. 30 Jan, 2006 2 commits
    • unknown's avatar
      post-merge fixes of fix for bug#16642 (No I_S.EVENTS table) · e5eea47c
      unknown authored
      WL#1034 (Internal CRON)
      
      
      mysql-test/r/events.result:
        fix result of t/events (post-merge fix of bug #16642)
      mysql-test/r/system_mysql_db.result:
        fix result(post-merge fix of bug #16642)
      mysql-test/t/events.test:
        fix test, use --echo instead of select, fix failing create event statement
      sql/event_timed.cc:
        add a bit more debug information
      e5eea47c
    • unknown's avatar
      fix for bug#16642 (Events: No INFORMATION_SCHEMA.EVENTS table) · c3542ceb
      unknown authored
      post-review change - use pointer instead of copy on the stack.
      WL#1034 (Internal CRON)
       This patch adds INFORMATION_SCHEMA.EVENTS table with the following format:
        EVENT_CATALOG  - MYSQL_TYPE_STRING  (Always NULL)
        EVENT_SCHEMA   - MYSQL_TYPE_STRING  (the database)
        EVENT_NAME     - MYSQL_TYPE_STRING  (the name)
        DEFINER        - MYSQL_TYPE_STRING  (user@host)
        EVENT_BODY     - MYSQL_TYPE_STRING  (the body from mysql.event)
        EVENT_TYPE     - MYSQL_TYPE_STRING  ("ONE TIME" | "RECURRING")
        EXECUTE_AT     - MYSQL_TYPE_TIMESTAMP (set for "ONE TIME" otherwise NULL)
        INTERVAL_VALUE - MYSQL_TYPE_LONG    (set for RECURRING otherwise NULL)
        INTERVAL_FIELD - MYSQL_TYPE_STRING  (set for RECURRING otherwise NULL)
        SQL_MODE       - MYSQL_TYPE_STRING  (for now NULL)
        STARTS         - MYSQL_TYPE_TIMESTAMP (starts from mysql.event)
        ENDS           - MYSQL_TYPE_TIMESTAMP (ends from mysql.event)
        STATUS         - MYSQL_TYPE_STRING  (ENABLED | DISABLED)
        ON_COMPLETION  - MYSQL_TYPE_STRING  (NOT PRESERVE | PRESERVE)
        CREATED        - MYSQL_TYPE_TIMESTAMP
        LAST_ALTERED   - MYSQL_TYPE_TIMESTAMP
        LAST_EXECUTED  - MYSQL_TYPE_TIMESTAMP
        EVENT_COMMENT  - MYSQL_TYPE_STRING
      
        SQL_MODE is NULL for now, because the value is still not stored in mysql.event .
      Support will be added as a fix for another bug.
      
       This patch also adds SHOW [FULL] EVENTS [FROM db] [LIKE pattern]
      1. SHOW EVENTS shows always only the events on the same user,
         because the PK of mysql.event is (definer, db, name) several 
         users may have event with the same name -> no information disclosure.
      2. SHOW FULL EVENTS - shows the events (in the current db as SHOW EVENTS)
         of all users. The user has to have PROCESS privilege, if not then
         SHOW FULL EVENTS behave like SHOW EVENTS.
      3. If [FROM db] is specified then this db is considered.
      4. Event names can be filtered with LIKE pattern.
        SHOW EVENTS returns table with the following columns, which are subset of
        the data which is returned by SELECT * FROM I_S.EVENTS
         Db
         Name
         Definer 
         Type
         Execute at
         Interval value
         Interval field 
         Starts 
         Ends
         Status
      
      
      mysql-test/lib/init_db.sql:
        change the PK - (definer, db, name)
        quicker searches when SHOW EVENTS;
        allow also different users to have events with the same name -> 
        no information disclosure
      mysql-test/r/events.result:
        result of new tests
      mysql-test/r/information_schema.result:
        result of new tests
      mysql-test/r/information_schema_db.result:
        result of new tests
      mysql-test/r/system_mysql_db.result:
        result of new tests
      mysql-test/t/events.test:
        new tests for information_schema.events
      scripts/mysql_create_system_tables.sh:
        change the PK of mysql.event to (definer, db, name)
      scripts/mysql_fix_privilege_tables.sql:
        change the PK of mysql.event to (definer, db, name)
      sql/event.cc:
        pass around the definer of the event because of the new PK
        which is (definer, db, name). It's needed for index searching.
      sql/event.h:
        - make enum evex_table_field again public so it can be used
        in sql_show.cc
        - make created and modified ulonglong, because they should be such
        - make public evex_open_event_table so it can be used in sql_show.cc
      sql/event_executor.cc:
        - cosmetics
      sql/event_priv.h:
        - moved enum evex_table_field and evex_open_event_table()
          to event.h (made them therefore public)
      sql/event_timed.cc:
        - in event_timed::init_definer() always fill this.definer with
          the concatenated value of definer_user@definer_host. Makes
          later the work easier.
        - pass around the definer wherever is needed for searching 
          (new prototype of evex_db_find_evex_aux)
      sql/mysqld.cc:
        - add counter for SHOW EVENTS
      sql/sql_lex.h:
        - register SHOW EVENTS as command
      sql/sql_parse.cc:
        - handle SCH_EVENTS (I_S.EVENTS like SCH_TRIGGERS)
        - make additional check in case of SHOW EVENTS (check for EVENT on
          the current database. if it is null check_access() gives appropriate
          message back.
      sql/sql_show.cc:
        - add INFORMATION_SCHEMA.EVENTS and SHOW EVENTS
        - I_S.EVENTS.SQL_MODE is NULL for now -> not implemented. Trudy
          asked to be added so bug #16642 can be completely closed. There
          is another bug report which will fix the lack of storage of
          SQL_MODE during event creation.
      sql/sql_yacc.yy:
        - always call event_timed::init_definer() when CREATE/ALTER/DROP
          EVENT but not when just compiling the body of the event because
          in this case this operation is not needed, it takes memory and
          CPU time and at the end the result is not used. event_timed::definer
          is used only on SQLCOM_CREATE/ALTER/DROP_EVENT execution not on
          statement compilation.
        - add SHOW [FULL] EVENTS [FROM db] [LIKE pattern]
          in case of FULL and the user has PROCESS privilege then he will see
          also others' events in the current database, otherwise the output
          is the same as of SHOW EVENTS. Because the events are per DB only
          the events from the current database are shown. pattern is applied
          against event name. FROM db is self explanatory.
      sql/table.h:
        add SCH_EVENTS as part of INFORMATION_SCHEMA
      c3542ceb
  12. 26 Jan, 2006 2 commits
    • unknown's avatar
      post-commit fix of fix for bug#16419 · cf54bc18
      unknown authored
      WL#1034 (Internal CRON)
      (not interesting for the Changelog)
      
      
      mysql-test/r/events.result:
        update result
      mysql-test/t/events.test:
        update test after pull after comit of fix for bug 16419
      cf54bc18
    • unknown's avatar
      fix for bug#16419 (Events: can't use timestamp in the schedule) · 3881218d
      unknown authored
      WL #1034 (Internal CRON)
      
      
      mysql-test/r/events.result:
        update test result
      mysql-test/t/events.test:
        add tests
      sql/event_timed.cc:
        - remove stupid check of val_int()
        - fix for bug #16419 (Events: can't use timestamp in the schedule)
          => don't use val_int() but only get_date() and use the date!
      sql/share/errmsg.txt:
        - fix an error message, one more "einen"
      sql/sql_yacc.yy:
        - handle new return value of event_timed::init_execute_at()
      3881218d
  13. 24 Jan, 2006 1 commit
    • unknown's avatar
      fix for bug#16404 (Events: keyword is ENABLED rather than ENABLE) · 679aef1b
      unknown authored
      WL#1034 (Internal CRON)
      
      
      mysql-test/r/events.result:
        fix results file
      mysql-test/t/events.test:
        change test for the fix of bug#16404
      sql/lex.h:
        enabled/disabled were only for events, going back to enable/disable
        fix for bug#16404
      sql/sql_yacc.yy:
        ENABLED -> ENABLE
        DISABLED -> DISABLE
        fix for bug#16404 (Events: keyword is ENABLED rather than ENABLE)
      679aef1b
  14. 20 Jan, 2006 2 commits
    • unknown's avatar
      fix for bug#16431 (Events: An event which alters itself disappears) · 3a8e50e0
      unknown authored
      WL#1034 (Internal CRON)
      
      
      mysql-test/r/events.result:
        add a test for to test bug #16431
      mysql-test/t/events.test:
        results of new tests
      sql/event.cc:
        - more debug info
        - pass info to evex_remove_from_cache() whether the operation 
          was drop or alter. this fixes possible bug that may lead to dropping
          of an event when it's altered. also fix for bug#16431
      sql/event_executor.cc:
        be more verbose and throw more errors
      sql/event_timed.cc:
        - add ` around the names of the db and the event_name and not
        their concatenation. remove ; from the end - unneeded. this fixes bug #16431,
        which was failing because after some recursion the query was ending on ;;
        which is normally an error in the parser because that's the delimiter
        
        - more debug info
        - don't execute lex_end() two times when there's a parse error or thd->is_fatal_error
      3a8e50e0
    • unknown's avatar
      fix for bug#16548 (Events: can't alter clause for preserve) · 2dc2a430
      unknown authored
      WL #1034 (Internal CRON)
      
      
      mysql-test/r/events.result:
        fix the results
      mysql-test/t/disabled.def:
        make it enabled
      mysql-test/t/events.test:
        - comment out some tests (having problems now)
        - add test for fix for bug#16548
      sql/sql_yacc.yy:
        - fix for bug#16548 (Events: can't alter clause for preserve)
        - prefix optional non-terminals with opt_
      2dc2a430
  15. 11 Jan, 2006 2 commits
    • unknown's avatar
      WL #1034 · af6d4026
      unknown authored
      - add a bit more debug messages
      - disable events.test for now due to a bug
      
      
      mysql-test/r/events.result:
        fix result
      mysql-test/t/disabled.def:
        make it disabled
      mysql-test/t/events.test:
        disable show processlist
      sql/event_executor.cc:
        a bit more debug messages
      af6d4026
    • unknown's avatar
      WL #1034 (Internal CRON) pre-push updates · 2fc956fa
      unknown authored
      - various fixes of test cases
      (hopefully the last pre-push update before the push)
      
      
      mysql-test/include/system_db_struct.inc:
        extend test case to include testing for event system table
      mysql-test/r/events.result:
        results of events test
      mysql-test/r/system_mysql_db.result:
        more testing - add structure of event system table
      mysql-test/t/events.test:
        test case for events (internal CRON)
      mysql-test/t/system_mysql_db_fix.test:
        drop event table and leave the test database empty
      scripts/mysql_create_system_tables.sh:
        add missing create table statement
      scripts/mysql_fix_privilege_tables.sql:
        don't specify the database. this fixes a failing test case which creates the
        tables not on mysql but on a test database and then tests again mysql.
      sql/event_executor.cc:
        if asked to stop -> stop.
      2fc956fa
  16. 10 Jan, 2006 1 commit
    • unknown's avatar
      WL #1034 (Internal CRON) pre-push updates · 1ef97f1f
      unknown authored
      - fixed test results
      - fixed bug caught by information_schema.test . Bison temporal
        variables are very nice but extremely error-prone (Count one more
        time just to be sure).
      
      
      mysql-test/r/connect.result:
        fix result for WL#1034 (internal CRON)
      mysql-test/r/events.result:
        fix result for WL#1034 (internal CRON)
      mysql-test/r/grant.result:
        fix result for WL#1034 (internal CRON)
      mysql-test/r/information_schema.result:
        fix result for WL#1034 (internal CRON)
      mysql-test/r/lowercase_table_grant.result:
        fix result for WL#1034 (internal CRON)
      mysql-test/r/ps.result:
        fix result for WL#1034 (internal CRON)
      mysql-test/r/system_mysql_db.result:
        fix result for WL#1034 (internal CRON)
      mysql-test/t/events.test:
        fix result for WL#1034 (internal CRON)
      sql/sql_yacc.yy:
        - fix bug introduced by me when making usage of temporal
          bison variables. COUNT 7 times then write!
      1ef97f1f
  17. 15 Dec, 2005 1 commit
    • unknown's avatar
      WL#1034 update · 48405ec7
      unknown authored
      - fix EVENT_ACL problem that GRANT ALL on some_db.* to someone@somewhere did not get to mysql.db
      - fix crash when the following is executed :
        CREATE EVENT P() CREATE EVENT E ON SCHEDULER 1 SECOND DO ROLLBACK;
        (creation works as well as calling P() which creates the event).
      
      
      mysql-test/lib/init_db.sql:
        - fix init_db.sql so add Event_priv to the database privs, many tests failed because of that
          ommision
        - remove the quotes from the column names
      mysql-test/t/events.test:
        - fix the small test, don't create own db
      scripts/mysql_fix_privilege_tables.sql:
        - fix that
      sql/event.cc:
        - be defensive and don't crash if outside has already has opened some table
      sql/event_executor.cc:
        - show in SHOW PROCESSLIST - "event_scheduler" as name of the user of the main thread
        - use "localhost" as the host where event_scheduler comes from
        - comment out some debug info, fix other debug info
      sql/event_timed.cc:
        - enable EVENT creation inside SP. sphead from lex->sphead goes to et->sphead. it's there only
          if we compile the event. OTOH when doing 
          CREATE PROCEDURE PROC() CREATE EVENT SOME_EV ON SCHEDULE EVERY 1 SECOND DO ROLLBACK;
          I have only to get the body of the event which is anonymous SP. Before it being "compiled"
          but then freed without being used because a bit later it is compiled one more time before
          being put in the events cache. So it was good that the memory structures weren't reused but
          scrapped out. Now lex->sphead is not needed during event creation but only where the event's
          body starts and where it ends so to be able at later stage to compile this anonymous SP (the
          body of the event).
      sql/sp_head.cc:
        - copy over a fix to a crash
      sql/sql_acl.h:
        - fix privileges.
          There was _NO_ documentation about that. Another CHUNK had to be created to so EVENT_ACL gets shifted to
          it's place in the db table. So how this is calculated? EVENT_ACL is 1 << 26. Remember 26, see which poistion
          in the db table is EVENT_ACL, it's 17, counted from 0. 26 - 17 = 9, then shift it with 9.
          CHUNKS are created because in some cases some privileges are in chunks and they are shifted at once. There are
          few chunks of such privileges which has to be shifted to get to exactly the structure of mysql.db table.
      sql/sql_parse.cc:
        - ok, we don't care anymore about lex->sphead because our sphead is lex->et->sphead
      sql/sql_yacc.yy:
        - bail out if new event_timed returns 0x0
        - enable creation of an event inside a SP
          CREATE PROCEDURE P() CREATE EVENT E ON SCHEDULE EVERY 1 SECOND DO SELECT 1;
      48405ec7
  18. 02 Dec, 2005 1 commit