1. 19 Apr, 2007 3 commits
  2. 18 Apr, 2007 5 commits
  3. 13 Apr, 2007 2 commits
    • unknown's avatar
      Merge mysql.com:/home/svoj/devel/mysql/BUG27516/mysql-5.0-engines · 1a90e29f
      unknown authored
      into  mysql.com:/home/svoj/devel/mysql/BUG27516/mysql-5.1-engines
      
      
      sql/item_func.cc:
        Auto merged
      sql/sql_table.cc:
        Auto merged
      storage/myisam/mi_info.c:
        Auto merged
      1a90e29f
    • unknown's avatar
      BUG#27516 - divide by zero crash during optimize table · f4a5f3c6
      unknown authored
      When a table status is requested by statement like SHOW TABLE
      STATUS and there is another statement (e.g. DELETE) sets
      number of records to 0 concurrently, we may get division by
      zero error, which crashes a server.
      
      This is fixed by using thread local variable x->records instead
      of shared info->state->records when we check if it is zero and
      divide by it.
      
      
      myisam/mi_info.c:
        Information schema does not lock a table when it requests table
        state info. If another thread sets info->state->records to 0
        after we check if it is 0 and before we divide by it we may get
        division by zero error.
        
        Check and divide by local x->records variable instead of shared
        info->state->records.
      f4a5f3c6
  4. 12 Apr, 2007 1 commit
    • unknown's avatar
      BUG#25951 - ignore/use index does not work with fulltext · 202f34e2
      unknown authored
      IGNORE/USE/FORCE INDEX hints were honored when choosing FULLTEXT
      index.
      
      With this fix these hints are ignored. For regular indexes we may
      perform table scan instead of index lookup when IGNORE INDEX was
      specified. We cannot do this for FULLTEXT in NLQ mode.
      
      
      mysql-test/r/fulltext.result:
        A test case for bug#25951.
      mysql-test/t/fulltext.test:
        A test case for bug#25951.
      sql/item_func.cc:
        IGNOR/USE/FORCE INDEX hints should not be honored when choosing FULLTEXT
        index.
        
        Use proper bitmap, that is not modified by IGNORE/USE/FORCE INDEX hints.
      202f34e2
  5. 10 Apr, 2007 1 commit
    • unknown's avatar
      BUG#24342 - Incorrect results with query over MERGE table · 6866ca00
      unknown authored
      MERGE engine may return incorrect values when several representations
      of equal keys are present in the index. For example "groß" and "gross"
      or "gross" and "gross " (trailing space), which are considered equal,
      but have different lengths.
      
      The problem was that key length was not recalculated after key lookup.
      
      Only MERGE engine is affected.
      
      
      myisam/mi_rkey.c:
        info->lastkey gets rewritten by mi_search. Later we recalculate found lastkey
        length. This is done to make sure that mi_rnext_same gets true, found (not
        searched) lastkey length. Searched and found key lengths may be different,
        for example in case searched key is "groß" and found is "gross" or in case
        a key has trailing spaces.
        
        Unfortunately we recalculate found lastkey length only for first
        underlying table. To recalculate found key length for non-first underlying
        table we need to know how much key segments were used to create this key.
        
        When mi_rkey is called for first underlying table of a merge table, store
        offset to last used key segment.
        
        Restore last_used_keyseg variable when mi_rkey is called for non-first
        underlying table.
      myisam/myisamdef.h:
        Added last_used_keyseg variable to MI_INFO. It is used by merge engine to calculate
        key length.
      myisammrg/myrg_rkey.c:
        Pass last used key segment returned by first table key read to other
        table key reads.
      mysql-test/r/merge.result:
        A test case for bug#24342.
      mysql-test/t/merge.test:
        A test case for bug#24342.
      6866ca00
  6. 08 Apr, 2007 2 commits
  7. 07 Apr, 2007 1 commit
  8. 06 Apr, 2007 13 commits
  9. 05 Apr, 2007 12 commits
    • unknown's avatar
      Fix events.test failure on manu pushbuild hosts (5.1-runtime). · 93e7a470
      unknown authored
      
      sql/event_db_repository.cc:
        Fix events.test failure on many pushbuild hosts (5.1-runtime).
        Make sure that when reading mysql.event the key number matches
        the field number that we're using to read by key.
        Also, print an error in case of a handler error (to not return 
        'Unknown error' when a table is corrupted to the user).
      93e7a470
    • unknown's avatar
      A fix for events_trans.test failure on many hosts (5.1-runtime) · a06ff976
      unknown authored
      
      sql/event_data_objects.cc:
        Disable an event if its data in the table is corrupted.
      sql/events.cc:
        A fix for events_trans failure on most of the hosts.
        A better error message if the event table is old
        (don't suggest it's corrupted, it may simply have bad data).
      a06ff976
    • unknown's avatar
      3d attempt to fix information_schema.test failure on HP-UX. · dd0c20ac
      unknown authored
      Apparently it's the only platform in pushbuild where we 
      compile without openssl.
      
      
      mysql-test/r/information_schema.result:
        Update results.
      mysql-test/r/openssl_1.result:
        Update results.
      mysql-test/t/information_schema.test:
        Move the part of the test case that needs SSL support to 
        openssl_1.test
      mysql-test/t/openssl_1.test:
        Add a test case that needs SSL support.
      dd0c20ac
    • unknown's avatar
      Fix a compile failure on Windows. · 25677bdc
      unknown authored
      25677bdc
    • unknown's avatar
      Fix a compile error with LINT enabled builds. · aadfe5e7
      unknown authored
      aadfe5e7
    • unknown's avatar
      Remove a dead file. · 923d2d3a
      unknown authored
      
      BitKeeper/deleted/.del-openssl_2.result:
        Delete: mysql-test/r/openssl_2.result
      923d2d3a
    • unknown's avatar
      Merge bk-internal.mysql.com:/home/bk/mysql-5.1-runtime · 40e17891
      unknown authored
      into  vajra.(none):/opt/local/work/mysql-5.1-c1
      
      
      sql/mysqld.cc:
        Auto merged
      sql/sql_show.cc:
        Auto merged
      sql/sql_yacc.yy:
        Auto merged
      sql/table.cc:
        Auto merged
      40e17891
    • unknown's avatar
      Post-merge and post-review fixes for the patch for · ff452d05
      unknown authored
      Bug#23631 "Events: SHOW VARIABLES doesn't work when mysql.event 
      is damaged:
      
      
      mysql-test/r/events.result:
        Update results (a post-merge fix)
      mysql-test/r/events_bugs.result:
        Update results (a post-merge fix)
      mysql-test/r/events_scheduling.result:
        Update results (a post-merge fix)
      mysql-test/t/events_scheduling.test:
        Make sure this test has no races.
      sql/event_data_objects.cc:
        Manual post-merge fix for the events replication patch.
      sql/event_data_objects.h:
        A post-merge fix.
      sql/event_db_repository.cc:
        A post-merge fix.
      sql/event_scheduler.cc:
        We should drop the event inside ::execute since there we have
        the right credentials to do so (otherwise Events::drop_event
        returns "access denied" error).
      sql/events.cc:
        A post-review fix for: rename start_or_stop_event_scheduler
        to switch_event_scheduler_state.
      sql/events.h:
        A post-review fix for: rename start_or_stop_event_scheduler
        to switch_event_scheduler_state.
      sql/set_var.cc:
        A post-review fix for: rename start_or_stop_event_scheduler
        to switch_event_scheduler_state.
      sql/sql_yacc.yy:
        Remove unused declaratoins.
      ff452d05
    • unknown's avatar
      Merge tsmith@bk-internal.mysql.com:/home/bk/mysql-5.1-runtime · b4f1d7ba
      unknown authored
      into  siva.hindu.god:/home/tsmith/m/bk/maint/51
      
      
      mysql-test/r/information_schema.result:
        Auto merged
      b4f1d7ba
    • unknown's avatar
      ha_ndbcluster.cc: · 44ac9310
      unknown authored
        Bug #26591  Cluster handler does not set bits in null bytes correctly: Improved comments
      ha_ndbcluster_binlog.cc:
        Bug #26591  Cluster handler does not set bits in null bytes correctly: Using empty_record() instead of bzero
      
      
      sql/ha_ndbcluster.cc:
        Bug #26591  Cluster handler does not set bits in null bytes correctly: Improved comments
      sql/ha_ndbcluster_binlog.cc:
        Bug #26591  Cluster handler does not set bits in null bytes correctly: Using empty_record() instead of bzero
      44ac9310
    • unknown's avatar
      Merge bk-internal.mysql.com:/home/bk/mysql-5.1-runtime · a36054f4
      unknown authored
      into  vajra.(none):/opt/local/work/mysql-5.1-c1
      
      
      mysql-test/r/events_bugs.result:
        Auto merged
      mysql-test/r/events_scheduling.result:
        Auto merged
      mysql-test/t/events.test:
        Auto merged
      mysql-test/t/events_scheduling.test:
        Auto merged
      sql/event_data_objects.h:
        Auto merged
      sql/event_db_repository.h:
        Auto merged
      sql/mysqld.cc:
        Auto merged
      sql/set_var.cc:
        Auto merged
      sql/set_var.h:
        Auto merged
      sql/sql_parse.cc:
        Auto merged
      sql/sql_show.cc:
        Auto merged
      sql/table.h:
        Auto merged
      sql/share/errmsg.txt:
        Auto merged
      mysql-test/r/events.result:
        e
        Use local.
      mysql-test/r/events_restart_phase1.result:
        Use local
      mysql-test/r/events_time_zone.result:
        SCCS merged
      mysql-test/t/events_restart_phase1.test:
        Use local
      sql/event_data_objects.cc:
        Use local
      sql/event_db_repository.cc:
        Manual merge.
      sql/event_queue.cc:
        Manual merge.
      sql/events.cc:
        Manual merge.
      a36054f4
    • unknown's avatar
      A set of changes aiming to make the Event Scheduler more user-friendly · fa1d637e
      unknown authored
      when there are no up-to-date system tables to support it:
       - initialize the scheduler before reporting "Ready for connections".
         This ensures that warnings, if any, are printed before "Ready for
         connections", and this message is not mangled.
       - do not abort the scheduler if there are no system tables
       - check the tables once at start up, remember the status and disable
         the scheduler if the tables are not up to date.
         If one attempts to use the scheduler with bad tables,
         issue an error message.
       - clean up the behaviour of the module under LOCK TABLES and pre-locking
         mode
       - make sure implicit commit of Events DDL works as expected.
       - add more tests
      
      
      Collateral clean ups in the events code.
      
      This patch fixes Bug#23631 Events: SHOW VARIABLES doesn't work 
      when mysql.event is damaged
      
      
      mysql-test/r/events.result:
        Update results.
      mysql-test/r/events_bugs.result:
        Update results.
      mysql-test/r/events_restart_phase1.result:
        Update results.
      mysql-test/r/events_restart_phase2.result:
        Update results.
      mysql-test/r/events_restart_phase3.result:
        Update results.
      mysql-test/r/events_scheduling.result:
        Update results.
      mysql-test/r/events_time_zone.result:
        Update results.
      mysql-test/t/events.test:
        Add new tests for tampering with mysql.event and some more
        tests for sub-statements, LOCK TABLES mode and pre-locking.
      mysql-test/t/events_bugs.test:
        Move the non-concurrent part of test for Bug 16420 to this file.
      mysql-test/t/events_restart_phase1.test:
        Rewrite events_restart_* tests to take into account that now
        we check mysql.event table only once, at server startup.
      mysql-test/t/events_restart_phase2.test:
        Rewrite events_restart_* tests to take into account that now
        we check mysql.event table only once, at server startup.
      mysql-test/t/events_restart_phase3.test:
        Rewrite events_restart_* tests to take into account that now
        we check mysql.event table only once, at server startup.
      mysql-test/t/events_scheduling.test:
        Add more coverage for event_scheduler global variable.
      mysql-test/t/events_time_zone.test:
        Move the non-concurrent part of the tests for Bug 16420 to 
        events_bugs.test
      sql/event_data_objects.cc:
        Move update_timing_fields functionality to Event_db_repository.
        Make loading of events from a table record more robust to tampering
        with the table - now we do not check mysql.event on every table open.
      sql/event_data_objects.h:
        Cleanup.
      sql/event_db_repository.cc:
        Now Event_db_repository is responsible for table I/O only.
        All the logic of events DDL is handled outside, in Events class please
        refer to the added test coverage to see how this change affected
        the behavior of Event Scheduler.
        Dependency on sp_head.h and sp.h removed.
        Make this module robust to tweaks with mysql.event table.
        Move check_system_tables from events.cc to this file
      sql/event_db_repository.h:
        Cleanup declarations (remove unused ones, change return type to bool
        from int).
      sql/event_queue.cc:
        Update to adapt to the new start up scheme of the Event Scheduler.
      sql/event_queue.h:
        Cleanup declarations.
      sql/event_scheduler.cc:
        Make all the error messages uniform:
        [SEVERITY] Event Scheduler: [user][schema.event] message
        Using append_identifier for error logging was an overkill - we may 
        need it only if the system character set may have NUL (null character)
        as part of a valid identifier, this is currently never the case, 
        whereas additional quoting did not look nice in the log.
      sql/event_scheduler.h:
        Cleanup the headers.
      sql/events.cc:
        Use a different start up procedure of Event Scheduler:
        - at start up, try to check the system tables first.
        If they are not up-to-date, disable the scheduler.
        - try to load all the active events. In case of a load error, abort
        start up.
        - do not parse an event on start up. Parsing only gives some information
        about event validity, but far not all.
        Consolidate the business logic of Events DDL in this module.
        Now opt_event_scheduler may change after start up and thus is protected
        by LOCK_event_metadata mutex.
      sql/events.h:
        Use all-static-data-members approach to implement Singleton pattern.
      sql/mysqld.cc:
        New invocation scheme of Events. Move some logic to events.cc.
        Initialize the scheduler before reporting "Ready for connections".
      sql/set_var.cc:
        Clean up sys_var_thd_sql_mode::symbolic_mode_representation
        to work with a LEX_STRING.
        Move more logic related to @@events_scheduler global variable to Events
        module.
      sql/set_var.h:
        Update declarations.
      sql/share/errmsg.txt:
        If someone tampered with mysql.event table after the server has
        started we no longer give him/her a complete report what was actually 
        broken. Do not send the user to look at the error log in such case,
        as there is nothing there (check_table_intact is not executed).
      sql/sp_head.cc:
        Update to a new declaration of 
        sys_var_thd_sql_mode::symbolic_mode_representation
      sql/sql_db.cc:
        New invocation scheme of Events module.
      sql/sql_parse.cc:
        Move more logic to Events module. Make sure that we are consistent
        in the way access rights are checked for Events DDL: always
        after committing the current transaction and checking the system tables.
      sql/sql_show.cc:
        Update to the new declarations of 
        sys_var_thd_sql_mode::symbolic_mode_representation
      sql/sql_test.cc:
        New invocation scheme of events.
      sql/table.cc:
        mysql.event is a system table.
        Update check_table_intact to be concurrent, more verbose, and less smart.
      sql/table.h:
        Add a helper method.
      mysql-test/r/events_trans.result:
        New BitKeeper file ``mysql-test/r/events_trans.result''
      mysql-test/t/events_trans.test:
        New BitKeeper file ``mysql-test/t/events_trans.test'':
        test cases for Event Scheduler that require a transactional
        storage engine.
      fa1d637e