1. 28 Jun, 2006 3 commits
    • unknown's avatar
      Merge · 98211bea
      unknown authored
      
      sql/CMakeLists.txt:
        Auto merged
      sql/events.cc:
        Auto merged
      sql/mysqld.cc:
        Auto merged
      sql/set_var.cc:
        Auto merged
      sql/sql_class.cc:
        Auto merged
      sql/sql_class.h:
        Auto merged
      sql/sql_lex.h:
        Auto merged
      sql/sql_parse.cc:
        Auto merged
      sql/sql_yacc.yy:
        Auto merged
      sql/sql_show.cc:
        SCCS merged
      98211bea
    • unknown's avatar
      WL#3337 (Events new architecture) · 400276c2
      unknown 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
      
      
      sql/event_data_objects.cc:
        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
      sql/event_db_repository.cc:
        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
      sql/events.cc:
        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
      sql/events.h:
        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
      sql/mysqld.cc:
        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
      400276c2
    • unknown's avatar
      WL#3337 (Events new architecture) · 8ca78787
      unknown authored
      Cut number 6. Move code from sql_show.cc to event_db_repository.cc
      that more belongs to the latter.
      
      
      sql/event_db_repository.cc:
        move code that works with mysql.event from sql_show.cc to 
        event_db_repository.cc . Route through Event_db_repository's interface
        which is proxied by class Events. The code relies on a function from
        sql_show.cc which does the actual storage in the schema table. I think
        it's better to leave the function there because the structure of 
        I_S.EVENTS is defined in sql_show.cc
      sql/event_db_repository.h:
        I_S / SHOW EVENTS handling hooks
      sql/event_scheduler.cc:
        use the pointer to db_repository which Event_scheduler already has
      sql/events.cc:
        Put a comment to get_instance
      sql/events.h:
        callback for I_S (sql_show.cc)
      sql/sql_show.cc:
        move code that belongs more to Event_db_repository than to here.
        Use a callback of class Events. Only 1 function is left here, because
        it copies data into the actual rows of I_S.EVENTS and belongs to this file.
      sql/sql_show.h:
        export this function will be called from event_db_repository.cc
      8ca78787
  2. 27 Jun, 2006 5 commits
    • unknown's avatar
      WL#3337 (Events new architecture) · acefb78b
      unknown 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.
      
      
      BitKeeper/deleted/.del-events_priv.h~2e8bce2cf35997df:
        Delete: sql/events_priv.h
      sql/Makefile.am:
        events_priv.h is no more
      sql/event_data_objects.cc:
        reorganize events code
      sql/event_data_objects.h:
        reorganize events code
      sql/event_db_repository.cc:
        reorganize events code
      sql/event_db_repository.h:
        reorganize events code
      sql/event_scheduler.cc:
        reorganize events code
      sql/event_scheduler.h:
        reorganize events code
      sql/events.cc:
        reorganize events code
      sql/events.h:
        reorganize events code
      sql/mysqld.cc:
        reorganize events code
      sql/set_var.cc:
        reorganize events code
      sql/sql_class.cc:
        add ::change_security_context() and restore_security_context()
      sql/sql_class.h:
        add ::change_security_context() and restore_security_context()
      sql/sql_db.cc:
        reorganize Events code
      sql/sql_parse.cc:
        reorganize Events code
      sql/sql_show.cc:
        reorganize Events code
      acefb78b
    • unknown's avatar
      WL#3337 (Event scheduler new architecture) Fourth cut of refactoring · cace147c
      unknown 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|
      
      
      mysql-test/r/events.result:
        update results
      mysql-test/r/events_bugs.result:
        update results
      mysql-test/t/events.test:
        use number as error, mysql-test-run does not like the name.
        will come back to this later, now it's enough to pass the test.
        disable nested events / events in SP, when the nested event has
        a body. If no body is provided, namely DROP EVENT or ALTER that
        changes the characteristics, then these are allowed.
      mysql-test/t/events_bugs.test:
        use number as error, mysql-test-run does not like the name.
        will come back to this later, now it's enough to pass the test.
        disable nested events / events in SP, when the nested event has
        a body. If no body is provided, namely DROP EVENT or ALTER that
        changes the characteristics, then these are allowed.
      sql/share/errmsg.txt:
        new message
      sql/sql_yacc.yy:
        refactor CREATE EVENT parsing to fit into the structure
        CREATE DEFINER=xxx EVENT
        The actual definer part is not used, but parsed, for now.
        Disable nested CREATE EVENTS, CREATE EVENT inside CREATE PROCEDURE.
        And an event DDL with body inside an ALTER.
        This stops the following :
        - CREATE EVENT ... DO CREATE EVENT ...;
        - ALTER  EVENT ... DO CREATE EVENT ...;
        - CREATE EVENT ... DO ALTER EVENT DO ....;
        - CREATE PROCEDURE ... BEGIN CREATE EVENT ... END|
        This allows:
        - 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|
      cace147c
    • unknown's avatar
      WL#3337 (Event scheduler new architecture) · ef9a97e6
      unknown 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.
      
      
      sql/event_data_objects.cc:
        overload few functions
      sql/event_scheduler.cc:
        Event_scheduler::drop_event() actually does not need Event_timed object
        but just an identifier, hence pass only sp_name.
        
        Overloaded Event_scheduler::find_event() to work with sp_name object. Eventually
        the old version will be removed. This is being done as transitional step to
        be able to test frequently code.
      sql/event_scheduler.h:
        Event_scheduler::drop_event() actually does not need Event_timed object
        but just an identifier, hence pass only sp_name.
        
        Overloaded Event_scheduler::find_event() to work with sp_name object. Eventually
        the old version will be removed. This is being done as transitional step to
        be able to test frequently code.
      sql/events.cc:
        Change db_drop_event() not to use Event_timed, either coming from parsing
        or from Event_timed::drop, but use LEX_STRINGs. sp_name is not convinient
        because in Event_timed::drop a temporary object has to be created. Hence, 
        dereference the sp_name in Events::drop_event() and pass the LEX_STRINGs.
      sql/events.h:
        Change db_drop_event() not to use Event_timed, either coming from parsing
        or from Event_timed::drop, but use LEX_STRINGs. sp_name is not convinient
        because in Event_timed::drop a temporary object has to be created. Hence, 
        dereference the sp_name in Events::drop_event() and pass the LEX_STRINGs.
      sql/events_priv.h:
        Change db_drop_event() not to use Event_timed, either coming from parsing
        or from Event_timed::drop, but use LEX_STRINGs. sp_name is not convinient
        because in Event_timed::drop a temporary object has to be created. Hence, 
        dereference the sp_name in Events::drop_event() and pass the LEX_STRINGs.
      sql/sql_parse.cc:
        SQLCOM_DROP_EVENT does not need lex->event_parse_data object and 
        is more like SQLCOM_SHOW_CREATE_EVENT. Therefore, move it to the block that
        handles the latter.
      sql/sql_yacc.yy:
        DROP EVENT does not need a parsing object, just a name.
        Store it as lex->spname. Pretty similar handling to the one of
        SHOW CREATE EVENT.
      ef9a97e6
    • unknown's avatar
      WL#3337 (Events new infrasctructure) · d2db48c6
      unknown authored
      Second cut of separating parsing phase from execution phase
      Separate Event_timed from parsing phase and introducing Event_parse_data.
      
      
      sql/event_data_objects.cc:
        second cut,
        copy Event_timed::init_body() to Event_parse_data::init_body()
        Init the body during parsing, everything else keep as a pointer to
        Item or some other pointer to use for later initialization.
      sql/event_data_objects.h:
        get the identifier as sp_name*, later will initialize our structures
      sql/events.cc:
        for easy transition add temporarily parse_data, later Event_timed *et will be removed.
        Do slow transition because Event_timed is so tightly integrated that a front-attack
        by removing things from this class was unsuccessful. Do things step by step by eliminating
        dependencies. Hence, the code could be checked with the current test suite too
        (early testing)
      sql/events.h:
        for easy transition add temporarily parse_data, later Event_timed *et will be removed.
        Do slow transition because Event_timed is so tightly integrated that a front-attack
        by removing things from this class was unsuccessful. Do things step by step by eliminating
        dependencies. Hence, the code could be checked with the current test suite too
        (early testing)
      BitKeeper/etc/ignore:
        Added libmysql/viosocket.o.6WmSJk libmysqld/event_data_objects.cc libmysqld/event_db_repository.cc libmysqld/event_queue.cc server-tools/instance-manager/net_serv.cc to the ignore list
      sql/share/errmsg.txt:
        remove this message, not used and needed for now
      sql/sql_lex.h:
        for easy transition add temporarily parse_data, later Event_timed *et will be removed.
        Do slow transition because Event_timed is so tightly integrated that a front-attack
        by removing things from this class was unsuccessful. Do things step by step by eliminating
        dependencies. Hence, the code could be checked with the current test suite too
        (early testing)
      sql/sql_parse.cc:
        for easy transition add temporarily parse_data, later Event_timed *et will be removed.
        Do slow transition because Event_timed is so tightly integrated that a front-attack
        by removing things from this class was unsuccessful. Do things step by step by eliminating
        dependencies. Hence, the code could be checked with the current test suite too
        (early testing)
      sql/sql_yacc.yy:
        for easy transition add temporarily parse_data, later Event_timed *et will be removed.
        Do slow transition because Event_timed is so tightly integrated that a front-attack
        by removing things from this class was unsuccessful. Do things step by step by eliminating
        dependencies. Hence, the code could be checked with the current test suite too
        (early testing)
      d2db48c6
    • unknown's avatar
      first cut of WL#3337 (New event scheduler locking infrastructure). · e5f8163b
      unknown authored
      Infrastructure built. Added the  foreseen files and change Makefile.am/CMakeLists.txt
      accordingly.
      
      
      libmysqld/Makefile.am:
        add new files. this is first cut of WL3337u
      sql/CMakeLists.txt:
        add more files to build
      sql/Makefile.am:
        add new files. this is first cut of WL3337
      sql/event_scheduler.cc:
        event_timed.h -> event_data_objects.h (WL#3337)
      sql/events.cc:
        event_timed.h -> event_data_objects.h (WL#3337)
      sql/share/errmsg.txt:
        new error message
      sql/event_data_objects.cc:
        event_timed.h -> event_data_objects.h (WL#3337)
      sql/event_data_objects.h:
        event_timed.h -> event_data_objects.h (WL#3337)
      sql/sql_parse.cc:
        event_timed.h -> event_data_objects.h (WL#3337)
      sql/sql_show.cc:
        event_timed.h -> event_data_objects.h (WL#3337)
      sql/sql_yacc.yy:
        event_timed.h -> event_data_objects.h (WL#3337)
      e5f8163b
  3. 26 Jun, 2006 9 commits
  4. 25 Jun, 2006 4 commits
    • unknown's avatar
      Post merge fix · 725ab9df
      unknown authored
      
      mysql-test/r/func_time.result:
        post-merge fix
      mysql-test/r/select.result:
        post-merge fix
      725ab9df
    • unknown's avatar
      Merge mysql.com:/home/emurphy/src/bk-clean/tmp_merge · c2575322
      unknown authored
      into  mysql.com:/home/emurphy/src/bk-clean/mysql-5.1
      
      
      mysql-test/mysql-test-run.sh:
        Auto merged
      mysql-test/valgrind.supp:
        Auto merged
      mysql-test/r/func_str.result:
        Auto merged
      mysql-test/r/insert_select.result:
        Auto merged
      mysql-test/r/myisam.result:
        Auto merged
      mysql-test/t/func_time.test:
        Auto merged
      mysql-test/t/myisam.test:
        Auto merged
      mysql-test/t/select.test:
        Auto merged
      mysys/Makefile.am:
        Auto merged
      sql/field.cc:
        Auto merged
      sql/field.h:
        Auto merged
      sql/ha_ndbcluster.cc:
        Auto merged
      sql/item_cmpfunc.cc:
        Auto merged
      sql/item_strfunc.cc:
        Auto merged
      sql/item_strfunc.h:
        Auto merged
      sql/mysqld.cc:
        Auto merged
      sql/opt_sum.cc:
        Auto merged
      sql/slave.cc:
        Auto merged
      sql/sql_select.cc:
        Auto merged
      storage/ndb/src/kernel/blocks/dbdih/DbdihMain.cpp:
        Auto merged
      storage/ndb/src/ndbapi/ndberror.c:
        Auto merged
      include/Makefile.am:
        manual merge
      mysql-test/r/func_time.result:
        manual merge
      mysql-test/r/select.result:
        manual merge
      c2575322
    • unknown's avatar
      .del-make_win_src_distribution.sh~f80d8fca44e4e5f1: · d98a7999
      unknown authored
        Delete: scripts/make_win_src_distribution.sh
      Makefile.am:
        Unix and Windows now shares source package
      
      
      scripts/Makefile.am:
        Unix and Windows now shares source package
      BitKeeper/deleted/.del-make_win_src_distribution.sh~f80d8fca44e4e5f1:
        Delete: scripts/make_win_src_distribution.sh
      d98a7999
    • unknown's avatar
      BUG#20677: Sporadic failure of test case 'ndb_binlog_multi'. · acd7132e
      unknown authored
      Start test case with a dummy table create and drop. This ensures that
      NDB event subscription is properly set up before the real test starts,
      which otherwise could sometimes cause INSERT events to be lost.
      
      
      mysql-test/r/ndb_binlog_multi.result:
        Start test with dummy table create/drop to avoid a race.
      mysql-test/t/ndb_binlog_multi.test:
        Start test with dummy table create/drop to avoid a race.
      acd7132e
  5. 24 Jun, 2006 4 commits
  6. 23 Jun, 2006 15 commits
    • unknown's avatar
      Merge bk-internal:/home/bk/mysql-5.1 · 0781fc0c
      unknown authored
      into  mysql.com:/data0/knielsen/tmp-5.1
      
      
      0781fc0c
    • unknown's avatar
      Post merge fix. · 3d4632b8
      unknown authored
      3d4632b8
    • unknown's avatar
      Merge mysql.com:/home/emurphy/src/bk-clean/tmp_merge · b02748fd
      unknown authored
      into  mysql.com:/home/emurphy/src/bk-clean/mysql-5.1
      
      
      mysql-test/r/func_time.result:
        Auto merged
      sql/item_cmpfunc.cc:
        Auto merged
      mysql-test/r/lock_multi.result:
        manual merge
      mysql-test/t/lock_multi.test:
        manual merge
      sql/ha_innodb.cc:
        manual merge
      b02748fd
    • unknown's avatar
      Fix for bug #18897 "Events: unauthorized action possible with · d6cf50ca
      unknown authored
      alter event rename".
      
      ALTER EVENT ... RENAME statement hasn't checked privileges
      for the target database. It also caused server crashes when
      target database was not specified explicitly and there was
      no current database.
      
      This fix adds missing privilege check and check for the case
      when target database is not specified explicitly or implicitly.
      
      
      mysql-test/r/events_bugs.result:
        update result
      mysql-test/t/events_bugs.test:
        add test case for bug 18897 Events: unauthorized action possible with alter event
        rename:
        - test rename to db the user does not have access to
        - test rename when there is no selected db
      sql/sql_parse.cc:
        Additional check for the situation when no db is selected.
        CREATE EVENT abc and ALTER EVENT db.abc RENAME TO xyz,
        and DROP EVENT abc
        won't work if there is no selected DB.
      d6cf50ca
    • unknown's avatar
      Merge pchardin@bk-internal.mysql.com:/home/bk/mysql-5.1-runtime · 11f81a7c
      unknown authored
      into  mysql.com:/home/cps/mysql/devel/5.1-curs-bug
      
      
      11f81a7c
    • unknown's avatar
      remove links from bk to get rid of warnings on windows · 7815deb4
      unknown authored
      
      BitKeeper/deleted/.del-sql_state.c~3b39d30b649690f3:
        Delete: server-tools/instance-manager/sql_state.c
      BitKeeper/deleted/.del-password.c~9d4b6a4c57887ac7:
        Delete: server-tools/instance-manager/password.c
      BitKeeper/deleted/.del-pack.c~4754cd15e3058c75:
        Delete: server-tools/instance-manager/pack.c
      BitKeeper/deleted/.del-net_serv.cc~120fb81d7e670308:
        Delete: server-tools/instance-manager/net_serv.cc
      7815deb4
    • unknown's avatar
      Merge mysql.com:/usr/local/mysql/mysql-5.1-vg-apr2 · 83f16e31
      unknown authored
      into  mysql.com:/usr/local/mysql/tmp-5.1
      
      
      server-tools/instance-manager/instance_options.cc:
        Auto merged
      sql/ha_ndbcluster.cc:
        Auto merged
      sql/mysqld.cc:
        Auto merged
      sql/rpl_injector.cc:
        Auto merged
      sql/rpl_injector.h:
        Auto merged
      83f16e31
    • unknown's avatar
      Merge mysql.com:/usr/local/mysql/mysql-5.0-bug20622 · 46d19b74
      unknown authored
      into  mysql.com:/usr/local/mysql/mysql-5.1-vg-apr2
      
      
      mysys/mf_dirname.c:
        Auto merged
      server-tools/instance-manager/instance_options.cc:
        Manual merge.
      46d19b74
    • unknown's avatar
      BUG#20622: Fix one-byte buffer overrun in IM directory string handling. · 0f3cc95b
      unknown authored
      The problem was a call to convert_dirname() with a destination buffer
      that did not have room for the trailing slash added by that function.
      This could cause the instance manager to crash in some cases.
      
      
      mysys/mf_dirname.c:
        Clarify in comments that convert_dirname destination must be larger than
        source to accomodate a trailing slash.
      server-tools/instance-manager/instance_options.cc:
        Fix buffer overrun.
      0f3cc95b
    • unknown's avatar
      Merge monty@192.168.0.9:/my/mysql-5.1 · 2deb5a61
      unknown authored
      into  mysql.com:/home/my/mysql-5.1
      
      
      sql/handler.cc:
        Auto merged
      sql/log_event.cc:
        Auto merged
      2deb5a61
    • unknown's avatar
      Suppress memory leak from 'kill_server' · caf21245
      unknown authored
      (Happens if main thread exists before kill_server thread, which is ok)
      
      
      caf21245
    • unknown's avatar
      Merge ahristov@bk-internal.mysql.com:/home/bk/mysql-5.1-runtime · 641cb772
      unknown authored
      into lmy004.:/work/mysql-5.1-runtime-bug20624
      
      
      641cb772
    • unknown's avatar
      disable events tests in embedded · d0a603e3
      unknown authored
      (fix for bug#20290 Event mechanism incompatible with embedded server, but tests tried)
      
      
      mysql-test/t/events.test:
        disable test in embedded
      mysql-test/t/events_bugs.test:
        disable test in embedded
      mysql-test/t/events_grant.test:
        disable test in embedded
      mysql-test/t/events_logs_tests.test:
        disable test in embedded
      mysql-test/t/events_microsec.test:
        disable test in embedded
      mysql-test/t/events_scheduling.test:
        disable test in embedded
      mysql-test/t/events_stress.test:
        disable test in embedded
      d0a603e3
    • unknown's avatar
      Fixed memory leak (found by rpl_row_inexist_tbl) · 1e4d1f9b
      unknown authored
      
      sql/handler.cc:
        Made code more portable
      1e4d1f9b
    • unknown's avatar
      Merge monty@192.168.0.9:/my/mysql-5.1 · 9d490f4f
      unknown authored
      into  mysql.com:/home/my/mysql-5.1
      
      
      sql/handler.cc:
        Auto merged
      sql/sql_class.h:
        Auto merged
      9d490f4f