Commit graph

641 commits

Author SHA1 Message Date
unknown
7732a5901f Merge bk-internal.mysql.com:/home/bk/mysql-5.0
into  zippy.cornsilk.net:/home/cmiller/work/mysql/mysql-5.0-maint


mysql-test/mysql-test-run.pl:
  Auto merged
sql/Makefile.am:
  Auto merged
sql/ha_innodb.cc:
  Auto merged
2006-09-23 09:48:43 -04:00
unknown
9b762ae343 Applied innodb snapshot ss792 and ss854.
This ChangeSet will be null-merged to mysql-5.1.

Bugs fixed:
- Bug #21638:  InnoDB: possible segfault in page_copy_rec_list_end_no_locks
  If prefix_len is specified, write it to the insert buffer instead of type->len
- bug #10746:  InnoDB: Error: stored_select_lock_type is 0 inside ::start_stmt()!
  INSERT ... SELECT uses LOCK_NONE in innodb_locks_unsafe_for_binlog mode, so do
  not check for LOCK_X or LOCK_S in start_stmt()


innobase/ibuf/ibuf0ibuf.c:
  Applied innodb snapshot ss792 and ss854.
  
  ibuf_entry_build(): Write prefix_len to the insert buffer instead of type->len
  when prefix_len is specified.  Otherwise, btr_page_reorganize() during
  insert buffer merge would fail on ROW_FORMAT=COMPACT tables.  (Bug #21638)
innobase/include/data0type.h:
  Applied innodb snapshot ss792 and ss854.
  
  ibuf_entry_build(): Write prefix_len to the insert buffer instead of type->len
  when prefix_len is specified.  Otherwise, btr_page_reorganize() during
  insert buffer merge would fail on ROW_FORMAT=COMPACT tables.  (Bug #21638)
innobase/include/data0type.ic:
  Applied innodb snapshot ss792 and ss854.
  
  ibuf_entry_build(): Write prefix_len to the insert buffer instead of type->len
  when prefix_len is specified.  Otherwise, btr_page_reorganize() during
  insert buffer merge would fail on ROW_FORMAT=COMPACT tables.  (Bug #21638)
sql/ha_innodb.cc:
  Applied innodb snapshot ss792 and ss854.
  
  ha_innobase::start_stmt(): Remove the check for
  prebuilt->stored_select_lock_type being LOCK_X or LOCK_S.
  This would cause false alarms with INSERT ... SELECT, which would use
  LOCK_NONE in innodb_locks_unsafe_for_binlog mode.  (Bug #10746)
2006-09-20 13:00:49 -06:00
unknown
2233201ba7 Bug#20573
"strict mode: inserts autogenerated auto_increment value bigger than max"
  Strict mode should fail if autoincrement value is out of range


include/my_base.h:
  Add new handler error codes
sql/ha_berkeley.cc:
  handle error in update_auto_increment()
sql/ha_heap.cc:
  handle error in update_auto_increment()
sql/ha_innodb.cc:
  handle error in update_auto_increment()
sql/ha_myisam.cc:
  handle error in update_auto_increment()
sql/ha_myisammrg.cc:
  handle error in update_auto_increment()
sql/ha_ndbcluster.cc:
  handle error in update_auto_increment()
sql/handler.cc:
  return error from handler::update_auto_increment()
sql/handler.h:
  change return type of handler::update_auto_increment() to int
sql/share/errmsg.txt:
  new error message for auto-increment
mysql-test/include/strict_autoinc.inc:
  New BitKeeper file ``mysql-test/include/strict_autoinc.inc''
mysql-test/r/strict_autoinc_1myisam.result:
  New BitKeeper file ``mysql-test/r/strict_autoinc_1myisam.result''
mysql-test/r/strict_autoinc_2innodb.result:
  New BitKeeper file ``mysql-test/r/strict_autoinc_2innodb.result''
mysql-test/r/strict_autoinc_3heap.result:
  New BitKeeper file ``mysql-test/r/strict_autoinc_3heap.result''
mysql-test/r/strict_autoinc_4bdb.result:
  New BitKeeper file ``mysql-test/r/strict_autoinc_4bdb.result''
mysql-test/r/strict_autoinc_5ndb.result:
  New BitKeeper file ``mysql-test/r/strict_autoinc_5ndb.result''
mysql-test/t/strict_autoinc_1myisam.test:
  New BitKeeper file ``mysql-test/t/strict_autoinc_1myisam.test''
mysql-test/t/strict_autoinc_2innodb.test:
  New BitKeeper file ``mysql-test/t/strict_autoinc_2innodb.test''
mysql-test/t/strict_autoinc_3heap.test:
  New BitKeeper file ``mysql-test/t/strict_autoinc_3heap.test''
mysql-test/t/strict_autoinc_4bdb.test:
  New BitKeeper file ``mysql-test/t/strict_autoinc_4bdb.test''
mysql-test/t/strict_autoinc_5ndb.test:
  New BitKeeper file ``mysql-test/t/strict_autoinc_5ndb.test''
2006-08-30 13:20:39 -07:00
unknown
3468780e0c innodb r702
innodb r719


innobase/btr/btr0btr.c:
  innodb r702
innobase/buf/buf0buf.c:
  innodb r702
innobase/dict/dict0dict.c:
  innodb r702
innobase/fil/fil0fil.c:
  innodb r702
innobase/fsp/fsp0fsp.c:
  innodb r702
innobase/include/btr0cur.ic:
  innodb r719
innobase/include/buf0buf.ic:
  innodb r702
innobase/log/log0log.c:
  innodb r702
innobase/log/log0recv.c:
  innodb r702
innobase/os/os0file.c:
  innodb r702
innobase/row/row0mysql.c:
  innodb r702
innobase/row/row0sel.c:
  innodb r702
innobase/srv/srv0start.c:
  innodb r702
innobase/ut/ut0dbg.c:
  innodb r702
sql/ha_innodb.cc:
  innodb r702
2006-08-18 14:16:11 +02:00
unknown
75e40b161b Applied innodb-5.0-ss677 snapshot.
Fixes:
- bug #19834: Using cursors when running in READ-COMMITTED can cause InnoDB to crash
- bug #21112: InnoDB slow with > 100,000 .ibd files
- bug #21113: Duplicate printout in SHOW INNODB STATUS


innobase/fil/fil0fil.c:
  Applied innodb-5.0-ss677 snapshot.
    Make the tablespace cache hash size 100 or 1000 times bigger. Fixes bug #21112.
innobase/ibuf/ibuf0ibuf.c:
  Applied innodb-5.0-ss677 snapshot.
    ibuf_print(): Don't print redundant information. Fixes bug #21113.
sql/ha_innodb.cc:
  Applied innodb-5.0-ss677 snapshot.
    ha_innobase::start_stmt(): patch from Heikki:
    Do not call read_view_close_for_mysql().  (Bug #19834)
2006-08-01 21:59:58 +02:00
unknown
b250722087 Applying patch from SergeyV
Fixes bug#17264, for alter table on win32 for successfull operation completion
it is used TL_WRITE(=10) lock instead of TL_WRITE_ALLOW_READ(=6), however here
in innodb handler TL_WRTIE is lifted to TL_WRITE_ALLOW_WRITE, which causes
race condition when several clients do alter table simultaneously.


mysql-test/r/lock_multi.result:
  Test case for bug#17264.
mysql-test/t/lock_multi.test:
  Test case for bug#17264
2006-06-20 13:43:13 -04:00
unknown
c55912b09e Applied innodb-5.0-ss547 snapshot.
Fix BUG#19542 "InnoDB doesn't increase the Handler_read_prev counter".


innobase/os/os0file.c:
  Applied innodb-5.0-ss547 snapshot.
   Check the page trailers also after writing to disk.
   This improves the chances of diagnosing Bug 18886.
   os_file_check_page_trailers(): New function for checking
   that two copies of the LSN stamped on the pages match.
   os_aio_simulated_handle(): Call os_file_check_page_trailers()
   before and after os_file_write().
sql/ha_innodb.cc:
  Applied innodb-5.0-ss547 snapshot.
   Increment statistic counter in ha_innobase::index_prev().
2006-05-15 18:02:21 +04:00
unknown
365f6f6f03 foo2
sql/ha_innodb.cc:
  Import patch foo2
sql/ha_innodb.h:
  Import patch foo2
sql/handler.cc:
  Import patch foo2
sql/handler.h:
  Import patch foo2
sql/mysqld.cc:
  Import patch foo2
sql/set_var.cc:
  Import patch foo2
sql/sql_class.h:
  Import patch foo2
sql/sql_repl.cc:
  Import patch foo2
2006-04-13 17:22:56 +09:30
unknown
ce33555014 foo1
sql/ha_innodb.cc:
  Import patch foo1
sql/ha_innodb.h:
  Import patch foo1
sql/handler.cc:
  Import patch foo1
sql/handler.h:
  Import patch foo1
sql/mysqld.cc:
  Import patch foo1
sql/set_var.cc:
  Import patch foo1
sql/sql_class.h:
  Import patch foo1
sql/sql_repl.cc:
  Import patch foo1
2006-04-13 17:20:33 +09:30
unknown
f6ffb77cb4 Applied innodb-5.0-ss398 snapshot.
Fixed BUG#15650: DELETE with LEFT JOIN crashes server
 with innodb_locks_unsafe_for_binlog.
 Fixed compilation problem with non-C99 compilers
 in btr0sea.c


innobase/btr/btr0sea.c:
  Applied innodb-5.0-ss398 snapshot.
   Fix compilation problem with non-C99 compilers.
sql/ha_innodb.cc:
  Applied innodb-5.0-ss398 snapshot.
   Remove assertion ut_error which crashes the mysqld
   server if it prints a warning about the adaptive latch.
2006-04-01 01:54:15 +04:00
unknown
fd6db50c0b Applied innodb-5.0-ss368 snapshot
Fixed bugs:
  #16814: SHOW INNODB STATUS format error in LATEST FOREIGN KEY ERROR section
    dict_foreign_key_error_report(): Always print a newline after invoking
    dict_print_info_on_foreign_key_in_create_format().
  #16827: Better InnoDB error message if ibdata files omitted from my.cnf.
  #17126: CHECK TABLE on InnoDB causes a short hang during check of adaptive hash.
    CHECK TABLE blocking other queries, by releasing the btr_search_latch
    periodically during the adaptive hash table validation.
  #17405: Valgrind: conditional jump or move depends on uninitialised valuesw.
    buf_block_init(): Reset magic_n, buf_fix_count, and io_fix to avoid testing
    uninitialised variables.
  #18077: InnoDB uses full explicit table locks in stored FUNCTION.
  #18238: When locks exhaust the buffer pool, InnoDB does not roll back the trx.
    Check in pessimistic insert and update if the buffer pool is exhausted by locks.
  #18252: Disk space leaks in updates of InnoDB BLOB rows.
    btr_cur_pessimistic_update(): Invoke rec_get_offset() after rec_set_field_extern_bits().
    btr_store_big_rec_extern_fields(): Note that offsets will no longer be valid
    after calling this function.
  #18283: When InnoDB returns error 'lock table full', MySQL can write to binlog too much.
  #18384: InnoDB memory leak on duplicate key errors if row has many columns.
    row_ins_duplicate_error_in_clust(): Call mem_heap_free(heap) at func_exit if needed.
  #18350: Use consistent read in CREATE ... SELECT .. if innodb_locks_unsafe_for_binlog is used.


innobase/btr/btr0cur.c:
  Applied innodb-5.0-ss368 snapshot
innobase/btr/btr0sea.c:
  Applied innodb-5.0-ss368 snapshot
innobase/buf/buf0buf.c:
  Applied innodb-5.0-ss368 snapshot
innobase/buf/buf0lru.c:
  Applied innodb-5.0-ss368 snapshot
innobase/data/data0type.c:
  Applied innodb-5.0-ss368 snapshot
    dtype_print(): Fix printing of prtype.
innobase/dict/dict0dict.c:
  Applied innodb-5.0-ss368 snapshot
innobase/fil/fil0fil.c:
  Applied innodb-5.0-ss368 snapshot
    fil_extend_space_to_desired_size(): in UNIV_HOTBACKUP builds,
    do not touch srv_data_file_sizes[] or srv_n_data_files.
innobase/ha/ha0ha.c:
  Applied innodb-5.0-ss368 snapshot
innobase/include/btr0cur.h:
  Applied innodb-5.0-ss368 snapshot
innobase/include/buf0lru.h:
  Applied innodb-5.0-ss368 snapshot
innobase/include/ha0ha.h:
  Applied innodb-5.0-ss368 snapshot
innobase/include/page0page.ic:
  Applied innodb-5.0-ss368 snapshot
    Remove UNIV_RELEASE_NOT_YET_STABLE and related checks.
innobase/include/univ.i:
  Applied innodb-5.0-ss368 snapshot
    Remove UNIV_RELEASES_NOT_YET_STABLE and related checks.
innobase/row/row0ins.c:
  Applied innodb-5.0-ss368 snapshot
innobase/row/row0sel.c:
  Applied innodb-5.0-ss368 snapshot
    Remove UNIV_RELEASE_NOT_YET_STABLE and related checks.
    page_rec_is_comp(): Remove the bounds check.
    row_sel_field_store_in_mysql_format(): Turn the assertions
    on mbminlen, mbmaxlen, and templ->type into debug assertions.
innobase/row/row0upd.c:
  Applied innodb-5.0-ss368 snapshot
mysql-test/t/innodb.test:
  Applied innodb-5.0-ss368 snapshot
sql/ha_innodb.cc:
  Applied innodb-5.0-ss368 snapshot
    Fix memory allocation bug (by changing MY_WME to MY_FAE) in get_share.
    Also partially fix coding style of the function.
2006-03-29 23:04:32 +04:00
unknown
c560a5b1d4 Merge
sql/ha_innodb.cc:
  Auto merged
2006-03-18 10:11:36 +01:00
unknown
3adad925fe configure.in:
Changed release name to 5.0.19a
ha_innodb.cc:
  InnoDB used table locks (not row locks) within stored functions. (Bug #18077)


sql/ha_innodb.cc:
  InnoDB used table locks (not row locks) within stored functions. (Bug #18077)
configure.in:
  Changed release name to 5.0.19a
2006-03-17 11:32:02 +01:00
unknown
2122a3f9bc Merge mysql.com:/home/emurphy/src/mysql/bk-clean/mysql-4.1
into  mysql.com:/home/emurphy/src/mysql/bk-clean/mysql-5.0


sql/ha_innodb.cc:
  Auto merged
2006-03-17 10:50:01 +01:00
unknown
367442f754 BUG#18283 When InnoDB returns error 'lock table full', MySQL can write
to binlog too much.

When InnoDB has to rollback a transaction because the lock table has
filled up, it also needs to inform the upper layer that the transaction
was rolled back so that the cached transaction is not written to the
binary log.


sql/ha_innodb.cc:
  When InnoDB rolls back a transaction in HA_ERR_LOCK_TABLE_FULL, it
  needs to inform the upper layer to rollback the transaction also.
2006-03-17 10:25:29 +01:00
unknown
6a9a96dc61 Fixed: BUG#15653, BUG#16157, BUG#16229, BUG#16298, BUG#16387, BUG#16582.
Applied innodb-5.0-ss149/162 snapshots.


innobase/btr/btr0sea.c:
  Applied innodb-5.0-149/162 snapshots.
    Account for a race condition when dropping the adaptive hash
    index for a B-tree page (Bug #16582).
    btr_search_drop_page_hash_index(): Retry the operation if a
      hash index with different parameters was built meanwhile.
      Add diagnostics for the case that hash node pointers to
      the page remain. This fix is from Heikki.
    btr_search_info-update_hash(), btr_search_info_update_slow():
      Document the parameter "info" as in/out.
innobase/dict/dict0dict.c:
  Applied innodb-5.0-149/162 snapshots.
    Do not mistake TABLENAME_ibfk_0 for auto generated id (Bug #16387).
    dict_table_get_highest_foreign_id(): Ignore foreign constraint
      identifiers starting with the pattern TABLENAME_ibfk_0.
innobase/dict/dict0load.c:
  Applied innodb-5.0-149/162 snapshots.
    dict_load_columns(): Set the charset-collation code
    DATA_MYSQL_BINARY_CHARSET_COLL for those binary string columns
    that lack a charset-collation code, i.e., the tables were created
    with an older version of MySQL/InnoDB than 4.1.2 (Bug #16298).
innobase/fil/fil0fil.c:
  Applied innodb-5.0-149/162 snapshots.
    Keep track on unflushed modifications to file spaces. When there
    are tens of thousands of file spaces, flushing all files in
    fil_flush_file_spaces() would be very slow (Bug #15653).
    fil_flush_file_spaces(): Only flush unflushed file spaces.
    fil_space_t, fil_system_t: Add a list of unflushed spaces.
innobase/include/univ.i:
  Applied innodb-5.0-149/162 snapshots.
    Avoid breaking --with-debug builds on QNS and other systems
    whose compiler pretends to be GCC 2.
    Outside __WIN__ define UNIV_INLINE as static inline.
innobase/os/os0sync.c:
  Applied innodb-5.0-149/162 snapshots.
    Replace goto in os_event_wait with a normal loop.
innobase/srv/srv0start.c:
  Applied innodb-5.0-149/162 snapshots.
    Fix bug #16157, a crash when innodb_log_group_home_dir is set
    to an empty string. This patch is from Heikki.
mysql-test/r/innodb.result:
  Applied innodb-5.0-149/162 snapshots.
    Fixed results for added test cases.
mysql-test/t/innodb.test:
  Applied innodb-5.0-149/162 snapshots.
    Added test cases.
sql/ha_innodb.cc:
  Applied innodb-5.0-149/162 snapshots.
    Remove some declarations of unused global variables and member
      variables of class ha_innobase.
    Added diagnostic code trx_print() to
      innobase_query_caching_of_table_permitted() to find reason
      why we are holding adaptive search latch.
    Fixed bug #16229 MySQL/InnoDB uses full explicit table locks
      in trigger processing. Take a InnoDB table lock only if user
      has explicitly requested a table lock. Added some additional
      comments to store_lock() and external_lock(). Fixed some
      code style errors.
    Remember to use noninlined versions of the functions on
      ha_innodb.cc !
sql/ha_innodb.h:
  Applied innodb-5.0-149/162 snapshots.
    Remove some declarations of unused global variables and member
    variables of class ha_innobase.
2006-01-31 21:41:48 +03:00
unknown
e3f0690d9b Applied patch recieved from Marko:
Make innodb_thread_concurrency 0 by default, and extend the usable
 range from 0 to 1000 (0 disables the thread throttling).


innobase/include/srv0srv.h:
  Remove SRV_CONCURRENCY_THRESHOLD. The magic value is 0 from now on.
innobase/srv/srv0srv.c:
  Remove SRV_CONCURRENCY_THRESHOLD. The magic value is 0 from now on.
mysql-test/r/innodb.result:
  innodb_thread_concurrency is 0..1000 now, and the default is 0.
mysql-test/t/innodb.test:
  innodb_thread_concurrency is 0..1000 now.
sql/ha_innodb.cc:
  Remove SRV_CONCURRENCY_THRESHOLD. The magic value is 0 from now on.
sql/mysqld.cc:
  innodb_thread_concurrency is 0..1000 now, and 0 (the default)
   disables the thread throttling.
2006-01-18 15:20:56 +03:00
unknown
74f499fade Applied patch recieved from Marko:
Make innodb_flush_log_at_trx_commit a settable global variable.


innobase/include/srv0srv.h:
  Change the type of srv_flush_log_at_trx_commit.
innobase/srv/srv0srv.c:
  Change the type of srv_flush_log_at_trx_commit.
sql/ha_innodb.cc:
  Remove innobase_flush_log_at_trx_commit.
   (Set srv_flush_log_at_trx_commit directly).
sql/ha_innodb.h:
  Remove innobase_flush_log_at_trx_commit.
   (Set srv_flush_log_at_trx_commit directly).
sql/mysqld.cc:
  Bypass the variable innobase innobase_flush_log_at_trx_commit.
sql/set_var.cc:
  Make innodb_flush_log_at_trx_commit a settable global variable.
2006-01-18 15:02:03 +03:00
unknown
0564fc4eff Restore fix for bug #15108 (by ramil) erroneously erased
by applying innodb-5.0-ss115 snapshot.
2006-01-16 15:23:02 +03:00
unknown
7bafd119a3 Changes from the innodb-5.0-ss115 snapshot.
Fixed bugs:
 BUG#15991: "innodb-file-per-table + symlink database + rename = crash"
 BUG#15650: "DELETE with LEFT JOIN crashes server"
 BUG#15308: "Problem of Order with Enum Column in Primary Key"
 BUG#14189: "VARBINARY and BINARY variables: trailing space ignored"


innobase/include/data0type.h:
  Changes from the innodb-5.0-ss115 snapshot.
innobase/include/data0type.ic:
  Changes from the innodb-5.0-ss115 snapshot.
   Fixed bug #14189. dtype_get_pad_char(): Do not pad VARBINARY
   or BINARY cloumns.
innobase/include/lock0lock.h:
  Changes from the innodb-5.0-ss115 snapshot.
innobase/include/os0file.h:
  Changes from the innodb-5.0-ss115 snapshot.
   os_file_handle_error(): Map the error codes EXDEV, ENOTDIR, and
   EISDIR to the new code OS_FILE_PATH_ERROR. Treat this code as
   OS_FILE_PATH_ERROR. This fixes the crash on RENAME TABLE when
   the .ibd file is a symbolic link to a different file system
   (bug#15991).
innobase/include/row0mysql.h:
  Changes from the innodb-5.0-ss115 snapshot.
innobase/lock/lock0lock.c:
  Changes from the innodb-5.0-ss115 snapshot.
   lock_rec_unlock(): Initialize local variable release_lock,
   in order to avoid dereferencing an uninitialized pointer
   when no lock exists on rec.
innobase/os/os0file.c:
  Changes from the innodb-5.0-ss115 snapshot.
   os_file_handle_error(): Map the error codes EXDEV, ENOTDIR, and
     EISDIR to the new code OS_FILE_PATH_ERROR. Treat this code as
     OS_FILE_PATH_ERROR. This fixes the crash on RENAME TABLE when
     the .ibd file is a symbolic link to a different file system
     (bug#15991).
   Protect the increment and decrement operations on the statistic
     variables os_n_pending_writes/reads with os_file_count_mutes.
innobase/row/row0ins.c:
  Changes from the innodb-5.0-ss115 snapshot.
   Fixed bug #14189. row_ins_cascade_calc_update_vec(): Refuse
   ON UPDATE_CASCADE when trying to change the length of of a
   VARBINARY column that refers to or is referenced by a BINARY
   column. BINARY columns are no longer padded on comparison,
   and thus they cannot be padded on storage either.
innobase/row/row0mysql.c:
  Changes from the innodb-5.0-ss115 snapshot.
   Fixed bug on unlock_row. In a unlock_row we may unlock
   only the latest lock granted to this transaction to the row.
innobase/row/row0sel.c:
  Changes from the innodb-5.0-ss115 snapshot.
   Fixed bug #15308.
   Fixed bug #14189: innobase_init(): Assert that
     DATA_MYSQL_BINARY_CHARSET_COLL == my_charset_bin.number.
   After review fixes for unlock bug where unlock released all
     locks transaction requested for a row. Only a latest requested
     lock to a row should be released. Update function comments to
     reflect current state. Persistent cursor should be stored
     whenever select lock type != LOCK_NONE.
innobase/trx/trx0trx.c:
  Changes from the innodb-5.0-ss115 snapshot.
   trx_commit_off_kernel(): Do not write empty trx->mysql_log_file_name.
mysql-test/r/innodb.result:
  Changes from the innodb-5.0-ss115 snapshot.
mysql-test/t/innodb.test:
  Changes from the innodb-5.0-ss115 snapshot.
sql/ha_innodb.cc:
  Changes from the innodb-5.0-ss115 snapshot.
   Fixed bug #15308.
   Fixed bug #14189: innobase_init(): Assert that
     DATA_MYSQL_BINARY_CHARSET_COLL == my_charset_bin.number.
   After review fixes for unlock bug where unlock released all
     locks transaction requested for a row. Only a latest requested
     lock to a row should be released. Update function comments to
     reflect current state. Persistent cursor should be stored
     whenever select lock type != LOCK_NONE.
mysql-test/r/innodb_unsafe_binlog.result:
  Changes from the innodb-5.0-ss115 snapshot.
mysql-test/t/innodb_unsafe_binlog-master.opt:
  Changes from the innodb-5.0-ss115 snapshot.
mysql-test/t/innodb_unsafe_binlog.test:
  Changes from the innodb-5.0-ss115 snapshot.
   Added testcases for bug #15650.
2006-01-16 14:32:43 +03:00
unknown
5497a05a98 Changes from innodb-4.1-ss14 snapshot
Fixed BUG#14056: Column prefix index on UTF-8 primary key
 causes "Can't find record.."
 Also fixed bug 15991.


innobase/include/os0file.h:
  Changes from innodb-4.1-ss14 snapshot
   os_file_hadle_error(): Map the error codes EXDEV, ENOTDIR, and EISDIR
   to the new code OS_FILE_PATH_ERROR. Treat this code as OS_FILE_PATH_ERROR.
   This fixes the crash on RENAME TABLE when the .ibd file is a symbolic
   link to a different file system. (Bug 15991)
innobase/os/os0file.c:
  Changes from innodb-4.1-ss14 snapshot
   os_file_hadle_error(): Map the error codes EXDEV, ENOTDIR, and EISDIR
   to the new code OS_FILE_PATH_ERROR. Treat this code as OS_FILE_PATH_ERROR.
   This fixes the crash on RENAME TABLE when the .ibd file is a symbolic
   link to a different file system. (Bug 15991)
mysql-test/r/innodb.result:
  Changes from innodb-4.1-ss14 snapshot
   Fixed BUG#14056: Column prefix index on UTF-8 primary key
   causes "Can't find record.."
mysql-test/t/innodb.test:
  Changes from innodb-4.1-ss14 snapshot
   Fixed BUG#14056: Column prefix index on UTF-8 primary key
   causes "Can't find record.."
sql/ha_innodb.cc:
  Changes from innodb-4.1-ss14 snapshot
   Fixed BUG#14056: Column prefix index on UTF-8 primary key
   causes "Can't find record.."
2006-01-15 14:50:47 +03:00
unknown
f04a361908 Merge rkalimullin@bk-internal.mysql.com:/home/bk/mysql-5.0
into  mysql.com:/usr/home/ram/work/5.0.b15108


sql/ha_innodb.cc:
  Auto merged
2005-12-26 11:18:01 +04:00
unknown
778d212b8c Fix BUG#12071: "Windows hang:'Opening tables' or 'Waiting for
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.
2005-12-13 21:35:24 +03:00
unknown
8e3f95b555 Fix BUG#12071: "Windows hang: 'Opening tables' or 'Waiting for
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
2005-12-12 21:06:59 +03:00
unknown
b83c29766c Fix BUG#14747: "Race condition can cause btr_search_drop_page_hash_index()
to crash".
 Changes from snapshot innodb-5.0-ss52.
 Note that buf_block_t::index should be protected by btr_search_latch
 or an s-latch or x-latch on the index page.
 btr_search_drop_page_hash_index(): Read block->index while holding
 btr_search_latch and use the cached value in the loop. Remove some
 redundant assertions.
 Also fix 13778. When FOREIGN_KEY_CHECKS=0 we still need to check that
 datatypes between foreign key references are compatible.
 Also added test cases to 9802.


innobase/btr/btr0sea.c:
  Changes from innodb-5.0-ss52
innobase/dict/dict0dict.c:
  Changes from innodb-5.0-ss52
innobase/dict/dict0load.c:
  Changes from innodb-5.0-ss52
innobase/include/buf0buf.h:
  Changes from innodb-5.0-ss52
innobase/include/dict0dict.h:
  Changes from innodb-5.0-ss52
innobase/include/dict0load.h:
  Changes from innodb-5.0-ss52
innobase/include/rem0cmp.h:
  Changes from innodb-5.0-ss52
innobase/rem/rem0cmp.c:
  Changes from innodb-5.0-ss52
innobase/row/row0mysql.c:
  Changes from innodb-5.0-ss52
mysql-test/r/innodb.result:
  Changes from innodb-5.0-ss52
mysql-test/t/innodb.test:
  Changes from innodb-5.0-ss52
sql/ha_innodb.cc:
  Changes from innodb-5.0-ss52
sql/ha_innodb.h:
  Changes from innodb-5.0-ss52
2005-12-06 22:02:40 +03:00
unknown
e72ec933d9 Fix for bug #15108: mysqld crashes when innodb_log_file_size is set > 4G
sql/ha_innodb.cc:
  Fix for bug #15108: mysqld crashes when innodb_log_file_size is set > 4G
  - return 1 in case of error.
2005-11-24 13:04:05 +04:00
unknown
e2de3a8fc4 Merge bk-internal.mysql.com:/home/bk/mysql-5.0
into  mysql.com:/home/dlenev/src/mysql-5.0-bg13825


sql/ha_innodb.cc:
  Auto merged
sql/handler.cc:
  Auto merged
sql/sql_class.cc:
  Auto merged
sql/sql_class.h:
  Auto merged
sql/sql_parse.cc:
  Auto merged
2005-11-19 15:11:57 +03:00
unknown
11d4d7e6ff Fix for bug #13825 "Triggers: crash if release savepoint" and for general
handling of savepoints in stored routines.

Fixed ha_rollback_to_savepoint()/ha_savepoint()/ha_release_savepoint()
functions to properly handle savepoints inside of stored functions and
triggers.
Also now when we invoke stored function or trigger we create new savepoint
level. We destroy it at the end of function/trigger execution and return back
to old savepoint level.


mysql-test/r/sp_trans.result:
  Added test for bug #13825 "Triggers: crash if release savepoint" and for
  general handling of savepoints in stored routines.
mysql-test/t/sp_trans.test:
  Added test for bug #13825 "Triggers: crash if release savepoint" and for
  general handling of savepoints in stored routines.
sql/ha_innodb.cc:
  innobase_savepoint():
    Replaced check which always failed due to similar check in caller
    with assertion.
sql/handler.cc:
  ha_rollback_to_savepoint()/ha_savepoint()/ha_release_savepoint():
    Changed functions to properly support handling of savepoints
    inside of stored functions and triggers.
sql/sql_class.cc:
  THD::reset_sub_statement_state()/restore_sub_statement_state():
    When we invoke stored function or trigger we should create new savepoint
    level. We should destroy it at the end of function/trigger execution and
    return back to old savepoint level. To support this behavior we should
    save and reset list of current savepoints on entering function and restore
    old list when we leave it.
sql/sql_class.h:
  Sub_statement_state:
    When we invoke stored function or trigger we should create new savepoint
    level. We should destroy it at the end of function/trigger execution and
    return back to old savepoint level. To support this behavior added "savepoint"
    member which is used to save/restore list of current savepoints on
    entering/leaving function.
sql/sql_parse.cc:
  mysql_execute_command():
    Changed processing of SQLCOM_SAVEPOINT so now it is not ignored when
    we are in autocommit mode and savepoint is set inside of stored
    function or trigger.
2005-11-19 15:09:23 +03:00
unknown
30df60fa73 set_var.cc, mysqld.cc, ha_innodb.h:
BUG#12701: SHOW VARIABLES does not show correct size of buffer pool.
ha_innodb.cc:
  BUG#12701: SHOW VARIABLES does not show correct size of buffer pool


sql/ha_innodb.cc:
  BUG#12701: SHOW VARIABLES does not show correct size of buffer pool
sql/ha_innodb.h:
  BUG#12701: SHOW VARIABLES does not show correct size of buffer pool.
sql/mysqld.cc:
  BUG#12701: SHOW VARIABLES does not show correct size of buffer pool.
sql/set_var.cc:
  BUG#12701: SHOW VARIABLES does not show correct size of buffer pool.
2005-11-17 15:08:49 +01:00
unknown
67df0e19e4 Fixed number of compiler errors on win32.
VC++Files/mysqlbinlog/mysqlbinlog.vcproj:
  Fixed compiler error for Win32 build. #include "decimal.c" wrere no able to find decimal.c file.
sql/ha_innodb.cc:
  Fixed compiler error for Win32 build.
sql/spatial.cc:
  Fixed compiler error for Win32 build. float8get should be enclosed
  in {} since it is macro on win32 and might cause unmatching blocks.
2005-11-14 15:19:52 +03:00
unknown
10ed7b975a Merge baker@bk-internal.mysql.com:/home/bk/mysql-5.0
into  zim.(none):/home/brian/mysql/mysql-5.0


sql/ha_innodb.cc:
  Auto merged
2005-10-24 23:57:15 -07:00
unknown
84ece2e052 This patch add support for storing Geometry types to Archive, Innodb, NDB, and BDB.
sql/ha_archive.h:
  Adding support for Geometry type to archive.
sql/ha_berkeley.cc:
  Adding geometry support to berkely
sql/ha_innodb.cc:
  Adding geometry support to Innodb.
sql/ha_ndbcluster.cc:
  Adding Geometry support to NDB.
mysql-test/include/gis_generic.inc:
  New BitKeeper file ``mysql-test/include/gis_generic.inc''
mysql-test/r/archive_gis.result:
  New BitKeeper file ``mysql-test/r/archive_gis.result''
mysql-test/r/bdb_gis.result:
  New BitKeeper file ``mysql-test/r/bdb_gis.result''
mysql-test/r/ndb_gis.result:
  New BitKeeper file ``mysql-test/r/ndb_gis.result''
mysql-test/t/archive_gis.test:
  New BitKeeper file ``mysql-test/t/archive_gis.test''
mysql-test/t/bdb_gis.test:
  New BitKeeper file ``mysql-test/t/bdb_gis.test''
mysql-test/t/innodb_gis.test:
  New BitKeeper file ``mysql-test/t/innodb_gis.test''
mysql-test/t/ndb_gis.test:
  New BitKeeper file ``mysql-test/t/ndb_gis.test''
2005-10-24 23:20:39 -07:00
unknown
d91f4dead8 BUG#11704: Make InnoDB not to convert TL_WRITE_ONLY locks to TL_WRITE_ALLOW_WRITE in
OPTIMIZE TABLE.


sql/ha_innodb.cc:
  Fix for BUG#11704: "Found locks from different thread" warnings:
  The source of warnings was this scenario in OPTIMIZE:
    thr1: lock table with TL_WRITE_ONLY (InnoDB converts lock to TL_WRITE_ALLOW_WRITE)
    thr2: (UPDATE command) obtains a TL_WRITE_ALLOW_WRITE lock
    thr1: call mysql_lock_abort(). This function sets type of thr'1 lock to TL_WRITE_ONLY
    thr2: try to release thr2's lock. See two locks: TL_WRITE_ONLY, TL_WRITE_ALLOW_WRITE 
          and produce a warning.
  
  The fix: Make InnoDB not to convert TL_WRITE_ONLY locks to TL_WRITE_ALLOW_WRITE in
  OPTIMIZE TABLE.
2005-10-25 00:27:15 +04:00
unknown
33b4154cec BUG#14056 Column prefix index on UTF-8 primary key column causes 'Can't find record..'
Applying InnoDB patch from Jan Lindstrom
2005-10-19 12:06:29 -04:00
unknown
556fdfbd08 Fix compile error on Windows: remove wrong typecast 2005-10-12 16:43:55 +04:00
unknown
a9363ce9c3 Merge spetrunia@bk-internal.mysql.com:/home/bk/mysql-5.0
into mysql.com:/home/psergey/mysql-5.0-bug13484


sql/ha_innodb.cc:
  Auto merged
mysql-test/r/index_merge_innodb.result:
  Auto merged
mysql-test/r/rowid_order_innodb.result:
  Auto merged
mysql-test/t/index_merge_innodb.test:
  Auto merged
2005-10-07 11:14:40 +04:00
unknown
df76450716 Merge msdesk.(none):/home/msvensson/mysql-4.1
into  msdesk.(none):/home/msvensson/mysql-5.0


BUILD/SETUP.sh:
  Auto merged
BitKeeper/deleted/.del-ctype-cp932.c:
  Auto merged
BitKeeper/deleted/.del-ctype_cp932.result:
  Auto merged
BitKeeper/deleted/.del-ctype_cp932.test:
  Auto merged
BitKeeper/deleted/.del-ndb_range_bounds.pl~ff7e47a35fb44c74:
  Auto merged
innobase/os/os0sync.c:
  Auto merged
mysql-test/r/ctype_tis620.result:
  Auto merged
mysql-test/r/ctype_ucs.result:
  Auto merged
mysql-test/r/ctype_utf8.result:
  Auto merged
mysql-test/t/ctype_uca.test:
  Auto merged
mysql-test/t/ctype_ucs.test:
  Auto merged
mysql-test/t/ctype_ujis.test:
  Auto merged
mysql-test/t/ctype_utf8.test:
  Auto merged
sql/ha_innodb.cc:
  Auto merged
sql/item_cmpfunc.cc:
  Auto merged
strings/ctype-big5.c:
  Auto merged
strings/ctype-gbk.c:
  Auto merged
strings/ctype-simple.c:
  Auto merged
strings/ctype-sjis.c:
  Auto merged
strings/ctype-ucs2.c:
  Auto merged
client/mysql.cc:
  Sam change in both 4.1 and 5.0
mysql-test/r/ctype_uca.result:
  Merge
mysql-test/r/ctype_ujis.result:
  Merge
strings/ctype-mb.c:
  Merge
strings/ctype-tis620.c:
  Merge
2005-10-06 14:40:18 +02:00
unknown
5362ca276c Merge baker@bk-internal.mysql.com:/home/bk/mysql-5.0
into  zim.(none):/home/brian/mysql/fix-5.0


sql/ha_berkeley.cc:
  Auto merged
sql/ha_berkeley.h:
  Auto merged
sql/ha_innodb.cc:
  Auto merged
sql/ha_innodb.h:
  Auto merged
sql/ha_ndbcluster.cc:
  Auto merged
sql/ha_ndbcluster.h:
  Auto merged
sql/handler.h:
  Auto merged
sql/mysql_priv.h:
  Auto merged
2005-10-03 21:09:01 -07:00
unknown
ed35cecdcc Final patch for 5.0 for simplifying storage engine code. We now have just one set of ifdefs. I may also remove the code for creating new handlers.
May changes were to simplify storage engine setup and support for legacy call to show storage engines.


mysql-test/r/ps_1general.result:
  Fixed test results for new listing order
sql/examples/ha_tina.cc:
  Removed dead code
sql/examples/ha_tina.h:
  Removed dead code
sql/ha_archive.cc:
  Capitalized sotrage engine name and moved disabled code.
sql/ha_berkeley.cc:
  Moved deisabled code
sql/ha_federated.cc:
  Removed disabled code
sql/ha_innodb.cc:
  Removed disabled message
sql/ha_ndbcluster.cc:
  Removed disabled message
sql/handler.cc:
  Added in legacy support for sotrage engine listing (ala Serg's request). Removed handlertons variables and we now have simplified ha_init code.
sql/handler.h:
  No longer need handlertons array.
2005-10-03 18:42:30 -07:00
unknown
eb00784242 Merge hundin.mysql.fi:/home/marko/mysql-4.0
into  hundin.mysql.fi:/home/marko/mysql-4.1
(Bug #13002)


sql/ha_innodb.cc:
  Merged
2005-10-03 17:54:39 +03:00
unknown
9595cc332d InnoDB: Display an error message in /* */ comments
in SHOW CREATE TABLE if a temporary file cannot be created.
(Bug #13002)


sql/ha_innodb.cc:
  ha_innobase::get_foreign_key_create_info(): Display an error
  message to the user if a temporary file cannot be created.
2005-10-03 17:46:27 +03:00
unknown
cdb5719257 Merge baker@bk-internal.mysql.com:/home/bk/mysql-5.0
into  zim.(none):/home/brian/mysql/fix-5.0


sql/ha_blackhole.cc:
  Auto merged
sql/ha_heap.cc:
  Auto merged
sql/ha_innodb.cc:
  Auto merged
sql/examples/ha_example.cc:
  Auto merged
sql/examples/ha_tina.cc:
  Auto merged
sql/ha_archive.cc:
  Auto merged
sql/ha_archive.h:
  Auto merged
sql/ha_myisam.cc:
  Auto merged
sql/ha_myisammrg.cc:
  Auto merged
sql/ha_ndbcluster.cc:
  Auto merged
sql/handler.cc:
  Auto merged
sql/handler.h:
  Auto merged
sql/mysql_priv.h:
  Auto merged
sql/sql_show.cc:
  Auto merged
sql/ha_federated.cc:
  Merge fix.
2005-10-02 20:13:18 -07:00
unknown
5655d31d5f Next big patch for loadable storage engines!
Handlerton array is now created instead of using sys_table_types_st. All storage engines can now have inits and giant ifdef's are now gone for startup. No compeltely clean yet, handlertons will next be merged with sys_table_types. Federated and archive now have real cleanup if their inits fail. 


sql/examples/ha_archive.cc:
  Modifications for new ha_init code. The init method now checks for errors and will not start up if the errors occur.
sql/examples/ha_archive.h:
  Change for new init method.
sql/examples/ha_example.cc:
  New handlerton pieces.
sql/examples/ha_tina.cc:
  New handlerton pieces.
sql/ha_berkeley.cc:
  New handlerton pieces, plus changes for ha_init changes. I'm not happy with our current "skip" setup.
sql/ha_berkeley.h:
  Change in init return.
sql/ha_blackhole.cc:
  Changes for new handlerton pieces.
sql/ha_federated.cc:
  Changes for new handlerton and true cleanup code.
sql/ha_heap.cc:
  Changes for new handlerton returns.
sql/ha_innodb.cc:
  Changes for handlerton code.
sql/ha_innodb.h:
  Change in init.
sql/ha_myisam.cc:
  Changes for additional handlerton bits.
sql/ha_myisammrg.cc:
  Changes for  new handlerton bits.
sql/ha_ndbcluster.cc:
  Changes for new handlerton bits.
sql/ha_ndbcluster.h:
  Changes for handlerton bits.
sql/handler.cc:
  Changes for ditching show_table_type_st types, and collapsing it into a handlerton array. The ha_init now just loops through all handlers to init (much cleaner...). handlertons and sys_table_types should be merged next.
sql/handler.h:
  Additions for sys_table_types
sql/log.cc:
  Clean up of binlog for changes in handlerton
sql/mysql_priv.h:
  Removed unneeded define for binlog_init
sql/sql_show.cc:
  Changes for change in handlerton to sys_table_types
2005-10-02 19:44:28 -07:00
unknown
5bdbad3d6c BUG#13484: In ha_innobase::cmp_ref call Field::key_cmp() as this is the function
that compares key images.


mysql-test/r/index_merge_innodb.result:
  Testcase for BUG#13484
mysql-test/r/rowid_order_innodb.result:
  Updated results for BUG#13484
mysql-test/t/index_merge_innodb.test:
  Testcase for BUG#13484
2005-10-01 11:56:01 +04:00
unknown
8f842e8fc9 Bug#11238
"SELECT ... FOR UPDATE executed as consistent read inside LOCK TABLES"
Do not discard lock_type information as handler::start_stmt() may require knowledge.
(fixed by Antony)
2005-09-30 20:20:10 +02:00
unknown
afed50ae53 InnoDB: After review fix
sql/ha_innodb.cc:
  Avoid bitwise arithmetics, as it might be difficult to read.  The
  added readability costs one register and two instructions on x86.
2005-09-30 15:06:41 +03:00
unknown
a14a34be6c InnoDB: On UPDATE, trim UCS2 columns correctly. (Bug #12178)
sql/ha_innodb.cc:
  innobase_convert_and_store_changed_col(), calc_row_difference():
   Replace parameter "is_unsigned" with "prtype".
  innobase_convert_and_store_changed_col():
   When trimming spaces, note that UCS2 spaces are 0x0020, not 0x20.
2005-09-30 13:58:00 +03:00
unknown
3dc93a9c0f Merge jlindstrom@bk-internal.mysql.com:/home/bk/mysql-5.0
into  hundin.mysql.fi:/home/jan/mysql-5.0


mysql-test/r/innodb.result:
  Auto merged
mysql-test/t/innodb.test:
  Auto merged
sql/ha_innodb.cc:
  Content merge.
2005-09-29 13:15:09 +03:00
unknown
612b9cebb2 Minor corrections to InnoDB function comments
innobase/include/mem0mem.h:
  Correct the comment of mem_heap_create_func().
innobase/include/mem0mem.ic:
  Correct the comment of mem_heap_create_func().
sql/ha_innodb.cc:
  Correct comments regarding return value
2005-09-29 12:37:27 +03:00
unknown
2c0e2a147d Fixed a bug checksum table locks the InnoDB table and does not use a
consistent read (Bug #12669). This fixes InnoDB part of the bug.


mysql-test/r/innodb.result:
  Added results for a checksum test.
mysql-test/t/innodb.test:
  Addeed a test case for a checksum bug #12669.
sql/ha_innodb.cc:
  Use consistent read for checksum table.
2005-09-29 08:34:38 +03:00