Fix BUG#18934: "InnoDB crashes when table uses column like DB_ROW_ID".
Also, fix memory leaks in row_create_table_for_mysql() in rare
corner cases.
innobase/dict/dict0dict.c:
Applied innodb-5.0-ss476 snapshot.
Refuse tables that use reserved column names (Bug#18934).
innobase/dict/dict0load.c:
Applied innodb-5.0-ss476 snapshot.
dict_load_table(): Refuse to load tables with other TYPE
than DICT_TABLE_ORDINARY.
innobase/dict/dict0mem.c:
Applied innodb-5.0-ss476 snapshot.
Add dict_mem_table_free(), use it instead of duplicating
the code everywhere.
innobase/ibuf/ibuf0ibuf.c:
Applied innodb-5.0-ss476 snapshot.
innobase/include/dict0dict.h:
Applied innodb-5.0-ss476 snapshot.
Refuse tables that use reserved column name (Bug#18934).
innobase/include/dict0mem.h:
Applied innodb-5.0-ss476 snapshot.
Add dict_mem_table_free(), use it instead of duplicating
the code everywhere.
innobase/include/univ.i:
Applied innodb-5.0-ss476 snapshot.
innobase/log/log0recv.c:
Applied innodb-5.0-ss476 snapshot.
innobase/row/row0mysql.c:
Applied innodb-5.0-ss476 snapshot.
Refuse tables that use reserved column names (Bug#18934).
mysql-test/r/innodb.result:
Applied innodb-5.0-ss476 snapshot.
Fix result for test case for Bug#18934.
(Other changes are to be restored by the next cset).
mysql-test/t/innodb.test:
Applied innodb-5.0-ss476 snapshot.
Fix result for test case for Bug#18934.
(Removed test case for Bug#14360 is to be restored by the next cset).
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.
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.
Applied innodb-4.1-ss20 snapshot.
innobase/btr/btr0sea.c:
Applied innodb-4.1-ss20 snapshot.
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/fil/fil0fil.c:
Applied innodb-4.1-ss20 snapshot.
Keep track on unflushed modifications to file spaces. When
there are tens of thousnads of file spaces, flushing all files
in fil_flush_file_spaces() would be very slow (Bug #16582).
fil_flush_file_spaces(): Only flush unflushed file spaces.
fil_space_t, fil_system_t: Add a list of unflushed spaces.
innobase/include/btr0sea.ic:
Applied innodb-4.1-ss20 snapshot.
btr_search_info_update_hash(), btr_search_info_update_slow():
Document the parameter "info" as in/out.
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.
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.
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.
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.."
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.
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
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
into ua141d10.elisa.omakaista.fi:/home/my/bk/mysql-5.0-tmp
heap/_check.c:
Auto merged
heap/hp_create.c:
Auto merged
include/config-netware.h:
Auto merged
include/my_base.h:
Auto merged
include/my_handler.h:
Auto merged
include/myisam.h:
Auto merged
innobase/include/Makefile.am:
Auto merged
myisam/mi_check.c:
Auto merged
myisam/mi_delete.c:
Auto merged
myisam/mi_rnext_same.c:
Auto merged
myisam/mi_search.c:
Auto merged
myisam/mi_write.c:
Auto merged
myisam/myisamdef.h:
Auto merged
myisam/sort.c:
Auto merged
mysql-test/mysql-test-run.sh:
Auto merged
mysql-test/r/date_formats.result:
Auto merged
mysql-test/r/update.result:
Auto merged
mysql-test/t/date_formats.test:
Auto merged
mysql-test/t/select.test:
Auto merged
mysql-test/t/update.test:
Auto merged
mysys/my_getopt.c:
Auto merged
mysys/my_handler.c:
Auto merged
scripts/make_binary_distribution.sh:
Auto merged
sql/ha_myisam.cc:
Auto merged
sql/item_timefunc.cc:
Auto merged
sql/records.cc:
Auto merged
sql/sql_load.cc:
Auto merged
sql/sql_select.cc:
Auto merged
sql/structs.h:
Auto merged
strings/conf_to_src.c:
Auto merged
strings/ctype-win1250ch.c:
Auto merged
Makefile.am:
Merged from 4.1
myisam/myisamchk.c:
Merged from 4.1
mysql-test/mysql-test-run.pl:
Merged from 4.1
mysql-test/r/insert_select.result:
Merged from 4.1
mysql-test/r/myisam.result:
Merged from 4.1
mysql-test/r/select.result:
Merged from 4.1
mysql-test/t/insert_select.test:
Merged from 4.1
mysql-test/t/myisam.test:
Merged from 4.1
netware/mysql_test_run.c:
Merged from 4.1
sql/item.cc:
Merged from 4.1
sql/mysqld.cc:
Merged from 4.1
sql/sql_update.cc:
Merged from 4.1
tests/mysql_client_test.c:
Merged from 4.1
Applying patch from Marko.
All tests pass in pentium-debug-max build on Linux.
innobase/include/rem0rec.h:
BUG#13900 DATETIME data changes after inserting a new row in a InnoDB table
Applying patch from Marko.
innobase/include/rem0rec.ic:
BUG#13900 DATETIME data changes after inserting a new row in a InnoDB table
Applying patch from Marko.
innobase/row/row0upd.c:
BUG#13900 DATETIME data changes after inserting a new row in a InnoDB table
Applying patch from Marko.
innobase/include/ut0mem.h:
Add ut_strlcpy_rev.
innobase/mem/mem0mem.c:
Use ut_strlcpy_rev instead of buggy own implementation.
innobase/ut/ut0mem.c:
Add ut_strlcpy_rev.
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
innobase/include/trx0trx.h:
Change trx_set_detailed_error's second argument to const char*.
innobase/trx/trx0trx.c:
Change trx_set_detailed_error's second argument to const char*.
into 127.(none):/home/osku/mysql/5.0/3443
innobase/dict/dict0dict.c:
Auto merged
innobase/include/trx0trx.h:
Auto merged
sql/ha_innodb.cc:
Auto merged
mysql-test/r/innodb.result:
Merge fixes.
mysql-test/t/innodb.test:
Merge fixes.
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.
innobase/include/trx0trx.h:
Fix invalid comment.
sql/ha_innodb.cc:
Change some memory allocations to fail-on-error.
Cast argument of my_free to gptr, not char*.
innobase/data/data0data.c:
Adapt to DICT_MAX_COL_PREFIX_LEN rename.
innobase/dict/dict0dict.c:
Adapt to DICT_MAX_COL_PREFIX_LEN rename.
innobase/include/dict0mem.h:
Rename DICT_MAX_COL_PREFIX_LEN to DICT_MAX_INDEX_COL_LEN.
innobase/include/row0mysql.h:
Add field_lengths parameter to row_create_index_for_mysql.
innobase/rem/rem0rec.c:
Adapt to DICT_MAX_COL_PREFIX_LEN rename.
innobase/row/row0mysql.c:
Add field_lengths parameter to row_create_index_for_mysql and use it to
check for too long index columns.
mysql-test/r/innodb.result:
New tests.
mysql-test/t/innodb.test:
New tests.
sql/ha_innodb.cc:
Create temporary field_lengths buffer and pass it to
row_create_index_for_mysql.
innobase/dict/dict0dict.c:
Add reject_fks parameter to dict_create_foreign_constraints_low and
dict_create_foreign_constraints.
innobase/include/dict0dict.h:
Add reject_fks parameter to dict_create_foreign_constraints.
innobase/include/row0mysql.h:
Add reject_fks parameter to row_table_add_foreign_constraints.
innobase/row/row0mysql.c:
Add reject_fks parameter to row_table_add_foreign_constraints.
sql/ha_innodb.cc:
In create, pass correct reject_fks argument to
row_table_add_foreign_constraints depending on whether we're creating a
temporary table or not. Also move duplicated cleanup code to a single
place.
Add a sanity check to page_rec_is_comp; a new univ.i macro UNIV_RELEASE_NOT_YET_STABLE controls such sanity checks that we will remove after the release is stable enough
innobase/include/page0page.ic:
Add a sanity check to page_rec_is_comp; a new univ.i macro UNIV_RELEASE_NOT_YET_STABLE controls such sanity checks that we will remove after the release is stable enough
innobase/include/univ.i:
Add a sanity check to page_rec_is_comp; a new univ.i macro UNIV_RELEASE_NOT_YET_STABLE controls such sanity checks that we will remove after the release is stable enough
Do not use __builtin_expect etc. with the Intel ICC compiler, as the compiler crashed in btr0cur.c; the patch was submitted by Axel Schwenke (Bug #11510)
innobase/include/univ.i:
Do not use __builtin_expect etc. with the Intel ICC compiler, as the compiler crashed in btr0cur.c; the patch was submitted by Axel Schwenke (Bug #11510)
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.
cursors (+ commit)" and Bug#11832 "Server crash with InnoDB + Cursors"
See comments to the changed files.
innobase/include/read0read.h:
- add cursor_view_t::n_mysql_tables_in_use
innobase/read/read0read.c:
- maintain cursor_view_t::n_mysql_tables_in_use. InnoDB
maintains trx->n_mysql_tables_in_use to know when it can auto-commit
a read-only statement. When this count drops to zero,
MySQL has ended processing of such statement and InnoDB can commit.
Cursors should not break this invariant, and should exclude the tables
used in a cursor from the count of active tables.
When a cursor is closed, the number of its tables is added back,
to ensure that close_thread_tables->unlock_external->
ha_innobase::external_lock(F_UNLCK) won't drop the count in trx
below zero.
innobase/row/row0sel.c:
- remove the restoration of the global read view from
row_search_for_mysql: MySQL may call row_search_for_mysql
more than once when fetching a row for a cursor (e.g. if there
is a WHERE clause that filters out some rows).
sql/ha_innodb.cc:
- add more verbose printout for the case when we close an InnoDB
connection without priorlly issuing a commit or rollback. The problem
should be investigated.
tests/mysql_client_test.c:
- add a test case for Bug#12243 "MySQL Server crashes with 2 cursors
(+ commit)"
Push the patch of Jan Lindstrom: better comments
ha_innodb.cc:
Partial fix for Bug #12263 : we let InnoDB always to perform a rollback on the trx object if MySQL closes a connection; but we do print a warning to the .err log if an InnoDB transaction was active; we may remove that print later, since the situation really is not a bug; MySQL just is not aware that some cursor operation started an InnoDB transaction
sql/ha_innodb.cc:
Partial fix for Bug #12263 : we let InnoDB always to perform a rollback on the trx object if MySQL closes a connection; but we do print a warning to the .err log if an InnoDB transaction was active; we may remove that print later, since the situation really is not a bug; MySQL just is not aware that some cursor operation started an InnoDB transaction
sql/ha_innodb.h:
Push the patch of Jan Lindstrom: better comments
innobase/trx/trx0trx.c:
Push the patch of Jan Lindstrom: better comments
innobase/srv/srv0srv.c:
Push the patch of Jan Lindstrom: better comments
innobase/srv/srv0start.c:
Push the patch of Jan Lindstrom: better comments
innobase/row/row0sel.c:
Push the patch of Jan Lindstrom: better comments
innobase/read/read0read.c:
Push the patch of Jan Lindstrom: better comments
innobase/include/read0read.h:
Push the patch of Jan Lindstrom: better comments
innobase/include/trx0trx.h:
Push the patch of Jan Lindstrom: better comments
data files. Previously, writes were flushed until the doublewrite
buffer was created. That would be too slow on systems where
os_file_flush() [or fsync(2)] is slow. (Bug #12125)
innobase/include/os0file.h:
Disable os_do_not_call_flush_at_each_write unless #ifdef UNIV_DO_FLUSH
innobase/os/os0file.c:
Disable os_do_not_call_flush_at_each_write unless #ifdef UNIV_DO_FLUSH
innobase/trx/trx0sys.c:
Disable os_do_not_call_flush_at_each_write unless #ifdef UNIV_DO_FLUSH
cursors for InnoDB. The idea of the patch is that if MySQL requests
a consistent read view, we open one when open a cursor, set is as the
active view to a transaction when fetch from the cursor, and close
together with cursor close. This patch is associated to bugs #11813,
#11832, and #11833. Contains after review fixes.
Declare 'mutex_list' and 'mutex_list_mutex' extern,
to avoid link error on OS X and gcc flag "-fno-common"
innobase/include/sync0sync.h:
Use 'extern' variable declarations, to avoid
"ld: multiple definitions of symbol" for 'mutex_list'
and 'mutex_list_mutex' on OS X and gcc flag "-fno-common"
innobase/sync/sync0sync.c:
Use 'extern' variable declarations, to avoid
"ld: multiple definitions of symbol" for 'mutex_list'
and 'mutex_list_mutex' on OS X and gcc flag "-fno-common"
innobase/include/srv0srv.h:
Define SRV_CONCURRENCY_THRESHOLD
innobase/srv/srv0srv.c:
Remove srv_thread_concurrency check from srv_conc_enter_innodb()
and srv_conc_exit_innodb(), as the check is in the (only) caller
of these functions, in ha_innodb.cc.
srv_conc_force_enter_innodb(), srv_conc_force_exit_innodb():
Check for srv_thread_concurrency >= SRV_CONCURRENCY_THRESHOLD
sql/ha_innodb.cc:
Make use of SRV_CONCURRENCY_THRESHOLD
Fix another bug in the fix of Bug #3300
innobase/row/row0mysql.c:
Fix another bug in the fix of Bug #3300
innobase/include/trx0trx.ic:
Fix another bug in the fix of Bug #3300
innobase/include/trx0trx.h:
Fix another bug in the fix of Bug #3300
Fix bug in the Bug #3300 bug fix
innobase/include/trx0trx.h:
Fix bug in the Bug #3300 bug fix
innobase/include/trx0trx.ic:
Fix bug in the Bug #3300 bug fix
Fix Bug #3300 : if innodb_locks_unsafe_for_binlog is set, release locks on rows that we do not UPDATE or DELETE
sql/ha_innodb.cc:
Fix Bug #3300 : if innodb_locks_unsafe_for_binlog is set, release locks on rows that we do not UPDATE or DELETE
innobase/row/row0mysql.c:
Fix Bug #3300 : if innodb_locks_unsafe_for_binlog is set, release locks on rows that we do not UPDATE or DELETE
innobase/row/row0sel.c:
Fix Bug #3300 : if innodb_locks_unsafe_for_binlog is set, release locks on rows that we do not UPDATE or DELETE
innobase/include/trx0trx.ic:
Fix Bug #3300 : if innodb_locks_unsafe_for_binlog is set, release locks on rows that we do not UPDATE or DELETE
innobase/include/row0mysql.h:
Fix Bug #3300 : if innodb_locks_unsafe_for_binlog is set, release locks on rows that we do not UPDATE or DELETE
innobase/include/trx0trx.h:
Fix Bug #3300 : if innodb_locks_unsafe_for_binlog is set, release locks on rows that we do not UPDATE or DELETE
innobase/lock/lock0lock.c:
Fix Bug #3300 : if innodb_locks_unsafe_for_binlog is set, release locks on rows that we do not UPDATE or DELETE
innobase/trx/trx0trx.c:
Fix Bug #3300 : if innodb_locks_unsafe_for_binlog is set, release locks on rows that we do not UPDATE or DELETE
innobase/btr/btr0cur.c:
Disable the mode PAGE_CUR_LE_OR_EXTENDS at compile-time
innobase/include/page0cur.h:
Disable the mode PAGE_CUR_LE_OR_EXTENDS at compile-time
Do not define PAGE_CUR_DBG unless #ifdef UNIV_SEARCH_DEBUG
innobase/page/page0cur.c:
Disable the mode PAGE_CUR_LE_OR_EXTENDS at compile-time
Disable PAGE_CUR_DBG unless #ifdef UNIV_SEARCH_DEBUG
page_cur_try_search_shortcut(): Optimize the predicates
(compare the result of page_cmp_dtuple_rec_with_match() against 0,
use page_rec_is_supremum()).
page_cur_search_with_match(): Compare the result of
cmp_dtuple_rec_with_match() against zero, add UNIV_LIKELY hints,
replace duplicated code with gotos.
up CREATE TABLE in innodb_file_per_table=1 mode.
innobase/fil/fil0fil.c:
fil_extend_space_to_desired_size(): Do not allocate or initialize
more memory than is necessary. Write at most one megabyte at a time.
innobase/include/os0file.h:
os_file_set_size(): Corrected the synopsis
innobase/os/os0file.c:
os_file_set_size(): Corrected the synopsis and some comments.
s/offset/current_size; s/low/desired_size/;
Do not allocate or initialize more memory than is necessary.
Write at most one megabyte at a time.
into hundin.mysql.fi:/home/marko/mysql-5.0-current
innobase/dict/dict0dict.c:
Auto merged
innobase/fil/fil0fil.c:
Auto merged
innobase/include/lock0lock.h:
Auto merged
innobase/lock/lock0lock.c:
Auto merged
innobase/os/os0file.c:
Auto merged
innobase/row/row0ins.c:
Auto merged
innobase/row/row0mysql.c:
Auto merged
innobase/srv/srv0start.c:
Auto merged
innobase/trx/trx0trx.c:
Auto merged
sql/ha_innodb.cc:
Auto merged
sql/ha_innodb.h:
Auto merged
sql/mysqld.cc:
Auto merged
innobase/fsp/fsp0fsp.c:
Declare "first" in the scope where it is used, and add dummy return
statement after ut_error to silence compiler warning.
innobase/include/dyn0dyn.h:
Add const qualifier to dyn_push_string().
innobase/include/dyn0dyn.ic:
dyn_push_string(): Add const qualifier to str;
remove intermediate assignment.
innobase/include/mtr0log.h:
mlog_write_string(), mlog_catenate_string(): Add const to str
innobase/log/log0log.c:
Eliminate variables new_oldest and do_preflush in order to avoid
warnings about possibly uninitialized variables.
(new_oldest will now be declared in the scope of usage,
and do_preflush == (advance != 0).)
innobase/log/log0recv.c:
Remove warnings about uninitialized variables.
Add UNIV_UNLIKELY() hints.
innobase/mtr/mtr0log.c:
mlog_write_string(), mlog_catenate_string(): Add const to str
mlog_write_string(): Add UNIV_UNLIKELY hints to assertion-like tests
innobase/row/row0sel.c:
Remove warning about possibly uninitialized variable.
(Always initialize *out_rec.)
innobase/include/lock0lock.h:
Remove flag lock_print_waits from non-debug builds.
innobase/lock/lock0lock.c:
Remove flag lock_print_waits from non-debug builds.
Add InnoDB lock compatibility matrix for easy reference.
innobase/trx/trx0roll.c:
Remove flag lock_print_waits from non-debug builds.