An error occurred fetching the project authors.
  1. 24 Mar, 2009 2 commits
  2. 20 Mar, 2009 1 commit
  3. 05 Mar, 2009 3 commits
    • vasil's avatar
      branches/zip: Merge revision 4359 from branches/5.1: · eaf12b94
      vasil authored
        ------------------------------------------------------------------------
        r4359 | vasil | 2009-03-05 21:42:01 +0200 (Thu, 05 Mar 2009) | 14 lines
        Changed paths:
           M /branches/5.1/handler/ha_innodb.cc
        
        branches/5.1:
        
        Merge a change from MySQL:
        
          ------------------------------------------------------------
          revno: 2747
          committer: Timothy Smith <timothy.smith@sun.com>
          branch nick: 51
          timestamp: Fri 2009-01-16 17:49:07 +0100
          message:
            Add another cast to ignore int/ulong difference in error types, silence warning on Win64
          modified:
            storage/innobase/handler/ha_innodb.cc
        
        ------------------------------------------------------------------------
      eaf12b94
    • vasil's avatar
      branches/zip: Merge revision 4358 from branches/5.1 (resolving a conflict): · bbbce3d8
      vasil authored
        ------------------------------------------------------------------------
        r4358 | vasil | 2009-03-05 21:21:10 +0200 (Thu, 05 Mar 2009) | 21 lines
        Changed paths:
           M /branches/5.1/handler/ha_innodb.cc
        
        branches/5.1:
        
        Merge a change from MySQL:
        
          ------------------------------------------------------------
          revno: 2728.19.1
          committer: Alfranio Correia <alfranio.correia@sun.com>
          branch nick: mysql-5.1-bugteam
          timestamp: Tue 2009-02-03 11:36:46 +0000
          message:
            BUG#42445 Warning messages in innobase/handler/ha_innodb.cc
                  
            There was a type casting problem in the storage/innobase/handler/ha_innodb.cc,
            (int ha_innobase::write_row(...)). Innobase uses has an internal error variable
            of type 'ulint' while mysql uses an 'int'. 
                  
            To fix the problem the function manipulates an error variable of
            type 'ulint' and only casts it into 'int' when needs to return the value.
          modified:
            storage/innobase/handler/ha_innodb.cc
        
        ------------------------------------------------------------------------
      bbbce3d8
    • vasil's avatar
      branches/zip: Merge revisions 4287:4357 from branches/5.1: · 602ce08d
      vasil authored
        ------------------------------------------------------------------------
        r4325 | sunny | 2009-03-02 02:28:52 +0200 (Mon, 02 Mar 2009) | 10 lines
        Changed paths:
           M /branches/5.1/handler/ha_innodb.cc
           M /branches/5.1/mysql-test/innodb-autoinc.result
           M /branches/5.1/mysql-test/innodb-autoinc.test
        
        branches/5.1: Bug#43203: Overflow from auto incrementing causes server segv
        It was not a SIGSEGV but an assertion failure. The assertion was checking
        the invariant that *first_value passed in by MySQL doesn't contain a value
        that is greater than the max value for that type. The assertion has been
        changed to a check and if the value is greater than the max we report a
        generic AUTOINC failure.
        
        rb://93
        Approved by Heikki
        
        ------------------------------------------------------------------------
      602ce08d
  4. 25 Feb, 2009 2 commits
    • marko's avatar
      branches/zip: Correct the initialization of the memory subsystem once · 93ec81bb
      marko authored
      again, to finally put Issue #181 to rest.
      
      Revert some parts of r4274.  It is best not to call ut_malloc() before
      srv_general_init().
      
      mem_init(): Do not call ut_mem_init().
      
      srv_general_init(): Initialize the memory subsystem in two phases:
      first ut_mem_init(), then mem_init().  This is because os_sync_init()
      and sync_init() depend on ut_mem_init() and mem_init() depends on
      os_sync_init() or sync_init().
      
      srv_parse_data_file_paths_and_sizes(),
      srv_parse_log_group_home_dirs(): Remove the output parameters.  Assign
      to the global variables directly.  Allocate memory with malloc()
      instead of ut_malloc(), because these functions will be called before
      srv_general_init().
      
      srv_free_paths_and_sizes(): New function, for cleaning up after
      srv_parse_data_file_paths_and_sizes() and
      srv_parse_log_group_home_dirs().
      
      rb://92 approved by Sunny Bains
      93ec81bb
    • vasil's avatar
      branches/zip: Merge revisions 4261:4287 from branches/5.1: · 63107fbd
      vasil authored
        ------------------------------------------------------------------------
        r4287 | sunny | 2009-02-25 05:32:01 +0200 (Wed, 25 Feb 2009) | 10 lines
        Changed paths:
           M /branches/5.1/handler/ha_innodb.cc
           M /branches/5.1/mysql-test/innodb-autoinc.result
           M /branches/5.1/mysql-test/innodb-autoinc.test
        
        branches/5.1: Fix Bug#42714 AUTO_INCREMENT errors in 5.1.31. There are two
        changes to the autoinc handling.
        
        1. To fix the immediate problem from the bug report, we must ensure that the
           value written to the table is always less than the max value stored in
           dict_table_t.
        
        2. The second related change is that according to MySQL documentation when
           the offset is greater than the increment, we should ignore the offset.
        
        ------------------------------------------------------------------------
      63107fbd
  5. 23 Feb, 2009 1 commit
    • marko's avatar
      branches/zip: Fix bugs in the fix of Issue #181. Tested inside and · d25cf617
      marko authored
      outside Valgrind, with innodb_use_sys_malloc set to 0 and 1.
      
      mem_init(): Invoke ut_mem_init() before mem_pool_create(), because
      the latter one will invoke ut_malloc().
      
      srv_general_init(): Do not initialize the memory subsystem (mem_init()).
      
      innobase_init(): Initialize the memory subsystem (mem_init()) before
      calling srv_parse_data_file_paths_and_sizes(), which needs ut_malloc().
      Call ut_free_all_mem() in error handling to clean up after the mem_init().
      d25cf617
  6. 20 Feb, 2009 2 commits
    • marko's avatar
      branches/zip: Make innodb_use_sys_malloc=ON the default. · e31baa84
      marko authored
      Replace srv_use_sys_malloc with UNIV_LIKELY(srv_use_sys_malloc)
      to improve branch prediction in the default case.
      
      Approved by Ken over the IM.
      e31baa84
    • vasil's avatar
      branches/zip: · b4399fa8
      vasil authored
      Merge revisions 4035:4261 from branches/5.1:
      
        ------------------------------------------------------------------------
        r4065 | sunny | 2009-01-29 16:01:36 +0200 (Thu, 29 Jan 2009) | 8 lines
        Changed paths:
           M /branches/5.1/handler/ha_innodb.cc
           M /branches/5.1/mysql-test/innodb-autoinc.result
           M /branches/5.1/mysql-test/innodb-autoinc.test
        
        branches/5.1: In the last round of AUTOINC cleanup we assumed that AUTOINC
        is only defined for integer columns. This caused an assertion failure when
        we checked for the maximum value of a column type. We now calculate the
        max value for floating-point autoinc columns too.
        
        Fix Bug#42400 - InnoDB autoinc code can't handle floating-point columns
        rb://84 and Mantis issue://162
        
        ------------------------------------------------------------------------
        r4111 | sunny | 2009-02-03 22:06:52 +0200 (Tue, 03 Feb 2009) | 2 lines
        Changed paths:
           M /branches/5.1/handler/ha_innodb.cc
        
        branches/5.1: Add the ULL suffix otherwise there is an overflow.
        
        ------------------------------------------------------------------------
        r4128 | vasil | 2009-02-08 21:36:45 +0200 (Sun, 08 Feb 2009) | 18 lines
        Changed paths:
           M /branches/5.1/mysql-test/innodb-autoinc.result
           M /branches/5.1/mysql-test/innodb-autoinc.test
        
        branches/5.1:
        
        Merge a change from MySQL:
        
          ------------------------------------------------------------
          revno: 2709.20.31
          committer: Timothy Smith <timothy.smith@sun.com>
          branch nick: 51
          timestamp: Fri 2008-12-19 01:28:51 +0100
          message:
            Disable part of innodb-autoinc.test, because the MySQL server asserts when
            compiled --with-debug, due to bug 39828, "autoinc wraps around when offset and
            increment > 1".  This change should be reverted when that bug is fixed (and a
            a few other minor changes to the test as described in comments).
          modified:
            mysql-test/r/innodb-autoinc.result
            mysql-test/t/innodb-autoinc.test
        
        ------------------------------------------------------------------------
        r4129 | vasil | 2009-02-08 21:54:25 +0200 (Sun, 08 Feb 2009) | 310 lines
        Changed paths:
           M /branches/5.1/mysql-test/innodb-autoinc.test
        
        branches/5.1:
        
        Merge a change from MySQL:
        
        [looks like the changes to innodb-autoinc.test were made as part of
        the following huge merge, but we are merging only changes to that file]
        
          ------------------------------------------------------------
          revno: 2546.47.1
          committer: Luis Soares <luis.soares@sun.com>
          branch nick: 5.1-rpl
          timestamp: Fri 2009-01-23 13:22:05 +0100
          message:
            merge: 5.1 -> 5.1-rpl
            conflicts:
              Text conflict in client/mysqltest.cc
              Text conflict in mysql-test/include/wait_until_connected_again.inc
              Text conflict in mysql-test/lib/mtr_report.pm
              Text conflict in mysql-test/mysql-test-run.pl
              Text conflict in mysql-test/r/events_bugs.result
              Text conflict in mysql-test/r/log_state.result
              Text conflict in mysql-test/r/myisam_data_pointer_size_func.result
              Text conflict in mysql-test/r/mysqlcheck.result
              Text conflict in mysql-test/r/query_cache.result
              Text conflict in mysql-test/r/status.result
              Text conflict in mysql-test/suite/binlog/r/binlog_index.result
              Text conflict in mysql-test/suite/binlog/r/binlog_innodb.result
              Text conflict in mysql-test/suite/rpl/r/rpl_packet.result
              Text conflict in mysql-test/suite/rpl/t/rpl_packet.test
              Text conflict in mysql-test/t/disabled.def
              Text conflict in mysql-test/t/events_bugs.test
              Text conflict in mysql-test/t/log_state.test
              Text conflict in mysql-test/t/myisam_data_pointer_size_func.test
              Text conflict in mysql-test/t/mysqlcheck.test
              Text conflict in mysql-test/t/query_cache.test
              Text conflict in mysql-test/t/rpl_init_slave_func.test
              Text conflict in mysql-test/t/status.test
          removed:
            mysql-test/suite/parts/r/partition_bit_ndb.result
            mysql-test/suite/parts/t/partition_bit_ndb.test
            mysql-test/suite/parts/t/partition_sessions.test
            mysql-test/suite/sys_vars/inc/tmp_table_size_basic.inc
            mysql-test/suite/sys_vars/r/tmp_table_size_basic_32.result
            mysql-test/suite/sys_vars/r/tmp_table_size_basic_64.result
            mysql-test/suite/sys_vars/t/tmp_table_size_basic_32.test
            mysql-test/suite/sys_vars/t/tmp_table_size_basic_64.test
            mysql-test/t/log_bin_trust_function_creators_func-master.opt
            mysql-test/t/rpl_init_slave_func-slave.opt
          added:
            mysql-test/include/check_events_off.inc
            mysql-test/include/cleanup_fake_relay_log.inc
            mysql-test/include/have_simple_parser.inc
            mysql-test/include/no_running_event_scheduler.inc
            mysql-test/include/no_running_events.inc
            mysql-test/include/running_event_scheduler.inc
            mysql-test/include/setup_fake_relay_log.inc
            mysql-test/include/wait_condition_sp.inc
            mysql-test/r/fulltext_plugin.result
            mysql-test/r/have_simple_parser.require
            mysql-test/r/innodb_bug38231.result
            mysql-test/r/innodb_bug39438.result
            mysql-test/r/innodb_mysql_rbk.result
            mysql-test/r/partition_innodb_semi_consistent.result
            mysql-test/r/query_cache_28249.result
            mysql-test/r/status2.result
            mysql-test/std_data/bug40482-bin.000001
            mysql-test/suite/binlog/r/binlog_innodb_row.result
            mysql-test/suite/binlog/t/binlog_innodb_row.test
            mysql-test/suite/rpl/r/rpl_binlog_corruption.result
            mysql-test/suite/rpl/t/rpl_binlog_corruption-master.opt
            mysql-test/suite/rpl/t/rpl_binlog_corruption.test
            mysql-test/suite/sys_vars/r/tmp_table_size_basic.result
            mysql-test/suite/sys_vars/t/tmp_table_size_basic.test
            mysql-test/t/fulltext_plugin-master.opt
            mysql-test/t/fulltext_plugin.test
            mysql-test/t/innodb_bug38231.test
            mysql-test/t/innodb_bug39438-master.opt
            mysql-test/t/innodb_bug39438.test
            mysql-test/t/innodb_mysql_rbk-master.opt
            mysql-test/t/innodb_mysql_rbk.test
            mysql-test/t/partition_innodb_semi_consistent-master.opt
            mysql-test/t/partition_innodb_semi_consistent.test
            mysql-test/t/query_cache_28249.test
            mysql-test/t/status2.test
          renamed:
            mysql-test/suite/funcs_1/r/is_collation_character_set_applicability.result => mysql-test/suite/funcs_1/r/is_coll_char_set_appl.result
            mysql-test/suite/funcs_1/t/is_collation_character_set_applicability.test => mysql-test/suite/funcs_1/t/is_coll_char_set_appl.test
          modified:
            .bzr-mysql/default.conf
            CMakeLists.txt
            client/mysql.cc
            client/mysql_upgrade.c
            client/mysqlcheck.c
            client/mysqltest.cc
            configure.in
            extra/resolve_stack_dump.c
            extra/yassl/include/openssl/ssl.h
            include/config-win.h
            include/m_ctype.h
            include/my_global.h
            mysql-test/extra/binlog_tests/database.test
            mysql-test/extra/rpl_tests/rpl_auto_increment.test
            mysql-test/include/commit.inc
            mysql-test/include/have_32bit.inc
            mysql-test/include/have_64bit.inc
            mysql-test/include/index_merge1.inc
            mysql-test/include/linux_sys_vars.inc
            mysql-test/include/windows_sys_vars.inc
            mysql-test/lib/mtr_report.pm
            mysql-test/mysql-test-run.pl
            mysql-test/r/alter_table.result
            mysql-test/r/commit_1innodb.result
            mysql-test/r/create.result
            mysql-test/r/csv.result
            mysql-test/r/ctype_ucs.result
            mysql-test/r/date_formats.result
            mysql-test/r/events_bugs.result
            mysql-test/r/events_scheduling.result
            mysql-test/r/fulltext.result
            mysql-test/r/func_if.result
            mysql-test/r/func_in.result
            mysql-test/r/func_str.result
            mysql-test/r/func_time.result
            mysql-test/r/grant.result
            mysql-test/r/index_merge_myisam.result
            mysql-test/r/information_schema.result
            mysql-test/r/innodb-autoinc.result
            mysql-test/r/innodb.result
            mysql-test/r/innodb_mysql.result
            mysql-test/r/log_bin_trust_function_creators_func.result
            mysql-test/r/log_state.result
            mysql-test/r/myisampack.result
            mysql-test/r/mysql.result
            mysql-test/r/mysqlcheck.result
            mysql-test/r/partition_datatype.result
            mysql-test/r/partition_mgm.result
            mysql-test/r/partition_pruning.result
            mysql-test/r/query_cache.result
            mysql-test/r/read_buffer_size_basic.result
            mysql-test/r/read_rnd_buffer_size_basic.result
            mysql-test/r/rpl_init_slave_func.result
            mysql-test/r/select.result
            mysql-test/r/status.result
            mysql-test/r/strict.result
            mysql-test/r/temp_table.result
            mysql-test/r/type_bit.result
            mysql-test/r/type_date.result
            mysql-test/r/type_float.result
            mysql-test/r/warnings_engine_disabled.result
            mysql-test/r/xml.result
            mysql-test/suite/binlog/r/binlog_database.result
            mysql-test/suite/binlog/r/binlog_index.result
            mysql-test/suite/binlog/r/binlog_innodb.result
            mysql-test/suite/binlog/r/binlog_row_mix_innodb_myisam.result
            mysql-test/suite/binlog/t/binlog_innodb.test
            mysql-test/suite/funcs_1/r/is_columns_is.result
            mysql-test/suite/funcs_1/r/is_engines.result
            mysql-test/suite/funcs_1/r/storedproc.result
            mysql-test/suite/funcs_1/storedproc/param_check.inc
            mysql-test/suite/funcs_2/t/disabled.def
            mysql-test/suite/ndb/t/disabled.def
            mysql-test/suite/parts/r/partition_bit_innodb.result
            mysql-test/suite/parts/r/partition_bit_myisam.result
            mysql-test/suite/parts/r/partition_special_innodb.result
            mysql-test/suite/parts/t/disabled.def
            mysql-test/suite/parts/t/partition_special_innodb.test
            mysql-test/suite/parts/t/partition_value_innodb.test
            mysql-test/suite/parts/t/partition_value_myisam.test
            mysql-test/suite/parts/t/partition_value_ndb.test
            mysql-test/suite/rpl/r/rpl_auto_increment.result
            mysql-test/suite/rpl/r/rpl_packet.result
            mysql-test/suite/rpl/r/rpl_row_create_table.result
            mysql-test/suite/rpl/r/rpl_slave_skip.result
            mysql-test/suite/rpl/r/rpl_trigger.result
            mysql-test/suite/rpl/t/disabled.def
            mysql-test/suite/rpl/t/rpl_packet.test
            mysql-test/suite/rpl/t/rpl_row_create_table.test
            mysql-test/suite/rpl/t/rpl_slave_skip.test
            mysql-test/suite/rpl/t/rpl_trigger.test
            mysql-test/suite/rpl_ndb/t/disabled.def
            mysql-test/suite/sys_vars/inc/key_buffer_size_basic.inc
            mysql-test/suite/sys_vars/inc/sort_buffer_size_basic.inc
            mysql-test/suite/sys_vars/r/key_buffer_size_basic_32.result
            mysql-test/suite/sys_vars/r/key_buffer_size_basic_64.result
            mysql-test/suite/sys_vars/r/sort_buffer_size_basic_32.result
            mysql-test/suite/sys_vars/r/sort_buffer_size_basic_64.result
            mysql-test/t/alter_table.test
            mysql-test/t/create.test
            mysql-test/t/csv.test
            mysql-test/t/ctype_ucs.test
            mysql-test/t/date_formats.test
            mysql-test/t/disabled.def
            mysql-test/t/events_bugs.test
            mysql-test/t/events_scheduling.test
            mysql-test/t/fulltext.test
            mysql-test/t/func_if.test
            mysql-test/t/func_in.test
            mysql-test/t/func_str.test
            mysql-test/t/func_time.test
            mysql-test/t/grant.test
            mysql-test/t/information_schema.test
            mysql-test/t/innodb-autoinc.test
            mysql-test/t/innodb.test
            mysql-test/t/innodb_mysql.test
            mysql-test/t/log_bin_trust_function_creators_func.test
            mysql-test/t/log_state.test
            mysql-test/t/myisam_data_pointer_size_func.test
            mysql-test/t/myisampack.test
            mysql-test/t/mysql.test
            mysql-test/t/mysqlcheck.test
            mysql-test/t/partition_innodb_stmt.test
            mysql-test/t/partition_mgm.test
            mysql-test/t/partition_pruning.test
            mysql-test/t/query_cache.test
            mysql-test/t/rpl_init_slave_func.test
            mysql-test/t/select.test
            mysql-test/t/status.test
            mysql-test/t/strict.test
            mysql-test/t/temp_table.test
            mysql-test/t/type_bit.test
            mysql-test/t/type_date.test
            mysql-test/t/type_float.test
            mysql-test/t/warnings_engine_disabled.test
            mysql-test/t/xml.test
            mysys/my_getopt.c
            mysys/my_init.c
            scripts/mysql_install_db.sh
            sql-common/my_time.c
            sql/field.cc
            sql/field.h
            sql/filesort.cc
            sql/ha_partition.cc
            sql/ha_partition.h
            sql/item.cc
            sql/item_cmpfunc.cc
            sql/item_func.h
            sql/item_strfunc.cc
            sql/item_sum.cc
            sql/item_timefunc.cc
            sql/item_timefunc.h
            sql/log.cc
            sql/log.h
            sql/log_event.cc
            sql/log_event.h
            sql/mysql_priv.h
            sql/mysqld.cc
            sql/opt_range.cc
            sql/partition_info.cc
            sql/repl_failsafe.cc
            sql/rpl_constants.h
            sql/set_var.cc
            sql/slave.cc
            sql/spatial.h
            sql/sql_acl.cc
            sql/sql_base.cc
            sql/sql_binlog.cc
            sql/sql_class.h
            sql/sql_cursor.cc
            sql/sql_delete.cc
            sql/sql_lex.cc
            sql/sql_lex.h
            sql/sql_locale.cc
            sql/sql_parse.cc
            sql/sql_partition.cc
            sql/sql_plugin.cc
            sql/sql_plugin.h
            sql/sql_profile.cc
            sql/sql_repl.cc
            sql/sql_select.cc
            sql/sql_select.h
            sql/sql_show.cc
            sql/sql_table.cc
            sql/sql_trigger.cc
            sql/sql_trigger.h
            sql/table.cc
            sql/table.h
            sql/unireg.cc
            storage/csv/ha_tina.cc
            storage/federated/ha_federated.cc
            storage/heap/ha_heap.cc
            storage/innobase/Makefile.am
            storage/innobase/btr/btr0sea.c
            storage/innobase/buf/buf0lru.c
            storage/innobase/dict/dict0dict.c
            storage/innobase/dict/dict0mem.c
            storage/innobase/handler/ha_innodb.cc
            storage/innobase/handler/ha_innodb.h
            storage/innobase/include/btr0sea.h
            storage/innobase/include/dict0dict.h
            storage/innobase/include/dict0mem.h
            storage/innobase/include/ha_prototypes.h
            storage/innobase/include/lock0lock.h
            storage/innobase/include/row0mysql.h
            storage/innobase/include/sync0sync.ic
            storage/innobase/include/ut0ut.h
            storage/innobase/lock/lock0lock.c
            storage/innobase/os/os0file.c
            storage/innobase/plug.in
            storage/innobase/row/row0mysql.c
            storage/innobase/row/row0sel.c
            storage/innobase/srv/srv0srv.c
            storage/innobase/srv/srv0start.c
            storage/innobase/ut/ut0ut.c
            storage/myisam/ft_boolean_search.c
            strings/ctype.c
            strings/xml.c
            tests/mysql_client_test.c
            win/configure.js
            mysql-test/suite/funcs_1/t/is_coll_char_set_appl.test
        
        ------------------------------------------------------------------------
        r4165 | calvin | 2009-02-12 01:34:27 +0200 (Thu, 12 Feb 2009) | 1 line
        Changed paths:
           M /branches/5.1/handler/ha_innodb.cc
        
        branches/5.1: minor non-functional changes.
        ------------------------------------------------------------------------
      b4399fa8
  7. 17 Feb, 2009 1 commit
    • vasil's avatar
      branches/zip: · c6232c06
      vasil authored
      To the files touched by the Google patch from c4144 (excluding
      include/os0sync.ic because later we removed Google code from that file):
      
      * Remove the Google license
      * Remove old Innobase copyright lines
      * Add a reference to the Google license and to the GPLv2 license at the top,
      as recommended by the lawyers at Oracle Legal.
      c6232c06
  8. 11 Feb, 2009 1 commit
  9. 10 Feb, 2009 1 commit
  10. 09 Feb, 2009 1 commit
    • inaam's avatar
      branches/zip rb://30 · a1bb700f
      inaam authored
      This patch changes the innodb mutexes and rw_locks implementation.
      On supported platforms it uses GCC builtin atomics. These changes
      are based on the patch sent by Mark Callaghan of Google under BSD
      license. More technical discussion can be found at rb://30
      
      Approved by: Heikki
      a1bb700f
  11. 30 Jan, 2009 2 commits
    • marko's avatar
      branches/zip: Make innodb_adaptive_hash_index settable. · 6aab3916
      marko authored
      btr_search_disabled: Rename to btr_search_enabled and change the type
      to char, so that it can be directly linked to the MySQL parameters.
      Note that the variable is protected by btr_search_latch and
      btr_search_enabled_mutex, a new mutex introduced in this patch.
      
      btr_search_enabled_mutex: A new mutex, to protect btr_search_enabled
      together with btr_search_latch.
      
      buf_pool_drop_hash_index(): New function, to be called from
      btr_search_disable().
      
      btr_search_disable(), btr_search_enable(): Fix bugs.  These functions
      were previously unused.
      
      btr_search_guess_on_hash(), btr_search_build_page_hash_index():
      Check btr_search_enabled once more, while holding btr_search_latch.
      
      btr_cur_search_to_nth_level(): Note that the reads of btr_search_enabled
      may be dirty and explain why it should not be a problem.
      
      innobase_adaptive_hash_index: Remove. The variable btr_search_enabled will be used directly instead.
      
      innodb_adaptive_hash_index_update(): New function, an update callback for
      innodb_adaptive_hash_index.  This will call either btr_search_disable()
      or btr_search_enable() when the value is assigned.  The functions will
      be called even if the value does not appear to be changed, e.g., when
      setting from TRUE to TRUE or FALSE to FALSE.
      
      rb://85 approved by Heikki Tuuri.  This addresses Issue #163.
      6aab3916
    • marko's avatar
      branches/zip: ibuf_use_t: Add the constant IBUF_USE_COUNT, to eliminate · 635268b7
      marko authored
      a gcc warning about an assertion that trivially holds.
      The warning was introduced in r4061, in the merge of
      branches/innodb+ -r4053.
      
      ibuf_insert(): Let an assertion fail if ibuf_use is unknown.
      635268b7
  12. 29 Jan, 2009 2 commits
    • marko's avatar
      branches/zip: Port the applicable parts of r4053 from branches/innodb+: · 8b025adb
      marko authored
      Implement the global variable innodb_change_buffering, with the
      following values:
      
      none - buffer nothing
      inserts - buffer inserts (the default)
      
      Approved by Ken Jacobs.
      8b025adb
    • calvin's avatar
      branches/zip: Merge revisions 4032:4035 from branches/5.1 · 533afa46
      calvin authored
      All InnoDB related tests passed on Windows, except
      known failure in partition_innodb_semi_consistent.
      
      The inadvertent change to btr0sea.c in this commit is reverted in r4060.
      
        ------------------------------------------------------------------------
        r4035 | vasil | 2009-01-26 09:26:25 -0600 (Mon, 26 Jan 2009) | 23 lines
      
        branches/5.1:
      
        Merge a change from MySQL:
      
          ------------------------------------------------------------
          revno: 2646.161.4
          committer: Tatiana A. Nurnberg <azundris@mysql.com>
          branch nick: 51-31177v2
          timestamp: Mon 2009-01-12 06:32:49 +0100
          message:
            Bug#31177: Server variables can't be set to their current values
      
            Bounds-checks and blocksize corrections were applied to user-input,
            but constants in the server were trusted implicitly. If these values
            did not actually meet the requirements, the user could not set change
            a variable, then set it back to the (wonky) factory default or maximum
            by explicitly specifying it (SET <var>=<value> vs SET <var>=DEFAULT).
      
            Now checks also apply to the server's presets. Wonky values and maxima
            get corrected at startup. Consequently all non-offsetted values the user
            sees are valid, and users can set the variable to that exact value if
            they so desire.
      533afa46
  13. 13 Jan, 2009 1 commit
    • marko's avatar
      branches/zip: In hash table lookups, assert that the traversed items · 2f7bcc7d
      marko authored
      satisfy some conditions when UNIV_DEBUG is defined.
      
      HASH_SEARCH(): New parameter: ASSERTION. All users will pass an appropriate
      ut_ad() or nothing.
      
      dict_table_add_to_columns(): Assert that the table being added to the data
      dictionary cache is not already being pointed to by the name_hash and
      id_hash tables.
      
      HASH_SEARCH_ALL(): New macro, for use in dict_table_add_to_columns().
      
      dict_mem_table_free(): Set ut_d(table->cached = FALSE), so that we can
      check ut_ad(table->cached) when traversing the hash tables, as in
      HASH_SEARCH(name_hash, dict_sys->table_hash, ...) and
      HASH_SEARCH(id_hash, dict_sys->table_id_hash, ...).
      
      dict_table_get_low(), dict_table_get_on_id_low(): Assert
      ut_ad(!table || table->cached).
      
      fil_space_get_by_id(): Check ut_ad(space->magic_n == FIL_SPACE_MAGIC_N)
      in HASH_SEARCH(hash, fil_system->spaces, ...).
      
      fil_space_get_by_name(): Check ut_ad(space->magic_n == FIL_SPACE_MAGIC_N)
      in HASH_SEARCH(name_hash, fil_system->name_hash, ...).
      
      buf_buddy_block_free(): Check that the blocks are in valid state in
      HASH_SEARCH(hash, buf_pool->zip_hash, ...).
      
      buf_page_hash_get(): Check that the blocks are in valid state in
      HASH_SEARCH(hash, buf_pool->page_hash, ...).
      
      get_share(), free_share(): Check ut_ad(share->use_count > 0) in
      HASH_SEARCH(table_name_hash, innobase_open_tables, ...).
      
      This was posted as rb://75 for tracking down errors similar to Issue #153.
      2f7bcc7d
  14. 07 Jan, 2009 1 commit
    • marko's avatar
      branches/zip: Do not call trx_allocate_for_mysql() directly, but use · d019dd37
      marko authored
      helper functions that initialize some members of the transaction struct.
      (Bug #41680)
      
      innobase_trx_init(): New function: initialize some fields of a
      transaction struct from a MySQL THD object.
      
      innobase_trx_allocate(): New function: allocate and initialize a
      transaction struct.
      
      check_trx_exists(): Use the above two functions.
      
      ha_innobase::delete_table(), ha_innobase::rename_table(),
      ha_innobase::add_index(), ha_innobase::final_drop_index():
      Use innobase_trx_allocate().
      
      innobase_drop_database(): In the Windows plugin, initialize the trx_t
      specially, because the THD is not available.  Otherwise, use
      innobase_trx_allocate().
      
      rb://69 accepted by Heikki Tuuri
      d019dd37
  15. 05 Jan, 2009 1 commit
    • marko's avatar
      branches/zip: Merge revisions 3598:3601 from branches/5.1: · 6c9b6169
      marko authored
        ------------------------------------------------------------------------
        r3601 | marko | 2008-12-22 16:05:19 +0200 (Mon, 22 Dec 2008) | 9 lines
      
        branches/5.1: Make
        SET SESSION TRANSACTION ISOLATION LEVEL READ COMMITTED
        a true replacement of SET GLOBAL INNODB_LOCKS_UNSAFE_FOR_BINLOG=1.
        This fixes an error that was introduced in r370, causing
        semi-consistent read not to not unlock rows in READ COMMITTED mode.
        (Bug #41671, Issue #146)
      
        rb://67 approved by Heikki Tuuri
        ------------------------------------------------------------------------
      6c9b6169
  16. 02 Jan, 2009 2 commits
    • inaam's avatar
      branches/zip: Implement the parameter innodb_use_sys_malloc · 09a089ec
      inaam authored
      (false by default), for disabling InnoDB's internal memory allocator
      and using system malloc/free instead.
      
      rb://62 approved by Marko
      09a089ec
    • marko's avatar
      branches/zip: Merge c2998 from branches/6.0, so that the same InnoDB Plugin · e940107e
      marko authored
      source tree will work both under 5.1 and 6.0.  Do not add the test case
      innodb_ctype_ldml.test, because it would not work under MySQL 5.1.
      
      Refuse to create tables whose columns contain collation IDs above 255.
      This removes an assertion failure that was introduced in WL#4164
      (Two-byte collation IDs).
      
      create_table_def(): Do not fail an assertion if a column contains a
      charset-collation ID greater than 256. Instead, issue an error and
      refuse to create the table.
      
      The original change (branches/6.0 r2998) was rb://51 approved by Calvin Sun.
      e940107e
  17. 30 Dec, 2008 1 commit
    • marko's avatar
      branches/zip: Remove the dependency on the MySQL HASH table implementation. · d4d4e502
      marko authored
      Use the InnoDB hash table for keeping track of INNOBASE_SHARE objects.
      
      struct st_innobase_share: Make table_name const uchar*.  Add the member
      table_name_hash.
      
      innobase_open_tables: Change the type from HASH to hash_table_t*.
      
      innobase_get_key(): Remove.
      
      innobase_fold_name(): New function, for computing the fold value for the
      InnoDB hash table.
      
      get_share(), free_share(): Use the InnoDB hash functions.
      
      innobase_end(): Free innobase_open_tables before shutting down InnoDB.
      Shutting down InnoDB will invalidate all memory allocated via InnoDB.
      
      rb://65 approved by Heikki Tuuri.  This addresses Issue #104.
      d4d4e502
  18. 22 Dec, 2008 1 commit
    • marko's avatar
      branches/zip: Merge revisions 3479:3598 from branches/5.1: · d1b5613f
      marko authored
        ------------------------------------------------------------------------
        r3588 | inaam | 2008-12-18 14:26:54 +0200 (Thu, 18 Dec 2008) | 8 lines
      
        branches/5.1
      
        It is a bug in unused code. If we don't calculate the hash value when
        calculating the mutex number then two pages which map to same hash
        value can get two different mutex numbers.
      
        Approved by: Marko
        ------------------------------------------------------------------------
        r3590 | marko | 2008-12-18 15:33:36 +0200 (Thu, 18 Dec 2008) | 11 lines
      
        branches/5.1: When converting a record to MySQL format, copy the default
        column values for columns that are SQL NULL.  This addresses failures in
        row-based replication (Bug #39648).
      
        row_prebuilt_t: Add default_rec, for the default values of the columns in
        MySQL format.
      
        row_sel_store_mysql_rec(): Use prebuilt->default_rec instead of
        padding columns.
      
        rb://64 approved by Heikki Tuuri
        ------------------------------------------------------------------------
        r3598 | marko | 2008-12-22 15:28:03 +0200 (Mon, 22 Dec 2008) | 6 lines
      
        branches/5.1: ibuf_delete_rec(): When the record cannot be found and
        the tablespace has been dropped, commit the mini-transaction, so that
        InnoDB will not hold the insert buffer tree latch in exclusive mode,
        causing a potential deadlock.  This bug was introduced in the fix of
        Bug #27276 in r2924.
        ------------------------------------------------------------------------
      d1b5613f
  19. 18 Dec, 2008 1 commit
  20. 09 Dec, 2008 1 commit
    • vasil's avatar
      branches/zip: · 7ed448ce
      vasil authored
      Merge 2929:3458 from branches/5.1 (resolving conflict in c3257,
      note also that r3363 reverted r2933 so there are not changes in
      mysql-test/innodb-autoinc.result with the current merge):
      
        ------------------------------------------------------------------------
        r2933 | calvin | 2008-10-30 02:57:31 +0200 (Thu, 30 Oct 2008) | 10 lines
        Changed paths:
           M /branches/5.1/mysql-test/innodb-autoinc.result
        
        branches/5.1: correct the result file innodb-autoinc.result
        
        Change the followings:
          auto_increment_increment
          auto_increment_offset
        
        to
          auto-increment-increment
          auto-increment-offset
        
        ------------------------------------------------------------------------
        r2981 | marko | 2008-11-07 14:54:10 +0200 (Fri, 07 Nov 2008) | 5 lines
        Changed paths:
           M /branches/5.1/row/row0mysql.c
        
        branches/5.0: row_mysql_store_col_in_innobase_format(): Correct a misleading
        comment. In the UTF-8 encoding, ASCII takes 1 byte per character, while
        the "latin1" character set (normally ISO-8859-1, but in MySQL it actually
        refers to the Windows Code Page 1252 a.k.a. CP1252, WinLatin1)
        takes 1 to 3 bytes (1 to 2 bytes for the ISO-8859-1 subset).
        ------------------------------------------------------------------------
        r3114 | calvin | 2008-11-14 20:31:48 +0200 (Fri, 14 Nov 2008) | 8 lines
        Changed paths:
           M /branches/5.1/handler/ha_innodb.cc
        
        branches/5.1: fix bug#40386: Not flushing query cache after truncate
        
        ha_statistics.records can not be 0 unless the table is empty, set to
        1 instead. The original problem of bug#29507 is fixed in the server.
        
        Additional test was done with the fix of bug#29507 in the server.
        
        Approved by: Heikki (on IM)
        ------------------------------------------------------------------------
        r3257 | inaam | 2008-11-24 22:06:50 +0200 (Mon, 24 Nov 2008) | 13 lines
        Changed paths:
           M /branches/5.1/handler/ha_innodb.cc
           M /branches/5.1/srv/srv0srv.c
           M /branches/5.1/trx/trx0trx.c
        
        branches/5.1 bug#40760
        
        The config param innodb_thread_concurrency is dynamically set and is
        read when a thread enters/exits innodb. If the value is changed between
        the enter and exit time the behaviour becomes erratic.
        The fix is not to use srv_thread_concurrency when exiting, instead use
        the flag trx->declared_to_be_inside_innodb.
        
        rb://57
        
        Approved by: Marko
        
        
        ------------------------------------------------------------------------
        r3363 | calvin | 2008-12-04 19:00:20 +0200 (Thu, 04 Dec 2008) | 13 lines
        Changed paths:
           M /branches/5.1/mysql-test/innodb-autoinc.result
        
        branches/5.1: revert the changes in r2933
        
        The changes in r2933 causes test failure on Linux.
        More investigation is needed for Windows.
        
        Change the followings in innodb-autoinc.result:
          auto-increment-increment
          auto-increment-offset
        
        back to:
          auto_increment_increment
          auto_increment_offset
        
        ------------------------------------------------------------------------
        r3412 | vasil | 2008-12-05 10:46:18 +0200 (Fri, 05 Dec 2008) | 7 lines
        Changed paths:
           M /branches/5.1/trx/trx0undo.c
        
        branches/5.1:
        
        Add the traditional 2 spaces after the timestamp so the message does
        not look like:
        
        070223 13:26:01InnoDB: Warning: canno....
        
        ------------------------------------------------------------------------
        r3458 | vasil | 2008-12-09 11:21:08 +0200 (Tue, 09 Dec 2008) | 51 lines
        Changed paths:
           M /branches/5.1/mysql-test/innodb_bug34300.test
        
        branches/5.1:
        
        Merge a change from MySQL to fix the failing innodb_bug34300 mysql-test:
        
          main.innodb_bug34300           [ fail ]
          
          mysqltest: At line 11: query 'SET @@max_allowed_packet=16777216' failed: 1621: SESSION variable 'max_allowed_packet' is read-only. Use SET GLOBAL to assign the value
          
          Aborting: main.innodb_bug34300 failed in default mode. 
        
        The changeset is this:
        
          ------------------------------------------------------------
          revno: 2709.1.10
          committer: Staale Smedseng <staale.smedseng@sun.com>
          branch nick: b22891-51-bugteam
          timestamp: Thu 2008-11-20 08:51:48 +0100
          message:
            A fix for Bug#22891 "session level max_allowed_packet can be
            set but is ignored".
          
            This patch makes @@session.max_allowed_packed and
            @@session.net_buffer_length read-only as suggested in the bug
            report. The user will have to use SET GLOBAL (and reconnect)
            to alter the session values of these variables.
          
            The error string ER_VARIABLE_IS_READONLY is introduced.
          
            Tests are modified accordingly.
          modified:
            mysql-test/r/func_compress.result
            mysql-test/r/max_allowed_packet_basic.result
            mysql-test/r/max_allowed_packet_func.result
            mysql-test/r/net_buffer_length_basic.result
            mysql-test/r/packet.result
            mysql-test/r/union.result
            mysql-test/r/variables.result
            mysql-test/t/func_compress.test
            mysql-test/t/innodb_bug34300.test
            mysql-test/t/max_allowed_packet_basic.test
            mysql-test/t/max_allowed_packet_func.test
            mysql-test/t/net_buffer_length_basic.test
            mysql-test/t/packet.test
            mysql-test/t/union.test
            mysql-test/t/variables.test
            sql/set_var.cc
            sql/set_var.h
            sql/share/errmsg.txt
          ------------------------------------------------------------
        
        
        ------------------------------------------------------------------------
      7ed448ce
  21. 04 Dec, 2008 1 commit
    • vasil's avatar
      branches/zip: · 23a75236
      vasil authored
      Revert our temporary fix for Bug#40360 Binlog related errors with binlog off
      
      This bug was fixed in MySQL code.
      
      Our fix went into r2944 and r2947, but this patch does not entirely revert
      those revisions because we want to leave the test case that was introduced
      and also r2944 itself reverted r2935 and r2936. So if we completely revert
      r2944 and r2947 then we would loose the test and will restore r2935 and
      r2936.
      
      This resolves Issue#108 We should remove ib_bin_log_is_engaged() once mysql
      add an equivallent, see Bug#40360
      23a75236
  22. 20 Nov, 2008 1 commit
    • marko's avatar
      branches/zip: Always check for "row too large" when executing SQL to create · 6bdab319
      marko authored
      an index or table.  We have to skip this check when loading table definitions
      from the data dictionary, because we could otherwise refuse to load old
      tables (even uncompressed ones).  This addresses Issue #119.
      
      The first "row too large" check was implemented in MySQL 5.0.3
      to address MySQL Bug #5682.  In the InnoDB Plugin 1.0.2, a more
      accurate check was implemented in innodb_strict_mode.  We now
      make the check unconditional.
      
      dict_create_index_step(): Pass strict=TRUE to dict_index_add_to_cache().
      
      trx_is_strict(), thd_is_strict(): Remove.
      
      innodb-zip.test: Test in innodb_strict_mode=OFF.
      
      innodb_bug36169.test: Ensure that none of the tables can be created.
      
      rb://56 approved by Sunny Bains.
      6bdab319
  23. 17 Nov, 2008 2 commits
    • michael's avatar
      branches/zip: rb://53 · 337c4d95
      michael authored
      Final version of rb://53, fixes the styling of a comment, makes
      the definition and the declaration of thd_supports_xa() identical commentwise.
      337c4d95
    • michael's avatar
      branches/zip: · c6227f37
      michael authored
      rb://53
      
      Improve innodb_supports_xa system variable handling and 
      reduces the number of retrievals of the value from MySQL.
      
      Approved by: Marko, over IM
      c6227f37
  24. 11 Nov, 2008 1 commit
    • marko's avatar
      branches/zip: ha_innobase::create(): Remove the dependences on · 426fccde
      marko authored
      DICT_TF_ZSSIZE_MAX, so that the code can be compiled with a different
      uncompressed page size by redefining UNIV_PAGE_SIZE_SHIFT in univ.i.
      Currently, the allowed values are 12, 13, or 14 (4k, 8k, 16k).
      
      Make the default compressed page size half the uncompressed page size.
      The previous default was 8 kilobytes, which is the same when compiling
      with the default 16k uncompressed page size.
      
      rb://50 approved by Pekka Lampio and Sunny Bains.
      426fccde
  25. 31 Oct, 2008 2 commits
    • vasil's avatar
      branches/zip: · 375e9750
      vasil authored
      Fix Mantis issue#106 plugin init error:InnoDB: stats_on_metadata in static
      InnoDB (flags=0x2401) differs from stats_on_metadata in dynamic InnoDB (fl
      
      Ignore the NOSYSVAR flag in addition to ignoring the READONLY flag.
      
      Approved by:	Marko (https://svn.innodb.com/rb/r/42/)
      375e9750
    • vasil's avatar
      branches/zip: · 729ff1ad
      vasil authored
      Revert our temporary fix for "Bug#40360 Binlog related errors with binlog off"
      (r2935, r2936) and deploy MySQL's one, but put the function
      mysql_bin_log_is_engaged() inside mysql_addons.cc instead of in mysql's log.cc
      and use a different name for it so there is no collision when MySQL adds this
      function in log.cc.
      
      [note from the future: the windows part of this patch went into r2947]
      
      Approved by:	Marko (https://svn.innodb.com/rb/r/41/)
      729ff1ad
  26. 30 Oct, 2008 1 commit
    • vasil's avatar
      branches/zip: · c368f38f
      vasil authored
      Fix "Bug#40360 Binlog related errors with binlog off" in InnoDB code in order
      to have a Bug#40360-free InnoDB Plugin 1.0.2.
      
      The fix does check whether binary logging is enabled in MySQL by accessing the
      opt_bin_log global variable that is defined in sql/mysqld.cc.
      
      In case MySQL does develop another solution to this via Bug#40360 then we can
      revert this patch (except the mysql-tests).
      
      The windows-plugin part of this fix will be committed as a separate commit to
      ease eventual merge into branches/5.1 [note from the future: the separate
      commit went into r2936].
      
      Approved by:	Marko (https://svn.innodb.com/rb/r/39)
      c368f38f
  27. 29 Oct, 2008 2 commits
    • marko's avatar
      branches/zip: Merge revisions 2854:2929 from branches/5.1, · bd3514db
      marko authored
      except r2924, which was merged from branches/zip r2866 to branches/5.1
      and except r2879 which was merged separately by Calvin:
      
        ------------------------------------------------------------------------
        r2902 | vasil | 2008-10-28 12:10:25 +0200 (Tue, 28 Oct 2008) | 10 lines
      
        branches/5.1:
      
        Fix Bug#38189 innodb_stats_on_metadata missing
      
        Make the variable innodb_stats_on_metadata visible to the users and
        also settable at runtime. Previously it was only "visible" as a command
        line startup option to mysqld.
      
        Approved by:    Marko (https://svn.innodb.com/rb/r/36)
        ------------------------------------------------------------------------
        r2929 | marko | 2008-10-29 21:26:14 +0200 (Wed, 29 Oct 2008) | 13 lines
      
        branches/5.1: dtype_get_sql_null_size(): return the correct storage
        size of a SQL NULL column. (Bug #40369)
      
        When MySQL Bug #20877 was fixed in r834, this function was
        accidentally modified to return 0 or 1. Apparently, the only impact of
        this bug is that fixed-length columns cannot be updated in-place from
        or to SQL NULL, even in ROW_FORMAT=REDUNDANT.  After this fix,
        fixed-length columns in ROW_FORMAT=REDUNDANT will have a constant
        storage size as they should, no matter if NULL or non-NULL.  The bug
        caused fixed-length NULL columns to occupy 1 byte.
      
        rb://37 approved by Heikki over IM.
        ------------------------------------------------------------------------
      bd3514db
    • marko's avatar
      branches/zip: ha_innodb.cc: Make some functions static, so that they will · e2656dba
      marko authored
      not be compiled as weak global symbols.  These functions must not be
      redirected to the built-in InnoDB.
      e2656dba
  28. 28 Oct, 2008 2 commits