An error occurred fetching the project authors.
  1. 13 Dec, 2005 1 commit
    • unknown's avatar
      Fix BUG#12071: "Windows hang:'Opening tables' or 'Waiting for · 778d212b
      unknown authored
       table' lockup".
       Changes from the innodb-5.0-ss92 snapshot.
       Do not call os_file_create_tmpfile() at runtime. Instead, create
       all tempfiles at startup and guard access to them with mutexes.
      
      
      innobase/btr/btr0sea.c:
        Changes from the innodb-5.0ss92 snapshot.
      innobase/include/buf0buf.h:
        Changes from the innodb-5.0ss92 snapshot.
      innobase/include/os0file.h:
        Changes from the innodb-5.0ss92 snapshot.
      innobase/include/srv0srv.h:
        Changes from the innodb-5.0ss92 snapshot.
      innobase/row/row0ins.c:
        Changes from the innodb-5.0ss92 snapshot.
      innobase/srv/srv0srv.c:
        Changes from the innodb-5.0ss92 snapshot.
      innobase/srv/srv0start.c:
        Changes from the innodb-5.0ss92 snapshot.
      mysql-test/r/innodb.result:
        Changes from the innodb-5.0ss92 snapshot.
      mysql-test/t/innodb.test:
        Changes from the innodb-5.0ss92 snapshot.
      sql/ha_innodb.cc:
        Changes from the innodb-5.0ss92 snapshot.
      778d212b
  2. 12 Dec, 2005 1 commit
    • unknown's avatar
      Fix BUG#12071: "Windows hang: 'Opening tables' or 'Waiting for · 8e3f95b5
      unknown authored
       table' lockup".
       Changes from the innodb-4.1-ss11 snapshot.
       Do not call os_file-create_tmpfile() at runtime. Instead, create
       a tempfile at startup and guard access to it with a mutex.
       Also, fix bugs:
       10511: "Wrong padding of UCS2 CHAR columns in ON UPDATE CASCADE";
       13778: "If FOREIGN_KEY_CHECKS=0, one can create inconsistent FOREIGN
       KEYs". When FOREIGN_KEY_CHECKS=0 we still need to check that
       datatypes between foreign key references are compatible.
       Also, added test cases (also for bug 9802).
      
      
      innobase/dict/dict0dict.c:
        Changes from the innodb-4.1-ss11 snapshot
      innobase/dict/dict0load.c:
        Changes from the innodb-4.1-ss11 snapshot
      innobase/include/dict0dict.h:
        Changes from the innodb-4.1-ss11 snapshot
      innobase/include/dict0load.h:
        Changes from the innodb-4.1-ss11 snapshot
      innobase/include/os0file.h:
        Changes from the innodb-4.1-ss11 snapshot
      innobase/include/rem0cmp.h:
        Changes from the innodb-4.1-ss11 snapshot
      innobase/include/srv0srv.h:
        Changes from the innodb-4.1-ss11 snapshot
      innobase/rem/rem0cmp.c:
        Changes from the innodb-4.1-ss11 snapshot
      innobase/row/row0ins.c:
        Changes from the innodb-4.1-ss11 snapshot
      innobase/row/row0mysql.c:
        Changes from the innodb-4.1-ss11 snapshot
      innobase/srv/srv0srv.c:
        Changes from the innodb-4.1-ss11 snapshot
      innobase/srv/srv0start.c:
        Changes from the innodb-4.1-ss11 snapshot
      libmysqld/ha_blackhole.cc:
        Changes from the innodb-4.1-ss11 snapshot
      mysql-test/r/innodb.result:
        Changes from the innodb-4.1-ss11 snapshot
      mysql-test/t/innodb.test:
        Changes from the innodb-4.1-ss11 snapshot
      sql/ha_innodb.cc:
        Changes from the innodb-4.1-ss11 snapshot
      8e3f95b5
  3. 28 Oct, 2005 1 commit
  4. 26 Sep, 2005 1 commit
  5. 23 Sep, 2005 2 commits
    • unknown's avatar
      row0ins.c: · 611dc88c
      unknown authored
        Fix a compilation error: Visual C++ does not seem to allow variable declaration in the middle of a program block
      
      
      innobase/row/row0ins.c:
        Fix a compilation error: Visual C++ does not seem to allow variable declaration in the middle of a program block
      611dc88c
    • unknown's avatar
      Fix bug #3443, better foreign key error messsages. · e4b0b0d0
      unknown authored
      innobase/dict/dict0dict.c:
        Add 'add_newline' parameter to dict_print_info_on_foreign_key_in_create_format.
      innobase/include/dict0dict.h:
        Add 'add_newline' parameter to dict_print_info_on_foreign_key_in_create_format.
      innobase/include/os0file.h:
        Add os_file_read_string.
      innobase/include/trx0trx.h:
        Add trx_set_detailed_error and trx_set_detailed_error_from_file functions
        and a detailed_error field to trx_struct.
      innobase/include/ut0mem.h:
        Add ut_strlcpy.
      innobase/os/os0file.c:
        Add os_file_read_string.
      innobase/row/row0ins.c:
        Add row_ins_set_detailed function and call it when needed.
        
        Adapt to changes in dict_print_info_on_foreign_key_in_create_format.
      innobase/trx/trx0trx.c:
        Add trx_set_detailed_error and trx_set_detailed_error_from_file.
        
        Clear trx->detailed_error in trx_create.
      innobase/ut/ut0mem.c:
        Add ut_strlcpy.
      mysql-test/r/innodb.result:
        Add new tests, adapt existing ones whose output was changed.
      mysql-test/t/innodb.test:
        Add new tests, adapt existing ones whose output was changed.
      sql/ha_innodb.cc:
        Add get_error_message.
        
        Clear trx->detailed_error in start_stmt and external_lock.
      sql/ha_innodb.h:
        Add get_error_message.
      sql/handler.cc:
        Add special case code in print_error for HA_ERR_ROW_IS_REFERENCED and
        HA_ERR_NO_REFERENCED_ROW.
        
        Change SETMSG to point to new error messages.
      sql/share/errmsg.txt:
        Add ER_ROW_IS_REFERENCED_2 and ER_NO_REFERENCED_ROW_2.
      e4b0b0d0
  6. 12 Aug, 2005 1 commit
    • unknown's avatar
      InnoDB: Print more than 300 characters of queries in various error conditions, · babc9f5d
      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.
      babc9f5d
  7. 22 Jun, 2005 1 commit
  8. 13 May, 2005 1 commit
    • unknown's avatar
      InnoDB ON UPDATE CASCADE fixes: · 67d0502b
      unknown authored
      Enforce maximum char_length of UTF-8 data (Bug #10409).
      Pad UTF-8 variable-length CHAR columns with 0x20.
      Pad UCS2 CHAR columns with 0x0020 (Bug #10511).
      
      
      innobase/data/data0type.c:
        dtype_get_at_most_n_mbchars(): Avoid division by zero in assertion
        when this function is called with dtype->mbmaxlen==0
      innobase/row/row0ins.c:
        row_ins_cascade_calc_update_vec(): Enforce maximum char_length of
        UTF-8 data (Bug #10409).
        Pad UTF-8 CHAR columns with 0x20.
        Pad UCS2 CHAR columns with 0x0020 (Bug #10511).
      67d0502b
  9. 25 Apr, 2005 1 commit
    • unknown's avatar
      InnoDB: Performance optimizations based on OProfile analysis · 4a3a46af
      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.
      4a3a46af
  10. 21 Apr, 2005 1 commit
    • unknown's avatar
      InnoDB: Define some macros around GCC's __builtin_expect() · 4e0e9a3b
      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.
      4e0e9a3b
  11. 18 Apr, 2005 1 commit
  12. 15 Mar, 2005 1 commit
    • unknown's avatar
      Many files: · 7955fe52
      unknown authored
        InnoDB true VARCHAR
      
      
      sql/ha_innodb.h:
        InnoDB true VARCHAR
      sql/ha_innodb.cc:
        InnoDB true VARCHAR
      innobase/include/data0type.h:
        InnoDB true VARCHAR
      innobase/include/que0que.h:
        InnoDB true VARCHAR
      innobase/include/row0mysql.h:
        InnoDB true VARCHAR
      innobase/include/data0type.ic:
        InnoDB true VARCHAR
      innobase/include/row0mysql.ic:
        InnoDB true VARCHAR
      innobase/row/row0ins.c:
        InnoDB true VARCHAR
      innobase/row/row0mysql.c:
        InnoDB true VARCHAR
      innobase/row/row0sel.c:
        InnoDB true VARCHAR
      innobase/trx/trx0trx.c:
        InnoDB true VARCHAR
      7955fe52
  13. 10 Mar, 2005 1 commit
    • unknown's avatar
      InnoDB: Introduce the symbols REC_OFFS_NORMAL_SIZE and · 066e8900
      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/
      066e8900
  14. 09 Mar, 2005 1 commit
    • unknown's avatar
      InnoDB: Improve performance by about 10% by removing implicit · db32810d
      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_[]
      db32810d
  15. 04 Feb, 2005 1 commit
    • unknown's avatar
      InnoDB: Exclude code from InnoDB Hot Backup builds · ed4dbd12
      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
      ed4dbd12
  16. 03 Feb, 2005 1 commit
    • unknown's avatar
      Fixed a bug: deadlock without any locking, simple select and update (Bug #7975). · bb0507fa
      unknown authored
      innobase/row/row0ins.c:
        If the SQL-query will update or replace duplicate key row we take X-lcok
        for duplicate row.
      sql/ha_innodb.cc:
        INSERT ON DUPLICATE KEY UPDATE will also update duplicate key and we can
        take X-lock in this case for duplicate key records.
      BitKeeper/etc/ignore:
        Added innobase/row/row0index.c to the ignore list
      bb0507fa
  17. 25 Jan, 2005 1 commit
  18. 12 Jan, 2005 2 commits
    • unknown's avatar
      ha_innodb.cc: · 871fdda1
      unknown authored
        Add comments about why the InnoDB latching order is obeyed also for the MySQL query cache mutex; add an error printf if that is not the case
      sync0sync.h:
        Assign sync0sync.h ranks also for the MySQL query cache mutex and the MySQL binlog mutex; the latching order must be obeyed also for these
      row0ins.c:
        Add a comment why the query cache invalidate operation cannot deadlock in a cascaded FOREIGN KEY operation
      
      
      innobase/row/row0ins.c:
        Add a comment why the query cache invalidate operation cannot deadlock in a cascaded FOREIGN KEY operation
      innobase/include/sync0sync.h:
        Assign sync0sync.h ranks also for the MySQL query cache mutex and the MySQL binlog mutex; the latching order must be obeyed also for these
      sql/ha_innodb.cc:
        Add comments about why the InnoDB latching order is obeyed also for the MySQL query cache mutex; add an error printf if that is not the case
      871fdda1
    • unknown's avatar
      Take a shared record lock (LOCK_REC_NOT_GAP) for a matching record in the foreign · ca8fcc00
      unknown authored
      key check because we can allow inserts into gaps (Support Issue #4317).
      
      
      innobase/row/row0ins.c:
        Take a shared record lock (LOCK_REC_NOT_GAP) for a matching record in the foreign
        key check because we can allow inserts into gaps.
      ca8fcc00
  19. 27 Dec, 2004 3 commits
    • unknown's avatar
      row0ins.c: · a7b984d2
      unknown authored
        Fix bug: if we dropped a table where an INSERT was waiting for a lock to check a FOREIGN KEY constraint, then an assertion would fail in lock_reset_all_on_table(), since that operation assumes no waiting locks on the table or its records
      row0mysql.c:
        Fix bug: InnoDB failed to drop a table in the background drop queue if the table was referenced by a foreign key constraint
      
      
      innobase/row/row0mysql.c:
        Fix bug: InnoDB failed to drop a table in the background drop queue if the table was referenced by a foreign key constraint
      innobase/row/row0ins.c:
        Fix bug: if we dropped a table where an INSERT was waiting for a lock to check a FOREIGN KEY constraint, then an assertion would fail in lock_reset_all_on_table(), since that operation assumes no waiting locks on the table or its records
      a7b984d2
    • unknown's avatar
      ha_innodb.cc, row0ins.c, fil0fil.c: · 1b7282e3
      unknown authored
        Correct typo
      
      
      innobase/fil/fil0fil.c:
        Correct typo
      innobase/row/row0ins.c:
        Correct typo
      sql/ha_innodb.cc:
        Correct typo
      1b7282e3
    • unknown's avatar
      Many files: · 708eebea
      unknown authored
        Fix InnoDB critical bug #7496; we scan the InnoDB data dictionary also at a normal mysqld startup, and create the spaces, so that we know the mapping space id -> .ibd file name; fix an infinite loop if DISCARD TABLESPACE coincides with INSERT or some other table operation; fix a potential crash if DISCARD TABLESPACE coincides with a cascaded FOREIGN KEY operation in the same table; do not allow DISCARD TABLESPACE of a referenced table if FOREIGN_KEY_CHECKS=1
      
      
      innobase/buf/buf0rea.c:
        Fix InnoDB critical bug #7496; we scan the InnoDB data dictionary also at a normal mysqld startup, and create the spaces, so that we know the mapping space id -> .ibd file name; fix an infinite loop if DISCARD TABLESPACE coincides with INSERT or some other table operation; fix a potential crash if DISCARD TABLESPACE coincides with a cascaded FOREIGN KEY operation in the same table; do not allow DISCARD TABLESPACE of a referenced table if FOREIGN_KEY_CHECKS=1
      innobase/include/dict0load.h:
        Fix InnoDB critical bug #7496; we scan the InnoDB data dictionary also at a normal mysqld startup, and create the spaces, so that we know the mapping space id -> .ibd file name; fix an infinite loop if DISCARD TABLESPACE coincides with INSERT or some other table operation; fix a potential crash if DISCARD TABLESPACE coincides with a cascaded FOREIGN KEY operation in the same table; do not allow DISCARD TABLESPACE of a referenced table if FOREIGN_KEY_CHECKS=1
      innobase/include/fil0fil.h:
        Fix InnoDB critical bug #7496; we scan the InnoDB data dictionary also at a normal mysqld startup, and create the spaces, so that we know the mapping space id -> .ibd file name; fix an infinite loop if DISCARD TABLESPACE coincides with INSERT or some other table operation; fix a potential crash if DISCARD TABLESPACE coincides with a cascaded FOREIGN KEY operation in the same table; do not allow DISCARD TABLESPACE of a referenced table if FOREIGN_KEY_CHECKS=1
      innobase/include/row0mysql.h:
        Fix InnoDB critical bug #7496; we scan the InnoDB data dictionary also at a normal mysqld startup, and create the spaces, so that we know the mapping space id -> .ibd file name; fix an infinite loop if DISCARD TABLESPACE coincides with INSERT or some other table operation; fix a potential crash if DISCARD TABLESPACE coincides with a cascaded FOREIGN KEY operation in the same table; do not allow DISCARD TABLESPACE of a referenced table if FOREIGN_KEY_CHECKS=1
      innobase/include/trx0trx.h:
        Fix InnoDB critical bug #7496; we scan the InnoDB data dictionary also at a normal mysqld startup, and create the spaces, so that we know the mapping space id -> .ibd file name; fix an infinite loop if DISCARD TABLESPACE coincides with INSERT or some other table operation; fix a potential crash if DISCARD TABLESPACE coincides with a cascaded FOREIGN KEY operation in the same table; do not allow DISCARD TABLESPACE of a referenced table if FOREIGN_KEY_CHECKS=1
      innobase/dict/dict0load.c:
        Fix InnoDB critical bug #7496; we scan the InnoDB data dictionary also at a normal mysqld startup, and create the spaces, so that we know the mapping space id -> .ibd file name; fix an infinite loop if DISCARD TABLESPACE coincides with INSERT or some other table operation; fix a potential crash if DISCARD TABLESPACE coincides with a cascaded FOREIGN KEY operation in the same table; do not allow DISCARD TABLESPACE of a referenced table if FOREIGN_KEY_CHECKS=1
      innobase/fil/fil0fil.c:
        Fix InnoDB critical bug #7496; we scan the InnoDB data dictionary also at a normal mysqld startup, and create the spaces, so that we know the mapping space id -> .ibd file name; fix an infinite loop if DISCARD TABLESPACE coincides with INSERT or some other table operation; fix a potential crash if DISCARD TABLESPACE coincides with a cascaded FOREIGN KEY operation in the same table; do not allow DISCARD TABLESPACE of a referenced table if FOREIGN_KEY_CHECKS=1
      innobase/row/row0ins.c:
        Fix InnoDB critical bug #7496; we scan the InnoDB data dictionary also at a normal mysqld startup, and create the spaces, so that we know the mapping space id -> .ibd file name; fix an infinite loop if DISCARD TABLESPACE coincides with INSERT or some other table operation; fix a potential crash if DISCARD TABLESPACE coincides with a cascaded FOREIGN KEY operation in the same table; do not allow DISCARD TABLESPACE of a referenced table if FOREIGN_KEY_CHECKS=1
      innobase/row/row0mysql.c:
        Fix InnoDB critical bug #7496; we scan the InnoDB data dictionary also at a normal mysqld startup, and create the spaces, so that we know the mapping space id -> .ibd file name; fix an infinite loop if DISCARD TABLESPACE coincides with INSERT or some other table operation; fix a potential crash if DISCARD TABLESPACE coincides with a cascaded FOREIGN KEY operation in the same table; do not allow DISCARD TABLESPACE of a referenced table if FOREIGN_KEY_CHECKS=1
      innobase/row/row0sel.c:
        Fix InnoDB critical bug #7496; we scan the InnoDB data dictionary also at a normal mysqld startup, and create the spaces, so that we know the mapping space id -> .ibd file name; fix an infinite loop if DISCARD TABLESPACE coincides with INSERT or some other table operation; fix a potential crash if DISCARD TABLESPACE coincides with a cascaded FOREIGN KEY operation in the same table; do not allow DISCARD TABLESPACE of a referenced table if FOREIGN_KEY_CHECKS=1
      innobase/srv/srv0start.c:
        Fix InnoDB critical bug #7496; we scan the InnoDB data dictionary also at a normal mysqld startup, and create the spaces, so that we know the mapping space id -> .ibd file name; fix an infinite loop if DISCARD TABLESPACE coincides with INSERT or some other table operation; fix a potential crash if DISCARD TABLESPACE coincides with a cascaded FOREIGN KEY operation in the same table; do not allow DISCARD TABLESPACE of a referenced table if FOREIGN_KEY_CHECKS=1
      innobase/trx/trx0trx.c:
        Fix InnoDB critical bug #7496; we scan the InnoDB data dictionary also at a normal mysqld startup, and create the spaces, so that we know the mapping space id -> .ibd file name; fix an infinite loop if DISCARD TABLESPACE coincides with INSERT or some other table operation; fix a potential crash if DISCARD TABLESPACE coincides with a cascaded FOREIGN KEY operation in the same table; do not allow DISCARD TABLESPACE of a referenced table if FOREIGN_KEY_CHECKS=1
      sql/ha_innodb.cc:
        Fix InnoDB critical bug #7496; we scan the InnoDB data dictionary also at a normal mysqld startup, and create the spaces, so that we know the mapping space id -> .ibd file name; fix an infinite loop if DISCARD TABLESPACE coincides with INSERT or some other table operation; fix a potential crash if DISCARD TABLESPACE coincides with a cascaded FOREIGN KEY operation in the same table; do not allow DISCARD TABLESPACE of a referenced table if FOREIGN_KEY_CHECKS=1
      708eebea
  20. 10 Dec, 2004 1 commit
    • unknown's avatar
      InnoDB: Reduce the stack space consumption of ON UPDATE CASCADE · 0404a607
      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.
      0404a607
  21. 09 Dec, 2004 1 commit
    • unknown's avatar
      InnoDB: Changed interface to rec_get_offsets(), to reduce the use of · 7945222c
      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()
      7945222c
  22. 08 Dec, 2004 1 commit
    • unknown's avatar
      InnoDB: Make btr_search_drop_page_hash_index() work with the compact · f9bd116c
      unknown authored
      record format without requiring the doubly linked list added by
      Heikki in ChangeSet@1.1627.16.2
      
      
      innobase/btr/btr0sea.c:
        btr_search_drop_page_hash_index(): support the compact record format
      innobase/ibuf/ibuf0ibuf.c:
        ibuf_insert_to_index_page(): Remove unnecessary computation of
        field offsets.
      innobase/row/row0ins.c:
        row_ins_index_entry_low(): Remove unnecessary computation of
        field offsets.
      f9bd116c
  23. 03 Dec, 2004 1 commit
    • unknown's avatar
      InnoDB: Fix ctype_utf8 test failure caused by the new record format. · f09c8b35
      unknown authored
      innobase/btr/btr0btr.c:
        Cache the value of dtype_get_fixed_size(type) in order to avoid
        repeated calls to an external function innobase_is_mb_cset()
      innobase/include/data0type.ic:
        Declare innobase_is_mb_cset().
        dtype_get_fixed_size(): Invoke innobase_is_mb_cset() for DATA_MYSQL.
      innobase/row/row0ins.c:
        Cache the value of dtype_get_fixed_size(type) in order to avoid
        repeated calls to an external function innobase_is_mb_cset()
      innobase/row/row0sel.c:
        row_search_for_mysql(): Added a missing rec_reget_offsets() call
        that caused an InnoDB debug assertion failure in ctype_utf8 test.
      sql/ha_innodb.cc:
        Define innobase_is_mb_cset().
      f09c8b35
  24. 02 Dec, 2004 1 commit
    • unknown's avatar
      Many files: · d2c4b545
      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.
      d2c4b545
  25. 30 Nov, 2004 1 commit
    • unknown's avatar
      Added support for X/Open XA prepare, recover, commit and rollback. · df0e057a
      unknown authored
      innobase/include/trx0roll.h:
        Changed prototype of the function trx_rollback_or_clean_all_without_sess
        because this function is executed in a background thread.
      innobase/include/trx0trx.h:
        Added support for X/Open XA prepare, recover and search by X/Open XA XID.
      innobase/include/trx0undo.h:
        Added support for X/Open XA prepare and recover. We need to store X/Open XA XID
        to the undo log header for recovery.
      innobase/log/log0recv.c:
        Create a thread to run trx_rollback_or_clean_all_without_sess function
        to rollback the uncommitted transactions which have no user session.
      innobase/row/row0ins.c:
        Remove unnecessary variables.
      innobase/trx/trx0roll.c:
        Changed so that trx_rollback_or_clean_all_without_sess is executed
        in a background thread. We should also leave all prepared transactions
        active to wait for commit or abort from MySQL.
      innobase/trx/trx0sys.c:
        Only those rows which belong to the active transaction in crash recovery
        are undone.
      innobase/trx/trx0trx.c:
        Added support for X/Open XA prepare and recover. We need to store X/Open XA
        XID to trx structure and left prepared transactions to wait for a
        commit or abort from MySQL. This requires also that we add TRX_PREPARED
        state to the transaction and TRX_UNDO_PREPARED state for undo logs.
      innobase/trx/trx0undo.c:
        Added support for X/Open XA prepare and recover. We need to store X/Open XA
        XID to undo log header for recovery of distributed transactions.
      sql/ha_innodb.h:
        Added prototypes for X/Open XA prepare, recover, commit and rollback.
      sql/handler.h:
        Added definition for X/Open XA XID structure.
      df0e057a
  26. 18 Nov, 2004 1 commit
    • unknown's avatar
      row0ins.c: · 9039cff6
      unknown authored
        row_ins_scan_sec_index_for_duplicate(),
        row_ins_duplicate_error_in_clust():
        remove unused variables "ptr"
      
      
      innobase/row/row0ins.c:
        row_ins_scan_sec_index_for_duplicate(),
        row_ins_duplicate_error_in_clust():
        remove unused variables "ptr"
      9039cff6
  27. 21 Oct, 2004 1 commit
    • unknown's avatar
      row0mysql.c, row0ins.c: · 4f84f90f
      unknown authored
        Fix bug #5961: release the dictionary latch during a long cascaded FOREIGN KEY operation, so that we do not starve other users
      
      
      innobase/row/row0ins.c:
        Fix bug #5961: release the dictionary latch during a long cascaded FOREIGN KEY operation, so that we do not starve other users
      innobase/row/row0mysql.c:
        Fix bug #5961: release the dictionary latch during a long cascaded FOREIGN KEY operation, so that we do not starve other users
      4f84f90f
  28. 15 Oct, 2004 1 commit
    • unknown's avatar
      Use already parsed SQL-query in the current thread when determining · 1927d24e
      unknown authored
      was the query REPLACE or LOAD DATA INFILE REPLACE.
      
      
      innobase/row/row0ins.c:
        Find SQL-query directly from current thread and see if the
        query was REPLACE or LOAD DATA INFILE REPLACE.
      sql/ha_innodb.cc:
        Find current thread and return true if SQL-query in the current
        thread was either REPLACE or LOAD DATA INFILE REPLACE.
      1927d24e
  29. 14 Oct, 2004 1 commit
    • unknown's avatar
      This patch removes unnecessary lock from the supremum record, takes · dbe27392
      unknown authored
      X-locks on duplicates also on LOAD DATA...REPLACE clause and
      fixes a bug #6086 adding --disable_warnings and --enable_warnings around
      the create table clauses in ctype_utf8 tests for InnoDB.
      
      
      innobase/dict/dict0dict.c:
        Remove static.
      innobase/include/dict0dict.h:
        Add prototype for a function dict_scan_to
      innobase/row/row0ins.c:
        Add support for a LOAD DATA INFILE 'xxx' REPLACE INTO TABLE x. We should
        take X-locks on both REPLACE and LOAD DATA...REPLACE queries to duplicate
        records.
      innobase/row/row0sel.c:
        If innodb_locks_unsafe_for_binlog options is used we do not lock
        gaps. Supremum record is really a dummy record i.e. gap, therefore 
        we do set locks there.
      mysql-test/t/ctype_utf8.test:
        Fix bug #6086: Add --disable_warnings and --enable_warnings around the 
        create table where engine=innodb.
      dbe27392
  30. 01 Oct, 2004 2 commits
    • unknown's avatar
      Many files: · d822c6f7
      unknown authored
        Fix bug introduced by the prefix key + multibyte charsets patch today
      
      
      sql/ha_innodb.cc:
        Fix bug introduced by the prefix key + multibyte charsets patch today
      innobase/include/data0type.h:
        Fix bug introduced by the prefix key + multibyte charsets patch today
      innobase/include/fsp0fsp.h:
        Fix bug introduced by the prefix key + multibyte charsets patch today
      innobase/data/data0type.c:
        Fix bug introduced by the prefix key + multibyte charsets patch today
      innobase/row/row0ins.c:
        Fix bug introduced by the prefix key + multibyte charsets patch today
      innobase/row/row0row.c:
        Fix bug introduced by the prefix key + multibyte charsets patch today
      innobase/row/row0sel.c:
        Fix bug introduced by the prefix key + multibyte charsets patch today
      innobase/row/row0upd.c:
        Fix bug introduced by the prefix key + multibyte charsets patch today
      d822c6f7
    • unknown's avatar
      InnoDB: quote identifiers according to MySQL settings (Bug #5292) · a418a35c
      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()
      a418a35c
  31. 03 Sep, 2004 2 commits
    • unknown's avatar
      bfe3df38
    • unknown's avatar
      Fixed unique prefix key bug for multibyte character sets (BUG #4521) for · bbd402dc
      unknown authored
      InnoDB. This fixes also a second part of the same problem with prefix keys
      on a multibyte string column for InnoDB.
      
      
      innobase/btr/btr0btr.c:
        Multibyte character set prefix indexes are not any more fixed size. Therefore,
        we have to chect that length of the index field in not greater than
        prefix length.
      innobase/rem/rem0cmp.c:
        Remove unnecessary changes.
      innobase/row/row0ins.c:
        Fixed unique prefix key or prefix key using multibyte character set bugs for
        InnoDB (BUG #4521). For prefix keys we have to get the storage length
        for the prefix length of characters in the key.
      innobase/row/row0row.c:
        Fixed unique prefix key or prefix key using multibyte character set bugs for
        InnoDB (BUG #4521). For prefix keys we have to get the storage length
        for the prefix length of characters in the key.
      innobase/row/row0sel.c:
        Fixed unique prefix key or prefix key using multibyte character set bugs for
        InnoDB (BUG #4521). For prefix keys we have to get the storage length
        for the prefix length of characters in the key.
      innobase/row/row0upd.c:
        Fixed unique prefix key or prefix key using multibyte character set bugs for
        InnoDB (BUG #4521). For prefix keys we have to get the storage length
        for the prefix length of characters in the key.
      mysql-test/r/ctype_utf8.result:
        Added utf8 character test cases for InnoDB.
      mysql-test/t/ctype_utf8.test:
        Added utf8 character expected test results for InnoDB.
      sql/ha_innodb.cc:
        Added function innobase_get_at_most_n_mbchars to return position of
        the nth character in the multibyte character string.
      sql/ha_innodb.h:
        Remove unnecessary changes.
      bbd402dc
  32. 17 Aug, 2004 1 commit
  33. 12 Aug, 2004 1 commit
    • unknown's avatar
      This change includes optimization for a lock wait rules and a new behaviour for · a7bd2db6
      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.
      a7bd2db6
  34. 11 Aug, 2004 1 commit
    • unknown's avatar
      Take X-lock for duplicate keys in REPLACE command. · 11b25579
      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.
      11b25579