An error occurred fetching the project authors.
  1. 12 Aug, 2005 1 commit
    • unknown's avatar
      InnoDB: Print more than 300 characters of queries in various error conditions, · 4b8f312e
      unknown authored
      most notably deadlocked ones in SHOW INNODB STATUS. Fixes bug #7819.
      
      
      innobase/btr/btr0pcur.c:
        Adapt to changes in trx_print.
      innobase/include/trx0trx.h:
        Add max_query_len parameter to trx_print.
      innobase/lock/lock0lock.c:
        Adapt to changes in trx_print.
      innobase/row/row0ins.c:
        Adapt to changes in trx_print.
      innobase/row/row0sel.c:
        Adapt to changes in trx_print.
      innobase/row/row0umod.c:
        Adapt to changes in trx_print.
      innobase/row/row0upd.c:
        Adapt to changes in trx_print.
      innobase/srv/srv0srv.c:
        Adapt to changes in trx_print.
      innobase/trx/trx0trx.c:
        Add max_query_len parameter to trx_print.
      sql/ha_innodb.cc:
        Add max_query_len parameter to innobase_mysql_print_thd.
      4b8f312e
  2. 01 Jul, 2005 1 commit
    • unknown's avatar
      Many files: · 3f767b74
      unknown authored
        Fix Bug #3300 : if innodb_locks_unsafe_for_binlog is set, release locks on rows that we do not UPDATE or DELETE
      
      
      sql/ha_innodb.cc:
        Fix Bug #3300 : if innodb_locks_unsafe_for_binlog is set, release locks on rows that we do not UPDATE or DELETE
      innobase/row/row0mysql.c:
        Fix Bug #3300 : if innodb_locks_unsafe_for_binlog is set, release locks on rows that we do not UPDATE or DELETE
      innobase/row/row0sel.c:
        Fix Bug #3300 : if innodb_locks_unsafe_for_binlog is set, release locks on rows that we do not UPDATE or DELETE
      innobase/include/trx0trx.ic:
        Fix Bug #3300 : if innodb_locks_unsafe_for_binlog is set, release locks on rows that we do not UPDATE or DELETE
      innobase/include/row0mysql.h:
        Fix Bug #3300 : if innodb_locks_unsafe_for_binlog is set, release locks on rows that we do not UPDATE or DELETE
      innobase/include/trx0trx.h:
        Fix Bug #3300 : if innodb_locks_unsafe_for_binlog is set, release locks on rows that we do not UPDATE or DELETE
      innobase/lock/lock0lock.c:
        Fix Bug #3300 : if innodb_locks_unsafe_for_binlog is set, release locks on rows that we do not UPDATE or DELETE
      innobase/trx/trx0trx.c:
        Fix Bug #3300 : if innodb_locks_unsafe_for_binlog is set, release locks on rows that we do not UPDATE or DELETE
      3f767b74
  3. 17 Jun, 2005 1 commit
    • unknown's avatar
      InnoDB: remove flag lock_print_waits from non-debug builds. · 67b538cc
      unknown authored
      innobase/include/lock0lock.h:
        Remove flag lock_print_waits from non-debug builds.
      innobase/lock/lock0lock.c:
        Remove flag lock_print_waits from non-debug builds.
        Add InnoDB lock compatibility matrix for easy reference.
      innobase/trx/trx0roll.c:
        Remove flag lock_print_waits from non-debug builds.
      67b538cc
  4. 16 Jun, 2005 1 commit
    • unknown's avatar
      InnoDB: After review fixes · b9cc8e64
      unknown authored
      innobase/include/page0page.ic:
        page_rec_set_next(): s/ut_a()/ut_ad()/
        page_rec_get_prev(): Eliminate a buf_frame_align() call
      innobase/lock/lock0lock.c:
        lock_rec_get_first(): Determine heap_no before the loop
      b9cc8e64
  5. 08 Jun, 2005 1 commit
    • unknown's avatar
      InnoDB: Do not distinguish explicitly requested table locks. · df983d0a
      unknown authored
      Since UNLOCK TABLES will commit the transaction (and thus release
      all InnoDB locks held by it), it is unnecessary to release the
      user-requested table locks separately.
      
      
      innobase/include/lock0lock.h:
        Remove references to LOCK_TABLE_EXP and LOCK_TABLE_TRANSACTIONAL.
        Remove lock_release_tables_off_kernel().
      innobase/include/row0mysql.h:
        Remove row_unlock_tables_for_mysql().
      innobase/include/trx0trx.h:
        Remove n_lock_table_exp and n_lock_table_transactional.
      innobase/lock/lock0lock.c:
        Remove references to LOCK_TABLE_EXP and LOCK_TABLE_TRANSACTIONAL.
        Remove lock_release_tables_off_kernel().
        Remove references to trx->n_lock_table_exp
        and trx->n_lock_table_transactional.
      innobase/row/row0mysql.c:
        Remove row_unlock_tables_for_mysql().
        Remove references to LOCK_TABLE_TRANSACTIONAL and LOCK_TABLE_EXP.
      innobase/trx/trx0trx.c:
        Remove n_lock_table_exp and n_lock_table_transactional.
      sql/ha_innodb.cc:
        Remove references to LOCK_TABLE_EXP and LOCK_TABLE_TRANSACTIONAL
        and row_unlock_tables_for_mysql().
      df983d0a
  6. 25 Apr, 2005 1 commit
    • unknown's avatar
      InnoDB: Performance optimizations based on OProfile analysis · 84ecb868
      unknown authored
      innobase/btr/btr0btr.c:
        Eliminate some buf_frame_align() calls.
        Make use of the page_rec_is_infimum(), page_rec_is_supremum()
        and page_rec_is_user_rec() functions.
        Replace some index->table->comp with page_is_comp().
        Eliminate some variables to reduce register spilling on x86.
        Note that page_is_comp() may return nonzero instead of TRUE.
        Note that rec_offs_comp() may return nonzero instead of TRUE.
      innobase/btr/btr0cur.c:
        Eliminate some buf_frame_align() calls.
        Replace some index->table->comp with
        page_is_comp() or rec_offs_comp().
        Eliminate some variables to reduce register spilling on x86.
        Note that page_is_comp() may return nonzero instead of TRUE.
        Note that rec_offs_comp() may return nonzero instead of TRUE.
        Remove an extra mem_heap_create() call from btr_cur_update_in_place().
        Add "page" parameter to lock_rec_store_on_page_infimum().
        Add some UNIV_LIKELY() and UNIV_UNLIKELY() hints.
        
        btr_estimate_number_of_different_key_vals(): Rename the
        offsets_* variables to be more descriptive and eliminate one
        rec_get_offsets() and one page_rec_get_next() call in the loop.
      innobase/btr/btr0pcur.c:
        Eliminate some buf_frame_align() calls.
        Make use of the page_rec_is_infimum(), page_rec_is_supremum()
        and page_rec_is_user_rec() functions.
        Replace some index->table->comp with page_is_comp().
        Eliminate some variables to reduce register spilling on x86.
        Note that page_is_comp() may return nonzero instead of TRUE.
        Make some ut_a() assertions ut_ad() ones to improve performance.
        Add some UNIV_LIKELY() and UNIV_UNLIKELY() hints.
      innobase/btr/btr0sea.c:
        Make use of page_rec_is_infimum() and page_rec_is_supremum().
        Eliminate some buf_frame_align() calls.
        Add some UNIV_UNLIKELY and UNIV_LIKELY hints.
        Turn some assertions into debug assertions.
      innobase/dict/dict0crea.c:
        Replace FALSE/TRUE ibool comp with zero/nonzero ulint comp
      innobase/ibuf/ibuf0ibuf.c:
        Make use of page_rec_is_infimum() and page_rec_is_supremum().
        Add some UNIV_UNLIKELY and UNIV_LIKELY hints.
        ibuf_get_merge_page_nos(): Rename parameter "first_rec" to "rec"
        and eliminate local variable "rec".
      innobase/include/btr0btr.h:
        Replace FALSE/TRUE ibool comp with zero/nonzero ulint comp
      innobase/include/buf0buf.h:
        Rename buf_frame_get_modify_clock()
        to buf_block_get_modify_clock().
      innobase/include/buf0buf.ic:
        Rename buf_frame_get_modify_clock()
        to buf_block_get_modify_clock() and
        remove the buf_block_align() call.
      innobase/include/lock0lock.h:
        lock_rec_store_on_page_infimum(): Add parameter "page"
      innobase/include/mach0data.h:
        Add mach_encode_2() and mach_decode_2().
      innobase/include/mach0data.ic:
        Add mach_encode_2() and mach_decode_2().
      innobase/include/page0cur.h:
        Add const qualifier to page_cur_is_before_first()
        and page_cur_is_after_last().
      innobase/include/page0cur.ic:
        Make use of page_rec_is_infimum() and page_rec_is_supremum().
      innobase/include/page0page.h:
        Remove page_rec_is_first_user_rec() and page_rec_is_last_user_rec().
        Add page_rec_is_infimum() and page_rec_is_supremum().
        Replace FALSE/TRUE ibool comp with zero/nonzero ulint comp.
      innobase/include/page0page.ic:
        Remove page_rec_is_first_user_rec() and page_rec_is_last_user_rec().
        Add page_rec_is_infimum() and page_rec_is_supremum().
        Replace FALSE/TRUE ibool comp with zero/nonzero ulint comp.
        Add UNIV_UNLIKELY, UNIV_LIKELY and UNIV_EXPECT hints.
        Reduce the number of buf_frame_align() calls.
      innobase/include/rem0rec.ic:
        rec_offs_comp(): Return zero or nonzero instead of FALSE or TRUE.
      innobase/include/row0mysql.h:
        Replace FALSE/TRUE ibool comp with zero/nonzero ulint comp.
      innobase/lock/lock0lock.c:
        Replace FALSE/TRUE ibool comp with zero/nonzero ulint comp.
        Remove parameter "comp" from lock_rec_get_next(),
        lock_rec_has_expl() and lock_rec_other_has_expl_req().
        Add parameter "page" to lock_rec_store_on_page_infimum().
        Add UNIV_UNLIKELY hints.
        Reduce the number of buf_frame_align() calls.
        Make use of page_rec_is_infimum(), page_rec_is_supremum() and
        page_rec_is_user_rec().
        Move the "comp" flag outside some loops.
      innobase/mtr/mtr0log.c:
        Replace index->table->comp with page_rec_is_comp().
      innobase/page/page0cur.c:
        Replace index->table->comp with page_is_comp() or page_rec_is_comp().
        Eliminate some buf_frame_align() calls.
        Add some debug assertions.
      innobase/page/page0page.c:
        Optimize page_dir_find_owner_slot(). Compare the record offset
        16 bits at a time, because that seems to be the only way to avoid
        register spilling on x86.
        Replace FALSE/TRUE ibool comp with zero/nonzero ulint comp.
        Remove parameter "page" of page_delete_rec_list_write_log().
        Make use of page_rec_is_infimum().
      innobase/rem/rem0cmp.c:
        Replace FALSE/TRUE ibool comp with zero/nonzero ulint comp.
      innobase/row/row0ins.c:
        Make use of page_rec_is_infimum() and page_rec_is_supremum().
        Reduce the amount of buf_frame_align() calls.
        row_ins_index_entry_low(): Disable assertion about column count
        unless #ifdef UNIV_DEBUG.
      innobase/row/row0mysql.c:
        Replace FALSE/TRUE ibool comp with zero/nonzero ulint comp.
      innobase/row/row0row.c:
        Eliminate some buf_frame_align() calls.
        Make use of page_rec_is_infimum().
      innobase/row/row0sel.c:
        Make use of page_rec_is_supremum() and page_rec_is_infimum().
        Turn some assertions into debug assertions.
        Add UNIV_LIKELY and UNIV_UNLIKELY hints.
        
        row_search_for_mysql(): Eliminate local variables "moved",
        "cons_read_requires_clust_rec", "was_lock_wait", "shortcut",
        "success" and "comp". Replace some of them with goto's.
        Disable variable "cnt" unless #ifdef UNIV_SEARCH_DEBUG.
      innobase/row/row0vers.c:
        Replace FALSE/TRUE ibool comp with zero/nonzero ulint comp.
        Replace index->table->comp with page_rec_is_comp().
        Eliminate some buf_frame_align() calls.
      84ecb868
  7. 22 Apr, 2005 1 commit
    • unknown's avatar
      row0upd.c: · 0094b0b1
      unknown authored
        Add UNIV_UNLIKELY hint.
      lock0lock.c:
        Correct the prototypes of lock_deadlock_recursive() and
        lock_deadlock_occurs().
      data0data.c:
        dtuple_convert_big_rec(): Add UNIV_UNLIKELY hint.
      ha_innodb.cc:
        ha_innobase::write_row(): Correct the type of 'mode'.
      
      
      sql/ha_innodb.cc:
        ha_innobase::write_row(): Correct the type of 'mode'.
      innobase/data/data0data.c:
        dtuple_convert_big_rec(): Add UNIV_UNLIKELY hint.
      innobase/lock/lock0lock.c:
        Correct the prototypes of lock_deadlock_recursive() and
        lock_deadlock_occurs().
      innobase/row/row0upd.c:
        Add UNIV_UNLIKELY hint.
      0094b0b1
  8. 21 Apr, 2005 1 commit
    • unknown's avatar
      InnoDB: Define some macros around GCC's __builtin_expect() · c6b55112
      unknown authored
      and __builtin_prefetch().
      Add UNIV_LIKELY_NULL to if (heap) mem_free_heap(heap) tests.
      
      
      innobase/btr/btr0btr.c:
        Add UNIV_LIKELY_NULL to if (heap) mem_free_heap(heap) tests.
      innobase/btr/btr0cur.c:
        Add UNIV_LIKELY_NULL to if (heap) mem_free_heap(heap) tests.
      innobase/btr/btr0sea.c:
        Add UNIV_LIKELY_NULL to if (heap) mem_free_heap(heap) tests.
      innobase/include/univ.i:
        Define UNIV_EXPECT(), UNIV_LIKELY(), UNIV_UNLIKELY(),
        UNIV_LIKELY_NULL(), UNIV_PREFETCH_R() and UNIV_PREFETCH_RW().
      innobase/lock/lock0lock.c:
        Add UNIV_LIKELY_NULL to if (heap) mem_free_heap(heap) tests.
      innobase/page/page0cur.c:
        Add UNIV_LIKELY_NULL to if (heap) mem_free_heap(heap) tests.
      innobase/page/page0page.c:
        Add UNIV_LIKELY_NULL to if (heap) mem_free_heap(heap) tests.
      innobase/rem/rem0rec.c:
        Add UNIV_LIKELY_NULL to if (heap) mem_free_heap(heap) tests.
      innobase/row/row0ins.c:
        Add UNIV_LIKELY_NULL to if (heap) mem_free_heap(heap) tests.
      innobase/row/row0mysql.c:
        Add UNIV_LIKELY_NULL to if (heap) mem_free_heap(heap) tests.
      innobase/row/row0purge.c:
        Add UNIV_LIKELY_NULL to if (heap) mem_free_heap(heap) tests.
      innobase/row/row0row.c:
        Add UNIV_LIKELY_NULL to if (heap) mem_free_heap(heap) tests.
      innobase/row/row0sel.c:
        Add UNIV_LIKELY_NULL to if (heap) mem_free_heap(heap) tests.
      innobase/row/row0undo.c:
        Add UNIV_LIKELY_NULL to if (heap) mem_free_heap(heap) tests.
      innobase/row/row0upd.c:
        Add UNIV_LIKELY_NULL to if (heap) mem_free_heap(heap) tests.
      innobase/trx/trx0rec.c:
        Add UNIV_LIKELY_NULL to if (heap) mem_free_heap(heap) tests.
      c6b55112
  9. 19 Apr, 2005 1 commit
    • unknown's avatar
      InnoDB: Truncate SHOW INNODB STATUS output at the start of the list · ecbe8318
      unknown authored
      of active transactions, if necessary and possible.  (Bug #5436)
      
      
      innobase/include/lock0lock.h:
        Split lock_print_info() into lock_print_info_summary()
        and lock_print_info_all_transactions().
      innobase/lock/lock0lock.c:
        Split lock_print_info() into lock_print_info_summary()
        and lock_print_info_all_transactions().
      innobase/include/srv0srv.h:
        srv_printf_innodb_monitor(): Add output parameters trx_start and trx_end.
      innobase/srv/srv0srv.c:
        srv_printf_innodb_monitor(): Add output parameters trx_start and trx_end.
      sql/ha_innodb.cc:
        innodb_show_status(): Truncate oversized output at the beginning
        of the list of active transactions, if possible.
      ecbe8318
  10. 10 Mar, 2005 1 commit
    • unknown's avatar
      InnoDB: Introduce the symbols REC_OFFS_NORMAL_SIZE and · b581eb44
      unknown authored
      REC_OFFS_SMALL_SIZE for the initial allocation sizes of
      arrays passed to rec_get_offsets().
      
      
      innobase/btr/btr0btr.c:
        s/100/REC_OFFS_NORMAL_SIZE/
      innobase/btr/btr0cur.c:
        s/100/REC_OFFS_NORMAL_SIZE/
      innobase/btr/btr0sea.c:
        s/100/REC_OFFS_NORMAL_SIZE/
      innobase/include/rem0rec.h:
        Define REC_OFFS_NORMAL_SIZE and REC_OFFS_SMALL_SIZE.
      innobase/lock/lock0lock.c:
        s/100/REC_OFFS_NORMAL_SIZE/
      innobase/page/page0cur.c:
        s/100/REC_OFFS_NORMAL_SIZE/
      innobase/page/page0page.c:
        s/100/REC_OFFS_NORMAL_SIZE/
      innobase/rem/rem0rec.c:
        s/100/REC_OFFS_NORMAL_SIZE/
      innobase/row/row0ins.c:
        s/100/REC_OFFS_NORMAL_SIZE/
      innobase/row/row0mysql.c:
        s/100/REC_OFFS_NORMAL_SIZE/
      innobase/row/row0purge.c:
        s/100/REC_OFFS_NORMAL_SIZE/
      innobase/row/row0row.c:
        s/100/REC_OFFS_NORMAL_SIZE/
      innobase/row/row0sel.c:
        s/100/REC_OFFS_NORMAL_SIZE/
        s/10/REC_OFFS_SMALL_SIZE/
      innobase/row/row0undo.c:
        s/100/REC_OFFS_NORMAL_SIZE/
      innobase/row/row0upd.c:
        s/100/REC_OFFS_NORMAL_SIZE/
        s/10/REC_OFFS_SMALL_SIZE/
      innobase/trx/trx0rec.c:
        s/100/REC_OFFS_NORMAL_SIZE/
      b581eb44
  11. 09 Mar, 2005 1 commit
    • unknown's avatar
      InnoDB: Improve performance by about 10% by removing implicit · ab654ae9
      unknown authored
      memcpy() calls, by not initializing the offsets_[] arrays.
      InnoDB: Remove a Microsoft compiler warning in page0page.c.
      
      
      innobase/btr/btr0btr.c:
        Only initialize the first element of offsets_[]
      innobase/btr/btr0cur.c:
        Only initialize the first element of offsets_[]
      innobase/btr/btr0sea.c:
        Only initialize the first element of offsets_[]
      innobase/lock/lock0lock.c:
        Only initialize the first element of offsets_[]
      innobase/page/page0cur.c:
        Only initialize the first element of offsets_[]
      innobase/page/page0page.c:
        page_validate(): Silence a warning about unsigned/signed comparison.
        Other places: Only initialize the first element of offsets_[].
      innobase/rem/rem0rec.c:
        Only initialize the first element of offsets_[]
      innobase/row/row0ins.c:
        Only initialize the first element of offsets_[]
      innobase/row/row0mysql.c:
        Only initialize the first element of offsets_[]
      innobase/row/row0purge.c:
        Only initialize the first element of offsets_[]
      innobase/row/row0row.c:
        Only initialize the first element of offsets_[]
      innobase/row/row0sel.c:
        Only initialize the first element of offsets_[]
      innobase/row/row0undo.c:
        Only initialize the first element of offsets_[]
      innobase/row/row0upd.c:
        Only initialize the first element of offsets_[]
      innobase/trx/trx0rec.c:
        Only initialize the first element of offsets_[]
      ab654ae9
  12. 04 Feb, 2005 1 commit
    • unknown's avatar
      InnoDB: Exclude code from InnoDB Hot Backup builds · 53126e76
      unknown authored
      by adding #ifndef UNIV_HOTBACKUP and adjusting some function
      declarations.
      
      
      innobase/data/data0type.c:
        Exclude code from InnoDB Hot Backup with #ifndef UNIV_HOTBACKUP
      innobase/dict/dict0dict.c:
        Exclude code from InnoDB Hot Backup with #ifndef UNIV_HOTBACKUP
      innobase/dict/dict0load.c:
        Exclude code from InnoDB Hot Backup with #ifndef UNIV_HOTBACKUP
      innobase/include/data0type.ic:
        Exclude code from InnoDB Hot Backup with #ifndef UNIV_HOTBACKUP
      innobase/include/srv0srv.h:
        Introduce srv_init(), so that it can be called in InnoDB Hot Backup
      innobase/include/srv0start.h:
        Introduce srv_add_path_separator_if_needed(), so that it can be
        invoked in InnoDB Hot Backup
      innobase/include/sync0sync.h:
        Exclude code from InnoDB Hot Backup with #ifndef UNIV_HOTBACKUP
      innobase/include/sync0sync.ic:
        Exclude code from InnoDB Hot Backup with #ifndef UNIV_HOTBACKUP
      innobase/include/trx0trx.h:
        trx_recover_for_mysql(): replace uint with ulint, as uint is not
        declared in InnoDB Hot Backup
      innobase/lock/lock0lock.c:
        Replace bool with ibool
        Exclude code from InnoDB Hot Backup with #ifndef UNIV_HOTBACKUP
      innobase/row/row0ins.c:
        Exclude code from InnoDB Hot Backup with #ifndef UNIV_HOTBACKUP
      innobase/row/row0mysql.c:
        Exclude code from InnoDB Hot Backup with #ifndef UNIV_HOTBACKUP
      innobase/srv/srv0srv.c:
        Make srv_init() global, so that InnoDB Hot Backup can call it.
        Exclude code from InnoDB Hot Backup with #ifndef UNIV_HOTBACKUP
      innobase/srv/srv0start.c:
        Make srv_add_path_separator_if_needed() global for InnoDB Hot Backup.
        Exclude code from InnoDB Hot Backup with #ifndef UNIV_HOTBACKUP
      innobase/sync/sync0rw.c:
        Exclude code from InnoDB Hot Backup with #ifndef UNIV_HOTBACKUP
      innobase/sync/sync0sync.c:
        Exclude code from InnoDB Hot Backup with #ifndef UNIV_HOTBACKUP
      innobase/trx/trx0roll.c:
        Exclude code from InnoDB Hot Backup with #ifndef UNIV_HOTBACKUP
      innobase/trx/trx0trx.c:
        Replace uint with ulint, as uint is undeclared in InnoDB Hot Backup
      innobase/ut/ut0ut.c:
        Exclude code from InnoDB Hot Backup with #ifndef UNIV_HOTBACKUP
      53126e76
  13. 17 Jan, 2005 1 commit
    • unknown's avatar
      Required changes to support recovery of X/Open XA in InnoDB. · 278656cc
      unknown authored
      innobase/lock/lock0lock.c:
        Add prepared state to concurrency states in lock validate.
      innobase/trx/trx0trx.c:
        Prepared transactions are active transactions in file based word.
      sql/ha_innodb.cc:
        Add full support of X/Open XA to InnoDB.
      278656cc
  14. 13 Dec, 2004 1 commit
  15. 10 Dec, 2004 1 commit
    • unknown's avatar
      InnoDB: Reduce the stack space consumption of ON UPDATE CASCADE · 19798cf7
      unknown authored
      operations.
      
      
      innobase/include/lock0lock.h:
        Added lock_clust_rec_read_check_and_lock_alt(),
        a variant of lock_clust_rec_read_check_and_lock()
        without the parameter "offsets".
      innobase/lock/lock0lock.c:
        Added lock_clust_rec_read_check_and_lock_alt(),
        a variant of lock_clust_rec_read_check_and_lock()
        without the parameter "offsets".
      innobase/row/row0ins.c:
        row_ins_foreign_check_on_constraint(): Do not allocate offsets
        from stack. This reduces the stack space consumption of
        ON UPDATE CASCADE operations by 400 bytes per cascaded UPDATE
        operation.
      19798cf7
  16. 09 Dec, 2004 2 commits
    • unknown's avatar
      InnoDB: Changed interface to rec_get_offsets(), to reduce the use of · 49cc60c6
      unknown authored
      memory heaps.  This changeset plugs also a few memory leaks that
      were introduced with the compact InnoDB table format.
      
      
      innobase/btr/btr0btr.c:
        Changed interface to rec_get_offsets()
      innobase/btr/btr0cur.c:
        Changed interface to rec_get_offsets()
      innobase/btr/btr0pcur.c:
        Changed interface to rec_get_offsets()
      innobase/btr/btr0sea.c:
        Changed interface to rec_get_offsets()
      innobase/include/rem0rec.h:
        Changed interface to rec_get_offsets()
      innobase/include/rem0rec.ic:
        Changed interface to rec_get_offsets()
      innobase/lock/lock0lock.c:
        Changed interface to rec_get_offsets()
      innobase/page/page0cur.c:
        Changed interface to rec_get_offsets()
      innobase/page/page0page.c:
        Changed interface to rec_get_offsets()
      innobase/rem/rem0rec.c:
        Changed interface to rec_get_offsets()
      innobase/row/row0ins.c:
        Changed interface to rec_get_offsets()
      innobase/row/row0mysql.c:
        Changed interface to rec_get_offsets()
      innobase/row/row0purge.c:
        Changed interface to rec_get_offsets()
      innobase/row/row0row.c:
        Changed interface to rec_get_offsets()
      innobase/row/row0sel.c:
        Changed interface to rec_get_offsets()
      innobase/row/row0umod.c:
        Changed interface to rec_print()
      innobase/row/row0undo.c:
        Changed interface to rec_get_offsets()
      innobase/row/row0upd.c:
        Changed interface to rec_get_offsets()
      innobase/row/row0vers.c:
        Changed interface to rec_get_offsets()
      innobase/trx/trx0rec.c:
        Changed interface to rec_get_offsets()
      49cc60c6
    • unknown's avatar
      Added support for a LOCK TABLES...WHERE ENGINE = InnoDB query which sets · b892e1f6
      unknown authored
      transactional table locks to tables mentioned in the query. These locks
      are released at the end of the transaction automatically.
      This is fix for bugs #5655, #5998 and issue #3762.
      
      
      
      
      innobase/include/lock0lock.h:
        Added a new lock type LOCK_TABLE_TRANSACTIONAL.
      innobase/include/trx0trx.h:
        Added a varible to store the number of transactional table locks
        reserved by the transaction and stored in the trx_locks list.
      innobase/lock/lock0lock.c:
        Added a lock type LOCK_TABLE_TRANSACTIONAL.
      innobase/row/row0mysql.c:
        Added support for a transactional table lock.
      innobase/trx/trx0roll.c:
        Make compiler happy and format function.
      innobase/trx/trx0trx.c:
        Added information about number of explicit and transactional table locks in
        the innodb monitor.
      sql/ha_innodb.cc:
        Added support for a LOCK_TABLE_TRANSACTIONAL table lock (SQLCOM_LOCK_TABLES_TRANSACTIONAL).
        Transactional table locks are taken in the function ::transactional_table_lock().
      sql/ha_innodb.h:
        Added prototype for a function trandactional_table_lock().
      sql/handler.h:
        Added prototype for a virtual function transactional_table_lock().
        Handler does not need to implement this function.
      sql/lock.cc:
        Added a function transactional_lock_tables() to lock all tables in the list
        with transactional table lock. These locks can cause a deadlock and
        this error should be reported back to user.
      sql/mysql_priv.h:
        Added prototype for a function transactional_lock_tables().
      sql/sql_lex.h:
        Added SQLCOM_LOCK_TABLES_TRANSACTIONAL command.
      sql/sql_parse.cc:
        Added SQLCOM_LOCK_TABLES_TRANSACTIONAL command.
      sql/sql_yacc.yy:
        Added parsing rules for a LOCK TABLES...WHERE ENGINE = x;
      b892e1f6
  17. 02 Dec, 2004 1 commit
    • unknown's avatar
      Many files: · 0afb38a1
      unknown authored
        Implement more compact InnoDB record format.
        Old format is available as CREATE TABLE ... ROW_FORMAT=DYNAMIC.
      
      
      innobase/btr/btr0btr.c:
        Implement more compact InnoDB record format.
        Old format is available as CREATE TABLE ... ROW_FORMAT=DYNAMIC.
      innobase/btr/btr0cur.c:
        Implement more compact InnoDB record format.
        Old format is available as CREATE TABLE ... ROW_FORMAT=DYNAMIC.
      innobase/btr/btr0pcur.c:
        Implement more compact InnoDB record format.
        Old format is available as CREATE TABLE ... ROW_FORMAT=DYNAMIC.
      innobase/btr/btr0sea.c:
        Implement more compact InnoDB record format.
        Old format is available as CREATE TABLE ... ROW_FORMAT=DYNAMIC.
      innobase/data/data0data.c:
        Implement more compact InnoDB record format.
        Old format is available as CREATE TABLE ... ROW_FORMAT=DYNAMIC.
      innobase/data/data0type.c:
        Implement more compact InnoDB record format.
        Old format is available as CREATE TABLE ... ROW_FORMAT=DYNAMIC.
      innobase/dict/dict0boot.c:
        Implement more compact InnoDB record format.
        Old format is available as CREATE TABLE ... ROW_FORMAT=DYNAMIC.
      innobase/dict/dict0crea.c:
        Implement more compact InnoDB record format.
        Old format is available as CREATE TABLE ... ROW_FORMAT=DYNAMIC.
      innobase/dict/dict0dict.c:
        Implement more compact InnoDB record format.
        Old format is available as CREATE TABLE ... ROW_FORMAT=DYNAMIC.
      innobase/dict/dict0load.c:
        Implement more compact InnoDB record format.
        Old format is available as CREATE TABLE ... ROW_FORMAT=DYNAMIC.
      innobase/dict/dict0mem.c:
        Implement more compact InnoDB record format.
        Old format is available as CREATE TABLE ... ROW_FORMAT=DYNAMIC.
      innobase/fil/fil0fil.c:
        Implement more compact InnoDB record format.
        Old format is available as CREATE TABLE ... ROW_FORMAT=DYNAMIC.
      innobase/fsp/fsp0fsp.c:
        Implement more compact InnoDB record format.
        Old format is available as CREATE TABLE ... ROW_FORMAT=DYNAMIC.
      innobase/ibuf/ibuf0ibuf.c:
        Implement more compact InnoDB record format.
        Old format is available as CREATE TABLE ... ROW_FORMAT=DYNAMIC.
      innobase/include/btr0btr.h:
        Implement more compact InnoDB record format.
        Old format is available as CREATE TABLE ... ROW_FORMAT=DYNAMIC.
      innobase/include/btr0btr.ic:
        Implement more compact InnoDB record format.
        Old format is available as CREATE TABLE ... ROW_FORMAT=DYNAMIC.
      innobase/include/btr0cur.h:
        Implement more compact InnoDB record format.
        Old format is available as CREATE TABLE ... ROW_FORMAT=DYNAMIC.
      innobase/include/btr0cur.ic:
        Implement more compact InnoDB record format.
        Old format is available as CREATE TABLE ... ROW_FORMAT=DYNAMIC.
      innobase/include/btr0pcur.h:
        Implement more compact InnoDB record format.
        Old format is available as CREATE TABLE ... ROW_FORMAT=DYNAMIC.
      innobase/include/btr0sea.h:
        Implement more compact InnoDB record format.
        Old format is available as CREATE TABLE ... ROW_FORMAT=DYNAMIC.
      innobase/include/data0type.ic:
        Implement more compact InnoDB record format.
        Old format is available as CREATE TABLE ... ROW_FORMAT=DYNAMIC.
      innobase/include/dict0dict.h:
        Implement more compact InnoDB record format.
        Old format is available as CREATE TABLE ... ROW_FORMAT=DYNAMIC.
      innobase/include/dict0dict.ic:
        Implement more compact InnoDB record format.
        Old format is available as CREATE TABLE ... ROW_FORMAT=DYNAMIC.
      innobase/include/dict0mem.h:
        Implement more compact InnoDB record format.
        Old format is available as CREATE TABLE ... ROW_FORMAT=DYNAMIC.
      innobase/include/lock0lock.h:
        Implement more compact InnoDB record format.
        Old format is available as CREATE TABLE ... ROW_FORMAT=DYNAMIC.
      innobase/include/lock0lock.ic:
        Implement more compact InnoDB record format.
        Old format is available as CREATE TABLE ... ROW_FORMAT=DYNAMIC.
      innobase/include/mtr0log.h:
        Implement more compact InnoDB record format.
        Old format is available as CREATE TABLE ... ROW_FORMAT=DYNAMIC.
      innobase/include/mtr0mtr.h:
        Implement more compact InnoDB record format.
        Old format is available as CREATE TABLE ... ROW_FORMAT=DYNAMIC.
      innobase/include/page0cur.h:
        Implement more compact InnoDB record format.
        Old format is available as CREATE TABLE ... ROW_FORMAT=DYNAMIC.
      innobase/include/page0cur.ic:
        Implement more compact InnoDB record format.
        Old format is available as CREATE TABLE ... ROW_FORMAT=DYNAMIC.
      innobase/include/page0page.h:
        Implement more compact InnoDB record format.
        Old format is available as CREATE TABLE ... ROW_FORMAT=DYNAMIC.
      innobase/include/page0page.ic:
        Implement more compact InnoDB record format.
        Old format is available as CREATE TABLE ... ROW_FORMAT=DYNAMIC.
      innobase/include/rem0cmp.h:
        Implement more compact InnoDB record format.
        Old format is available as CREATE TABLE ... ROW_FORMAT=DYNAMIC.
      innobase/include/rem0cmp.ic:
        Implement more compact InnoDB record format.
        Old format is available as CREATE TABLE ... ROW_FORMAT=DYNAMIC.
      innobase/include/rem0rec.h:
        Implement more compact InnoDB record format.
        Old format is available as CREATE TABLE ... ROW_FORMAT=DYNAMIC.
      innobase/include/rem0rec.ic:
        Implement more compact InnoDB record format.
        Old format is available as CREATE TABLE ... ROW_FORMAT=DYNAMIC.
      innobase/include/row0row.h:
        Implement more compact InnoDB record format.
        Old format is available as CREATE TABLE ... ROW_FORMAT=DYNAMIC.
      innobase/include/row0row.ic:
        Implement more compact InnoDB record format.
        Old format is available as CREATE TABLE ... ROW_FORMAT=DYNAMIC.
      innobase/include/row0upd.h:
        Implement more compact InnoDB record format.
        Old format is available as CREATE TABLE ... ROW_FORMAT=DYNAMIC.
      innobase/include/row0upd.ic:
        Implement more compact InnoDB record format.
        Old format is available as CREATE TABLE ... ROW_FORMAT=DYNAMIC.
      innobase/include/row0vers.h:
        Implement more compact InnoDB record format.
        Old format is available as CREATE TABLE ... ROW_FORMAT=DYNAMIC.
      innobase/include/row0vers.ic:
        Implement more compact InnoDB record format.
        Old format is available as CREATE TABLE ... ROW_FORMAT=DYNAMIC.
      innobase/include/srv0srv.h:
        Implement more compact InnoDB record format.
        Old format is available as CREATE TABLE ... ROW_FORMAT=DYNAMIC.
      innobase/include/trx0rec.h:
        Implement more compact InnoDB record format.
        Old format is available as CREATE TABLE ... ROW_FORMAT=DYNAMIC.
      innobase/include/ut0byte.h:
        Implement more compact InnoDB record format.
        Old format is available as CREATE TABLE ... ROW_FORMAT=DYNAMIC.
      innobase/include/ut0byte.ic:
        Implement more compact InnoDB record format.
        Old format is available as CREATE TABLE ... ROW_FORMAT=DYNAMIC.
      innobase/lock/lock0lock.c:
        Implement more compact InnoDB record format.
        Old format is available as CREATE TABLE ... ROW_FORMAT=DYNAMIC.
      innobase/log/log0recv.c:
        Implement more compact InnoDB record format.
        Old format is available as CREATE TABLE ... ROW_FORMAT=DYNAMIC.
      innobase/mtr/mtr0log.c:
        Implement more compact InnoDB record format.
        Old format is available as CREATE TABLE ... ROW_FORMAT=DYNAMIC.
      innobase/page/page0cur.c:
        Implement more compact InnoDB record format.
        Old format is available as CREATE TABLE ... ROW_FORMAT=DYNAMIC.
      innobase/page/page0page.c:
        Implement more compact InnoDB record format.
        Old format is available as CREATE TABLE ... ROW_FORMAT=DYNAMIC.
      innobase/pars/pars0pars.c:
        Implement more compact InnoDB record format.
        Old format is available as CREATE TABLE ... ROW_FORMAT=DYNAMIC.
      innobase/rem/rem0cmp.c:
        Implement more compact InnoDB record format.
        Old format is available as CREATE TABLE ... ROW_FORMAT=DYNAMIC.
      innobase/rem/rem0rec.c:
        Implement more compact InnoDB record format.
        Old format is available as CREATE TABLE ... ROW_FORMAT=DYNAMIC.
      innobase/row/row0ins.c:
        Implement more compact InnoDB record format.
        Old format is available as CREATE TABLE ... ROW_FORMAT=DYNAMIC.
      innobase/row/row0mysql.c:
        Implement more compact InnoDB record format.
        Old format is available as CREATE TABLE ... ROW_FORMAT=DYNAMIC.
      innobase/row/row0purge.c:
        Implement more compact InnoDB record format.
        Old format is available as CREATE TABLE ... ROW_FORMAT=DYNAMIC.
      innobase/row/row0row.c:
        Implement more compact InnoDB record format.
        Old format is available as CREATE TABLE ... ROW_FORMAT=DYNAMIC.
      innobase/row/row0sel.c:
        Implement more compact InnoDB record format.
        Old format is available as CREATE TABLE ... ROW_FORMAT=DYNAMIC.
      innobase/row/row0umod.c:
        Implement more compact InnoDB record format.
        Old format is available as CREATE TABLE ... ROW_FORMAT=DYNAMIC.
      innobase/row/row0undo.c:
        Implement more compact InnoDB record format.
        Old format is available as CREATE TABLE ... ROW_FORMAT=DYNAMIC.
      innobase/row/row0upd.c:
        Implement more compact InnoDB record format.
        Old format is available as CREATE TABLE ... ROW_FORMAT=DYNAMIC.
      innobase/row/row0vers.c:
        Implement more compact InnoDB record format.
        Old format is available as CREATE TABLE ... ROW_FORMAT=DYNAMIC.
      innobase/srv/srv0srv.c:
        Implement more compact InnoDB record format.
        Old format is available as CREATE TABLE ... ROW_FORMAT=DYNAMIC.
      innobase/trx/trx0rec.c:
        Implement more compact InnoDB record format.
        Old format is available as CREATE TABLE ... ROW_FORMAT=DYNAMIC.
      innobase/trx/trx0undo.c:
        Implement more compact InnoDB record format.
        Old format is available as CREATE TABLE ... ROW_FORMAT=DYNAMIC.
      sql/ha_innodb.cc:
        Implement more compact InnoDB record format.
        Old format is available as CREATE TABLE ... ROW_FORMAT=DYNAMIC.
      0afb38a1
  18. 30 Nov, 2004 2 commits
    • unknown's avatar
      lock0lock.c: · 555a0eec
      unknown authored
        If UNIV_DEBUG is defined, lock_get_type() was called before function definition: fix this
      
      
      innobase/lock/lock0lock.c:
        If UNIV_DEBUG is defined, lock_get_type() was called before function definition: fix this
      555a0eec
    • unknown's avatar
      InnoDB: Allow ALTER TABLE to do intermediate COMMIT also when the table · fb8c2315
      unknown authored
      contains auto_increment columns.  (Bug #6633)
      
      
      innobase/include/lock0lock.h:
        Replaced lock_get_table()
        with lock_get_src_table() and lock_is_table_exclusive()
      innobase/lock/lock0lock.c:
        Replaced lock_get_table()
        with lock_get_src_table() and lock_is_table_exclusive()
      sql/ha_innodb.cc:
        ha_innobase::write_row(): Improve the ALTER TABLE optimization
        (do intermediate COMMIT also if table contains auto_increment columns)
      fb8c2315
  19. 26 Nov, 2004 1 commit
    • unknown's avatar
      InnoDB: Make intermediate COMMITs in ALTER TABLE more robust (Bug #6633) · 90f3262a
      unknown authored
      innobase/include/lock0lock.h:
        Replaced lock_get_ix_table() with lock_get_table().
      innobase/lock/lock0lock.c:
        Replaced lock_get_ix_table() with lock_get_table().
      innobase/include/row0mysql.h:
        row_lock_table_for_mysql(): Added parameter mode.
      innobase/row/row0mysql.c:
        row_lock_table_for_mysql(): Added parameter mode.
      sql/ha_innodb.cc:
        ha_innobase::write_row(): Make ALTER TABLE commits more robust:
        account for conversions from non-InnoDB format,
        do not attempt to commit if there are other than
        a single IX or IS lock on the source table, and
        the source table is in InnoDB format.  This
        prohibits intermediate commits for OPTIMIZE TABLE
        if the table contains an auto_increment field.
      90f3262a
  20. 21 Nov, 2004 1 commit
    • unknown's avatar
      trx0undo.c, trx0purge.c: · c6766305
      unknown authored
        Print a warning to the .err log if the InnoDB history list length is > 20 000 even though purge reaches the list head; this is to track corruption reported on the MySQL mailing list Nov 9, 2004
      lock0lock.c:
        Let SHOW INNODB STATUS print the history list length
      
      
      innobase/lock/lock0lock.c:
        Let SHOW INNODB STATUS print the history list length
      innobase/trx/trx0purge.c:
        Print a warning to the .err log if the InnoDB history list length is > 20 000 even though purge reaches the list head; this is to track corruption reported on the MySQL mailing list Nov 9, 2004
      innobase/trx/trx0undo.c:
        Print a warning to the .err log if the InnoDB history list length is > 20 000 even though purge reaches the list head; this is to track corruption reported on the MySQL mailing list Nov 9, 2004
      c6766305
  21. 08 Nov, 2004 1 commit
    • unknown's avatar
      Fixed a bug in UPDATE statement with no index column in where condition · 04ff81ae
      unknown authored
      locks all rows (BUG #3300). When using innobase_locks_unsafe_for_binlog
      option InnoDB does not take locks for those rows which do not
      belong to the result set or werent changed by the query. This fix removes
      unnecessary locks also from SELECT and DELETE queries.
      
      
      innobase/include/row0mysql.h:
        Added prototype for row_unlock_for_mysql() function which does an unlock of 
        a row for MySQL.
      innobase/include/trx0trx.h:
        Added a field trx_create_lock to a transaction structure. This field is
        TRUE if we have created a new lock for a record accessed.
      innobase/lock/lock0lock.c:
        Set lock create flag if lock is created and reset this flag before 
        transaction requests a lock.
      innobase/row/row0mysql.c:
        Add support for unlocking a row in InnoDB. If we are using 
        innobase_locks_unsafe_for_binlog option then all those record 
        locks obtained by SQL-query which do not belong to result set 
        or were not modified are unlocked i.e. we remove the lock from 
        those records.
      sql/ha_innodb.cc:
        Added support for a unlock_row interface in InnoDB.
      sql/ha_innodb.h:
        Added prototype for a function unlock_row().
      04ff81ae
  22. 03 Nov, 2004 1 commit
    • unknown's avatar
      InnoDB: commit after every 10000 rows in ALTER TABLE · e45a57d3
      unknown authored
      innobase/include/lock0lock.h:
        Added function lock_get_ix_table()
      innobase/include/row0mysql.h:
        Added parameter "table" to row_lock_table_for_mysql()
      innobase/lock/lock0lock.c:
        Added function lock_get_ix_table()
      innobase/row/row0mysql.c:
        Added parameter "table" to row_lock_table_for_mysql()
      sql/ha_innodb.cc:
        write_row(): commit every 10000 rows in ALTER TABLE
      sql/ha_innodb.h:
        Added member variable num_write_row
      e45a57d3
  23. 07 Oct, 2004 1 commit
    • unknown's avatar
      Correct an 'unresolved identifier' problem caused by an "inline" · ddb0f7d4
      unknown authored
      function being used before it was defined - "forward" declaration
      was insufficient.
      
      
      innobase/lock/lock0lock.c:
        Compile problem on 'build', solved by moving the definition of
        'lock_rec_get_nth_bit' to the place of the ("forward") declaration.
        It is "inline", and now the body really appears before the first use.
      ddb0f7d4
  24. 04 Oct, 2004 1 commit
    • unknown's avatar
      lock0lock.c: · af9cd295
      unknown authored
        Fix compiler warning
      
      
      innobase/lock/lock0lock.c:
        Fix compiler warning
      af9cd295
  25. 01 Oct, 2004 1 commit
    • unknown's avatar
      InnoDB: quote identifiers according to MySQL settings (Bug #5292) · ea30886c
      unknown authored
      innobase/btr/btr0btr.c:
        Add parameter to ut_print_name() and dict_index_name_print() calls
      innobase/btr/btr0cur.c:
        Add parameter to dict_index_name_print() calls
      innobase/buf/buf0buf.c:
        Add parameter to dict_index_name_print() calls
      innobase/dict/dict0crea.c:
        Add parameter to ut_print_name() calls
      innobase/dict/dict0dict.c:
        Add parameter to ut_print_name() calls
        Update documentation links to http://dev.mysql.com
      innobase/dict/dict0load.c:
        Add parameter to ut_print_name() calls
      innobase/fil/fil0fil.c:
        Use ut_print_filename()
        Update links to documentation to http://dev.mysql.com
      innobase/ibuf/ibuf0ibuf.c:
        Replaced printf(...) with fprintf(stderr,...)
      innobase/include/dict0dict.h:
        Added trx parameters
      innobase/include/row0row.h:
        Added trx parameter
      innobase/include/row0sel.h:
        Added trx parameter
      innobase/include/row0upd.h:
        Added trx parameters
      innobase/include/row0upd.ic:
        Added trx parameter for dict_index_name_print()
      innobase/include/trx0rec.h:
        Added trx parameter
      innobase/include/ut0ut.h:
        Added ut_print_filename()
        Added trx parameter to ut_print_name() and ut_print_namel()
      innobase/lock/lock0lock.c:
        Added parameter to dict_index_name_print() and ut_print_name() calls
      innobase/page/page0page.c:
        Added parameter to dict_index_name_print() calls
      innobase/pars/pars0opt.c:
        Added parameter to dict_index_name_print() call
      innobase/pars/pars0pars.c:
        Added parameter to upd_field_set_field_no() call
      innobase/row/row0ins.c:
        Added trx parameters
      innobase/row/row0mysql.c:
        Added trx parameters
      innobase/row/row0purge.c:
        Added trx parameter
      innobase/row/row0row.c:
        Added trx parameter
      innobase/row/row0sel.c:
        Added trx parameters
      innobase/row/row0umod.c:
        Added trx parameters
      innobase/row/row0upd.c:
        Added trx parameters
      innobase/trx/trx0rec.c:
        Added trx parameters
      innobase/trx/trx0roll.c:
        Added parameter to ut_print_name() calls
      innobase/ut/ut0ut.c:
        Added ut_print_filename()
        Added trx parameter to ut_print_namel() and ut_print_name() calls
      sql/ha_innodb.cc:
        Added trx parameters
        Rewrote mysql_get_identifier_quote_char()
      sql/mysql_priv.h:
        Added get_quote_char_for_identifier()
      sql/sql_show.cc:
        Added get_quote_char_for_identifier()
        Removed append_quoted_simple_identifier()
        Make append_identifier() use get_quote_char_for_identifier()
      ea30886c
  26. 17 Aug, 2004 1 commit
  27. 12 Aug, 2004 1 commit
    • unknown's avatar
      This change includes optimization for a lock wait rules and a new behaviour for · 5d2ab44c
      unknown authored
      a REPLACE command. 
      
      
      innobase/lock/lock0lock.c:
        Gap type locks without LOCK_INSERT_INTENSION flag do not need to wait for
        anything. This is because different users can have conflicting lock types
        on gaps.
      innobase/row/row0ins.c:
        The manual defines the REPLACE semantics that it is either an INSERT or 
        DELETE(s) for duplicate key + INSERT. Therefore, we take X-lock for 
        duplicates.
      5d2ab44c
  28. 11 Aug, 2004 1 commit
    • unknown's avatar
      Take X-lock for duplicate keys in REPLACE command. · f2a273e3
      unknown authored
      innobase/lock/lock0lock.c:
        Made change where lock on the supremum record is really a 'gap' type lock and
        gap type lock do not need to wait if it is not LOCK_INSERT_INTENSION type.
      innobase/row/row0ins.c:
        Added fuction row_ins_set_exclusive_rec_lock to set exclusive lock on a record. 
        This function is used for locking possible duplicate key records when
        user has issued REPLACE-command.
        
        Because manual defines the REPLACE semantics that it is either an INSERT or 
        DELETE(s) for duplicate key + INSERT, we take X-lock directly for duplicate
        records to avoid unnecessary lock upgrades and deadlocks caused by lock 
        upgrades.
      f2a273e3
  29. 06 Aug, 2004 1 commit
    • unknown's avatar
      InnoDB: Add option for disabling innodb_status.<pid> files. · 0f5b1b3c
      unknown authored
      InnoDB: Implement tmpfile() differently on Windows (Bug #3998)
      
      
      innobase/dict/dict0dict.c:
        Check the return value of os_file_create_tmpfile(),
        as it can now return NULL
      innobase/include/os0file.h:
        Note that os_file_create_tmpfile() can now return NULL
      innobase/include/srv0srv.h:
        Add a new server flag (srv_innodb_status) to disable
        the creation of innodb_status.<pid> files
      innobase/lock/lock0lock.c:
        Check the return value of os_file_create_tmpfile(),
        as it can now return NULL
      innobase/os/os0file.c:
        os_file_create_tmpfile(): separate implementation for Win32;
        errors will be reported but will not cause assertion failure
      innobase/srv/srv0srv.c:
        Add a new server flag (srv_innodb_status) to disable
        the creation of innodb_status.<pid> files
      innobase/srv/srv0start.c:
        innobase_start_or_create_for_mysql(): create srv_monitor_file
        with tmpfile() or with a visible name "innodb_status.<pid>",
        depending on the setting of the flag srv_innodb_status.
      sql/ha_innodb.cc:
        innobase_init(): initialize srv_innodb_status
        update_table_comment(), get_foreign_key_create_info(): replace
        tmpfile() with os_file_create_tmpfile()
      sql/ha_innodb.h:
        Add new Boolean flag, innobase_create_status_file.
      sql/mysqld.cc:
        Add new Boolean flag, innodb_status_file
      0f5b1b3c
  30. 13 Jul, 2004 1 commit
    • unknown's avatar
      lock0lock.c: · 8a092002
      unknown authored
        Decrement n_lock_table_exp in lock_table_remove_low()
        instead of lock_table_dequeue().
        Do not empty lock_heap in lock_release_tables_off_kernel().
      
      
      innobase/lock/lock0lock.c:
        Decrement n_lock_table_exp in lock_table_remove_low()
        instead of lock_table_dequeue().
        Do not empty lock_heap in lock_release_tables_off_kernel().
      8a092002
  31. 12 Jul, 2004 2 commits
    • unknown's avatar
      InnoDB: LOCK TABLES clean-up, part 2 · ed4e47a6
      unknown authored
      innobase/lock/lock0lock.c:
        Decrement n_lock_table_exp in lock_table_dequeue(), not elsewhere
      ed4e47a6
    • unknown's avatar
      InnoDB: LOCK TABLE clean-up · 922fbbab
      unknown authored
      innobase/include/lock0lock.h:
        Improve comments regarding LOCK_TABLE_EXP
      innobase/include/row0mysql.h:
        Rename row_unlock_table_for_mysql() to row_unlock_tables_for_mysql()
        and improve its comment
      innobase/include/trx0trx.h:
        Rename n_tables_locked to n_lock_table_exp
      innobase/lock/lock0lock.c:
        Rename n_tables_locked to n_lock_table_exp
        Increment n_lock_table_exp already in lock_table_create()
        Replace some ut_ad() assertions with ut_a()
      innobase/row/row0mysql.c:
        Rename n_tables_locked to n_lock_table_exp
        Rename row_unlock_table_for_mysql() to row_unlock_tables_for_mysql()
        and improve its comment
      innobase/trx/trx0trx.c:
        Rename n_tables_locked to n_lock_table_exp
      sql/ha_innodb.cc:
        Rename n_tables_locked to n_lock_table_exp
        Rename row_unlock_table_for_mysql() to row_unlock_tables_for_mysql()
      922fbbab
  32. 16 Jun, 2004 1 commit
    • unknown's avatar
      InnoDB: Revert most of ChangeSet@1.1772, as the debug functions may · 9ed3c760
      unknown authored
      be needed when testing production releases
      
      
      innobase/btr/btr0btr.c:
        Remove #ifdef UNIV_DEBUG around debug code
      innobase/buf/buf0buf.c:
        Remove #ifdef UNIV_DEBUG around debug code
      innobase/buf/buf0flu.c:
        Remove #ifdef UNIV_DEBUG around debug code
      innobase/buf/buf0lru.c:
        Remove #ifdef UNIV_DEBUG around debug code
      innobase/buf/buf0rea.c:
        Remove #ifdef UNIV_DEBUG around debug code
      innobase/data/data0type.c:
        Remove #ifdef UNIV_DEBUG around debug code
      innobase/dict/dict0dict.c:
        Remove #ifdef UNIV_DEBUG around debug code
      innobase/fsp/fsp0fsp.c:
        Remove #ifdef UNIV_DEBUG around debug code
      innobase/fut/fut0lst.c:
        Remove #ifdef UNIV_DEBUG around debug code
      innobase/ibuf/ibuf0ibuf.c:
        Remove #ifdef UNIV_DEBUG around debug code
      innobase/include/btr0btr.h:
        Remove #ifdef UNIV_DEBUG around debug code
      innobase/include/buf0buf.h:
        Remove #ifdef UNIV_DEBUG around debug code
      innobase/include/buf0buf.ic:
        Remove #ifdef UNIV_DEBUG around debug code
      innobase/include/buf0flu.h:
        Remove #ifdef UNIV_DEBUG around debug code
      innobase/include/buf0lru.h:
        Remove #ifdef UNIV_DEBUG around debug code
      innobase/include/data0type.h:
        Remove #ifdef UNIV_DEBUG around debug code
      innobase/include/dict0dict.h:
        Remove #ifdef UNIV_DEBUG around debug code
      innobase/include/fsp0fsp.h:
        Remove #ifdef UNIV_DEBUG around debug code
      innobase/include/fut0lst.h:
        Remove #ifdef UNIV_DEBUG around debug code
      innobase/include/lock0lock.h:
        Remove #ifdef UNIV_DEBUG around debug code
      innobase/include/mem0dbg.h:
        Remove #ifdef UNIV_DEBUG around debug code
      innobase/include/mem0dbg.ic:
        Remove #ifdef UNIV_DEBUG around debug code
      innobase/include/mem0pool.h:
        Remove #ifdef UNIV_DEBUG around debug code
      innobase/include/mtr0mtr.h:
        Remove #ifdef UNIV_DEBUG around debug code
      innobase/include/pars0opt.h:
        Remove #ifdef UNIV_DEBUG around debug code
      innobase/include/sync0rw.h:
        Remove #ifdef UNIV_DEBUG around debug code
      innobase/include/sync0sync.h:
        Remove #ifdef UNIV_DEBUG around debug code
      innobase/lock/lock0lock.c:
        Remove #ifdef UNIV_DEBUG around debug code
      innobase/mem/mem0dbg.c:
        Remove #ifdef UNIV_DEBUG around debug code
      innobase/mem/mem0pool.c:
        Remove #ifdef UNIV_DEBUG around debug code
      innobase/mtr/mtr0mtr.c:
        Remove #ifdef UNIV_DEBUG around debug code
      innobase/pars/pars0opt.c:
        Remove #ifdef UNIV_DEBUG around debug code
      innobase/srv/srv0start.c:
        Remove #ifdef UNIV_DEBUG around debug code
      innobase/sync/sync0rw.c:
        Remove #ifdef UNIV_DEBUG around debug code
      innobase/sync/sync0sync.c:
        Remove #ifdef UNIV_DEBUG around debug code
      innobase/trx/trx0roll.c:
        Remove #ifdef UNIV_DEBUG around debug code
      9ed3c760
  33. 28 May, 2004 1 commit
    • unknown's avatar
      InnoDB: Add diagnostics when tmpfile() fails at start (Bug #3919) · f24e11a2
      unknown authored
      innobase/dict/dict0dict.c:
        Replace tmpfile() with os_file_create_tmpfile()
      innobase/include/os0file.h:
        Add os_file_create_tmpfile()
      innobase/lock/lock0lock.c:
        Replace tmpfile() with os_file_create_tmpfile()
      innobase/os/os0file.c:
        Add os_file_create_tmpfile()
        os_file_handle_error(): remove unused first parameter
      f24e11a2
  34. 14 May, 2004 1 commit
    • unknown's avatar
      InnoDB cleanup: eliminate IB__FILE__ · 334e76ab
      unknown authored
      innobase/btr/btr0cur.c:
        Replace IB__FILE__ with __FILE__
      innobase/btr/btr0sea.c:
        Replace IB__FILE__ with __FILE__
      innobase/buf/buf0buf.c:
        Replace IB__FILE__ with __FILE__
        Add const qualifiers
      innobase/ibuf/ibuf0ibuf.c:
        Replace IB__FILE__ with __FILE__
      innobase/include/buf0buf.h:
        Replace IB__FILE__ with __FILE__
        Add const qualifiers
      innobase/include/buf0buf.ic:
        Replace IB__FILE__ with __FILE__
      innobase/include/mem0mem.h:
        Replace IB__FILE__ with __FILE__
        Add const qualifiers
      innobase/include/mem0mem.ic:
        Add const qualifiers
      innobase/include/mtr0mtr.h:
        Replace IB__FILE__ with __FILE__
        Add const qualifiers
      innobase/include/mtr0mtr.ic:
        Add const qualifiers
      innobase/include/pars0pars.h:
        Add const qualifiers
      innobase/include/sync0arr.h:
        Add const qualifiers
      innobase/include/sync0ipm.ic:
        Replace IB__FILE__ with __FILE__
      innobase/include/sync0rw.h:
        Replace IB__FILE__ with __FILE__
        Add const qualifiers
      innobase/include/sync0rw.ic:
        Add const qualifiers
      innobase/include/sync0sync.h:
        Replace IB__FILE__ with __FILE__
        Add const qualifiers
      innobase/include/sync0sync.ic:
        Add const qualifiers
      innobase/include/univ.i:
        Remove IB__FILE__
      innobase/include/ut0dbg.h:
        Replace IB__FILE__ with __FILE__
      innobase/lock/lock0lock.c:
        Replace IB__FILE__ with __FILE__
      innobase/log/log0recv.c:
        Replace IB__FILE__ with __FILE__
      innobase/mem/mem0mem.c:
        Add const qualifiers
      innobase/pars/pars0pars.c:
        Add const qualifiers
      innobase/sync/sync0arr.c:
        Add const qualifiers
      innobase/sync/sync0rw.c:
        Replace IB__FILE__ with __FILE__
        Add const qualifiers
      innobase/sync/sync0sync.c:
        Add const qualifiers
      innobase/trx/trx0rec.c:
        Replace IB__FILE__ with __FILE__
      334e76ab
  35. 13 May, 2004 1 commit
    • unknown's avatar
      ha_innodb.cc, trx0trx.h, lock0lock.c, trx0trx.c: · 961cd760
      unknown authored
      Reserve the MySQL LOCK_thread_count mutex when printing thd->query of
      an arbitrary transaction; if we are printing thd->query of a transaction that
      we know is currently executing inside InnoDB, then we know that MySQL cannot
      meanwhile change thd->query, and no need to reserve the MySQL mutex; note
      that this patch still leaves open the possibility of races in MySQL's
      thd->query_len
      
      
      innobase/trx/trx0trx.c:
        Reserve the MySQL LOCK_thread_count mutex when printing thd->query of an arbitrary transaction; if we are printing thd->query of the a transaction that we know is currently executing inside InnoDB, then we know that MySQL cannot meanwhile change thd->query, and no need to reserve the MySQL mutex; note that thsi patch still leaves aopen the possibility of races in MySQL's thd->query_len
      innobase/lock/lock0lock.c:
        Reserve the MySQL LOCK_thread_count mutex when printing thd->query of an arbitrary transaction; if we are printing thd->query of the a transaction that we know is currently executing inside InnoDB, then we know that MySQL cannot meanwhile change thd->query, and no need to reserve the MySQL mutex; note that thsi patch still leaves aopen the possibility of races in MySQL's thd->query_len
      innobase/include/trx0trx.h:
        Reserve the MySQL LOCK_thread_count mutex when printing thd->query of an arbitrary transaction; if we are printing thd->query of the a transaction that we know is currently executing inside InnoDB, then we know that MySQL cannot meanwhile change thd->query, and no need to reserve the MySQL mutex; note that thsi patch still leaves aopen the possibility of races in MySQL's thd->query_len
      sql/ha_innodb.cc:
        Reserve the MySQL LOCK_thread_count mutex when printing thd->query of an arbitrary transaction; if we are printing thd->query of the a transaction that we know is currently executing inside InnoDB, then we know that MySQL cannot meanwhile change thd->query, and no need to reserve the MySQL mutex; note that thsi patch still leaves aopen the possibility of races in MySQL's thd->query_len
      961cd760
  36. 11 May, 2004 1 commit
  37. 29 Apr, 2004 1 commit
    • unknown's avatar
      InnoDB: implement LOCK TABLE (Bug #3299) · 57fc5263
      unknown authored
      innobase/include/lock0lock.h:
        Add lock_table_unlock() and lock_release_tables_off_kernel()
        Add LOCK_TABLE_EXP
      innobase/include/row0mysql.h:
        Add row_unlock_table_for_mysql() and row_lock_table_for_mysql()
      innobase/include/trx0trx.h:
        Add n_tables_locked
      innobase/lock/lock0lock.c:
        Add LOCK_TABLE_EXP for explicit LOCK TABLE commands
        Add lock_table_unlock()
        Add lock_release_tables_off_kernel()
      innobase/row/row0mysql.c:
        Add row_unlock_table_for_mysql() and row_lock_table_for_mysql()
      innobase/trx/trx0trx.c:
        Add n_tables_locked
      mysql-test/r/innodb.result:
        Updated handling of auto_inc columns
      sql/ha_innodb.cc:
        Call row_lock_table_for_mysql() and row_unlock_table_for_mysql()
      57fc5263