| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
|
|
|
|
| |
Backported from 5.0.3.
innobase/row/row0ins.c:
If the SQL-query will update or replace duplicate records we take X-lock
for duplicate records.
sql/ha_innodb.cc:
INSERT ON DUPLICATE KEY UPDATE will also update duplicate records and we should
take X-lock in this case for duplicate records.
|
|
|
|
|
|
|
|
| |
Add fault tolerance in the scan of .ibd files at a crash recovery; formerly a single failure of readdir_get_next caused the rest of the directory to be skipped
innobase/fil/fil0fil.c:
Add fault tolerance in the scan of .ibd files at a crash recovery; formerly a single failure of readdir_get_next caused the rest of the directory to be skipped
|
|
|
|
|
|
|
|
| |
At the shutdown, write the latest lsn only to the first pages of the ibdata files of the system tablespace, NOT to the .ibd files; writing to tens of thousands .ibd files can take minutes
innobase/fil/fil0fil.c:
At the shutdown, write the latest lsn only to the first pages of the ibdata files of the system tablespace, NOT to the .ibd files; writing to tens of thousands .ibd files can take minutes
|
|
|
|
|
|
|
|
| |
Do not test the value of err if the lock operation was skipped because innodb_logs_unsafe_for_binlog was TRUE; though this did not cause any bugs visible to the user, because err is inited to DB_SUCCESS at the start of the function row_search_for_mysql()
innobase/row/row0sel.c:
Do not test the value of err if the lock operation was skipped because innodb_logs_unsafe_for_binlog was TRUE; though this did not cause any bugs visible to the user, because err is inited to DB_SUCCESS at the start of the function row_search_for_mysql()
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
if foreign_key_checks=0. (Bug #9802)
innobase/dict/dict0dict.c:
dict_foreign_add_to_cache(): Add flag check_types.
If the flag is FALSE, ignore character set mismatch.
innobase/dict/dict0load.c:
dict_load_foreign(), dict_load_foreigns(): Add flag check_types.
If the flag is FALSE, differences in character sets will be ignored.
innobase/include/dict0dict.h:
dict_foreign_add_to_cache(): Add flag check_types.
If the flag is FALSE, differences in character sets will be ignored.
innobase/include/dict0load.h:
dict_load_foreigns(): Add flag check_types.
If the flag is FALSE, differences in character sets will be ignored.
innobase/row/row0mysql.c:
row_table_add_foreign_constraints(), row_rename_table_for_mysql():
Pass trx->check_foreigns to dict_load_foreigns()
sql/ha_innodb.cc:
ha_innobase::rename_table(): Clear trx->check_foreign if necessary.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
between two server instances at server shutdown/startup.
This conflict on advisory locks appears to be the result of a bug
in the operating system; these locks should be released when the
files are closed, but somehow that does not always happen
immediately in Linux. (Bug #9381)
innobase/include/os0file.h:
Add OS_FILE_OPEN_RETRY for os_file_create()ing ibdata1
innobase/os/os0file.c:
os_file_lock(): Do not close the file on failure, but let the
callers do that.
os_file_create(): If create_mode==OS_FILE_OPEN_RETRY and
os_file_lock() fails, keep retrying for 100 seconds.
innobase/srv/srv0start.c:
open_or_create_data_files(): Open the first data file with
OS_FILE_OPEN_RETRY, to resolve a conflict with a shutting-down
instance of the MySQL server.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Add diagnostic code to track assertion failure in ut_a(cursor->old_stored == BTR_PCUR_OLD_STORED); the failure happened in OPTIMIZE TABLE, and in 4.0.24 in some other context
innobase/include/btr0pcur.h:
Add diagnostic code to track assertion failure in ut_a(cursor->old_stored == BTR_PCUR_OLD_STORED); the failure happened in OPTIMIZE TABLE, and in 4.0.24 in some other context
innobase/include/btr0pcur.ic:
Add diagnostic code to track assertion failure in ut_a(cursor->old_stored == BTR_PCUR_OLD_STORED); the failure happened in OPTIMIZE TABLE, and in 4.0.24 in some other context
innobase/btr/btr0pcur.c:
Add diagnostic code to track assertion failure in ut_a(cursor->old_stored == BTR_PCUR_OLD_STORED); the failure happened in OPTIMIZE TABLE, and in 4.0.24 in some other context
innobase/row/row0sel.c:
Add diagnostic code to track assertion failure in ut_a(cursor->old_stored == BTR_PCUR_OLD_STORED); the failure happened in OPTIMIZE TABLE, and in 4.0.24 in some other context
|
|
|
|
|
|
|
|
| |
Add a note that ENUM in new tables cannot reference ENUM in old tables, in FOREIGN KEY constraints
innobase/dict/dict0dict.c:
Add a note that ENUM in new tables cannot reference ENUM in old tables, in FOREIGN KEY constraints
|
|
|
|
|
|
|
|
| |
If MySQL wrote to its binlog, but for some reason trx->update_undo and trx->insert_undo were NULL in InnoDB, then trx->commit_lsn was garbage, and InnoDB could assert in the log flush of trx_commit_complete_for_mysql() (Bug #9277)
innobase/trx/trx0trx.c:
If MySQL wrote to its binlog, but for some reason trx->update_undo and trx->insert_undo were NULL in InnoDB, then trx->commit_lsn was garbage, and InnoDB could assert in the log flush of trx_commit_complete_for_mysql() (Bug #9277)
|
|\
| |
| |
| |
| |
| |
| |
| |
| | |
BitKeeper/etc/logging_ok:
auto-union
innobase/include/trx0trx.h:
Auto merged
innobase/trx/trx0trx.c:
SCCS merged
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
If MySQL wrote to its binlog, but for some reason trx->update_undo and trx->insert_undo were NULL in InnoDB, then trx->commit_lsn was garbage, and InnoDB could assert in the log flush of trx_commit_complete_for_mysql() (Bug #9277)
innobase/include/trx0trx.h:
If MySQL wrote to its binlog, but for some reason trx->update_undo and trx->insert_undo were NULL in InnoDB, then trx->commit_lsn was garbage, and InnoDB could assert in the log flush of trx_commit_complete_for_mysql() (Bug #9277)
innobase/trx/trx0trx.c:
If MySQL wrote to its binlog, but for some reason trx->update_undo and trx->insert_undo were NULL in InnoDB, then trx->commit_lsn was garbage, and InnoDB could assert in the log flush of trx_commit_complete_for_mysql() (Bug #9277)
|
|\ \
| |/
| |
| |
| |
| |
| |
| | |
into hundin.mysql.fi:/home/marko/mysql-4.1
innobase/dict/dict0load.c:
SCCS merged
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
dict_load_table(): Refuse to open ROW_FORMAT=COMPACT tables
of MySQL 5.0.3 and later.
innobase/dict/dict0load.c:
dict_load_table(): Refuse to open ROW_FORMAT=COMPACT tables
of MySQL 5.0.3 and later.
|
| |
| |
| |
| |
| |
| |
| |
| | |
Add diagnostics to track why ut_a(block->state == BUF_BLOCK_FILE_PAGE) failed in buf_flush_ready_for_replace() for a user
innobase/buf/buf0flu.c:
Add diagnostics to track why ut_a(block->state == BUF_BLOCK_FILE_PAGE) failed in buf_flush_ready_for_replace() for a user
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Better ibbackup message
Add a message explaining why we do a 'crash recovery' after an ibbackup restore; suggested by Tim Smith
innobase/log/log0recv.c:
Better ibbackup message
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
dict_load_table(): Do not complain about mix_len != 0,
because MySQL 3.23.4x left garbage in that column.
innobase/dict/dict0load.c:
dict_load_table(): Do not complain about mix_len != 0,
because MySQL 3.23.4x left garbage in that column.
|
|\ \
| |/
| |
| |
| |
| | |
innobase/dict/dict0load.c:
dict_load_table():
Display diagnostic output if mix_len differs from 0.
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
dict_load_table(): Remove the check for row_format=compact for now,
because the flag bit we used (high-order bit of mix_len)
has not been zero for at least two customers.
innobase/dict/dict0load.c:
dict_load_table(): Remove the check for row_format=compact for now,
because the flag bit we used (high-order bit of mix_len)
has not been zero for at least two customers.
|
|\ \
| |/
| |
| |
| |
| |
| |
| |
| |
| | |
into hundin.mysql.fi:/home/marko/mysql-4.1
innobase/include/srv0srv.h:
Auto merged
innobase/srv/srv0srv.c:
Auto merged
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
correct the definition of srv_max_buf_pool_modified_pct.
innobase/include/srv0srv.h:
Declare srv_max_buf_pool_modified_pct
innobase/srv/srv0srv.c:
Define srv_max_buf_pool_modified_pct as ulong,
as it is declared in ha_innodb.h.
|
|\ \
| | |
| | |
| | |
| | |
| | |
| | | |
into hundin.mysql.fi:/home/marko/mysql-4.1
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
innobase/buf/buf0lru.c:
Portability fix: Use %p for printing pointers
innobase/dict/dict0dict.c:
Properly cast the arguments of toupper()
innobase/eval/eval0proc.c:
Declare loop_var_value with a matching data type.
innobase/include/mem0mem.ic:
Remove implicit type conversion
innobase/include/page0page.ic:
Portability fix: Use %p for printing pointers
innobase/include/pars0pars.h:
Remove implicit type conversion
innobase/include/pars0sym.h:
Remove implicit type conversion
innobase/mem/mem0dbg.c:
Portability fix: Use %p for printing pointers
innobase/os/os0file.c:
Add DWORD casts for Windows
innobase/os/os0sync.c:
Add DWORD casts for Windows
innobase/os/os0thread.c:
Add DWORD casts for Windows
innobase/rem/rem0cmp.c:
Make implicit type conversions explicit
innobase/row/row0mysql.c:
Make implicit type conversions explicit
innobase/row/row0sel.c:
Portability fix: Use %p for printing pointers
innobase/trx/trx0sys.c:
Declare trx_sys_mysql_bin_log_pos_high and
trx_sys_mysql_bin_log_pos_low with a matching data type
innobase/ut/ut0ut.c:
Make implicit type conversion explicit
|
|/ /
| |
| |
| |
| |
| |
| |
| | |
Print a hex dump of the trx_t object if trx->n_mysql_tables_in_use != 0 at trx_free()
innobase/trx/trx0trx.c:
Print a hex dump of the trx_t object if trx->n_mysql_tables_in_use != 0 at trx_free()
|
| |
| |
| |
| |
| |
| |
| |
| | |
If InnoDB cannot allocate memory, keep retrying for 60 seconds before we crash mysqld; maybe the memory shortage is just temporary
innobase/ut/ut0mem.c:
If InnoDB cannot allocate memory, keep retrying for 60 seconds before we crash mysqld; maybe the memory shortage is just temporary
|
| |
| |
| |
| |
| |
| |
| |
| | |
Do not assert, but print diagnostics if MySQL tries to free a trx where n_mysql_tables_in_use > 0
innobase/trx/trx0trx.c:
Do not assert, but print diagnostics if MySQL tries to free a trx where n_mysql_tables_in_use > 0
|
|\ \
| | |
| | |
| | |
| | |
| | |
| | | |
into hundin.mysql.fi:/home/marko/mysql-4.1
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
row_sel_store_mysql_rec(): Do not try to space-pad BLOB fields. (Bug #8771)
innobase/row/row0sel.c:
row_sel_store_mysql_rec(): Do not try to space-pad BLOB fields. (Bug #8771)
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Work around the AIX 5.1 security patch ML7 problem in errno when it should be EEXIST
innobase/srv/srv0start.c:
Work around the AIX 5.1 security patch ML7 problem in errno when it should be EEXIST
|
|\ \ \
| | |/
| |/|
| | |
| | |
| | |
| | | |
innobase/os/os0file.c:
Auto merged
innobase/srv/srv0start.c:
SCCS merged
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Work around the AIX 5.1 ML7 patch problem in errno at a higher level, in srv0start.c
os0file.c:
Revert the AIX patch here
innobase/os/os0file.c:
Revert the AIX patch here
innobase/srv/srv0start.c:
Work around the AIX 5.1 ML7 patch problem in errno at a higher level, in srv0start.c
|
|\ \ \
| |/ /
| | /
| |/
|/|
| |
| |
| | |
into hundin.mysql.fi:/home/heikki/mysql-4.1
innobase/os/os0file.c:
Auto merged
|
| |
| |
| |
| |
| |
| |
| |
| | |
AIX 5.1 after security patch ML7 seems to contain a bug that instead of EEXIST it sets errno to 0 if a file creation fails because the file already exists. Work around that bug by interpreting errno 0 in AIX as EEXIST.
innobase/os/os0file.c:
AIX 5.1 after security patch ML7 seems to contain a bug that instead of EEXIST it sets errno to 0 if a file creation fails because the file already exists. Work around that bug by interpreting errno 0 in AIX as EEXIST.
|
|\ \
| |/ |
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
innobase/include/srv0srv.h:
Declare srv_auto_extend_increment and srv_max_purge_lag as ulong,
because ulint and ulong are of different size on Win64.
innobase/srv/srv0srv.c:
Declare srv_auto_extend_increment and srv_max_purge_lag as ulong,
because ulint and ulong are of different size on Win64.
|
|\ \
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
into mysql.com:/home/my/mysql-4.1
BitKeeper/etc/ignore:
added support-files/ndb-config-2-node.ini
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
(No really critical errors found, but a few possible wrong results)
innobase/dict/dict0dict.c:
Replace memcmp with comparison of characters to avoid warnings from purify when 'sptr' points to a very short string
mysql-test/r/select_found.result:
Add missing drop table
mysql-test/r/type_set.result:
More tests
mysql-test/t/select_found.test:
Add missing drop table
mysql-test/t/type_set.test:
More tests
mysys/my_init.c:
Avoid warning from purify (purify doesn't handle getrusage() properly)
sql/field.h:
enum & set are sorted as numbers. This fixes an access to uninitialized memory when enum/set are multi-byte characters
sql/filesort.cc:
enum & set are sorted as numbers. This fixes an access to uninitialized memory when enum/set are multi-byte characters
sql/item_cmpfunc.cc:
Fixed warning from purify. (Not critical as the arguments are passed to a function but not used)
Allocate Arg_comparator() with 'new' instead of sql_alloc() to ensure proper initialization
sql/mysqld.cc:
Wait for signal handler to stop when running --bootstrap
(Fixes warning from purify)
sql/sql_insert.cc:
Initialize slot used by innodb.cc (not critical)
sql/sql_lex.h:
Better comments
sql/sql_repl.cc:
memcmp -> bcmp() to avoid warning from purify
sql/sql_select.cc:
Fix for out-of-bound memory reference when doing DISTINCT on const expressions
strings/ctype-simple.c:
Fixes to not access uninitialized memory
(Not critical)
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Check if node == NULL, which means we are outside tablespace bounds, and print a big fatal error message
innobase/fil/fil0fil.c:
Check if node == NULL, which means we are outside tablespace bounds, and print a big fatal error message
|
|/ /
| |
| |
| |
| |
| |
| |
| | |
Fix bug #8677: if one used LOCK TABLES, created an InnoDB temp table, and did a multi-table update where a MyISAM table was the update table and the temp table was a read table, then InnoDB aserted in row0sel.c because n_mysql_tables_in_use was 0. Also, we remove the assertion altogether and just print an error to the .err log if this important consistency check fails. Then it is up to the user to read the .err log and notice the problem if there still are errors in MySQL's table locking.
innobase/row/row0sel.c:
Fix bug #8677: if one used LOCK TABLES, created an InnoDB temp table, and did a multi-table update where a MyISAM table was the update table and the temp table was a read table, then InnoDB aserted in row0sel.c because n_mysql_tables_in_use was 0. Also, we remove the assertion altogether and just print an error to the .err log if this important consistency check fails. Then it is up to the user to read the .err log and notice the problem if there still are errors in MySQL's table locking.
|
|\ \
| |/
| |
| |
| |
| |
| |
| |
| |
| | |
into hundin.mysql.fi:/home/heikki/mysql-4.1
innobase/row/row0mysql.c:
Auto merged
sql/sql_cache.cc:
Auto merged
|
| |
| |
| |
| |
| |
| |
| |
| | |
Backport the column prefix memory corruption fix from 5.0
innobase/row/row0mysql.c:
Backport the column prefix memory corruption fix from 5.0
|
| |
| |
| |
| |
| |
| |
| |
| | |
Remove wrong assertion that fails on 64 bits
innobase/include/eval0eval.ic:
Remove wrong assertion that fails on 64 bits
|
| |
| |
| |
| |
| |
| |
| |
| | |
Fix a debug assertion in rem0rec.ic on AMD64; 4.1 was already fixed
innobase/include/rem0rec.ic:
Fix a debug assertion in rem0rec.ic on AMD64; 4.1 was already fixed
|
| |
| |
| |
| |
| |
| |
| |
| | |
Fix an assertion failure in 64-bit computers if UNIV_MEM_DEBUG is defined
innobase/mem/mem0pool.c:
Fix an assertion failure in 64-bit computers if UNIV_MEM_DEBUG is defined
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
innobase/include/srv0srv.h:
Add configuration variable srv_auto_extend_increment
innobase/srv/srv0srv.c:
Add configuration variable srv_auto_extend_increment
sql/ha_innodb.h:
Add configuration variable srv_auto_extend_increment
sql/mysqld.cc:
Add startup option innodb_autoextend_increment
sql/set_var.cc:
Add settable global variable innodb_autoextend_increment
|
|\ \
| | |
| | |
| | |
| | |
| | |
| | | |
into mysql.com:/home/my/mysql-4.1
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
(Bug #7788 "Table is full" occurs during a multitable update")
client/mysqldump.c:
Style fixes
innobase/include/univ.i:
UNIV_DEBUG should not depend on configure --debug but on --debug=full
mysql-test/r/compare.result:
Added test to find bug in previous bugfix
mysql-test/t/compare.test:
Added test to find bug in previous bugfix
mysys/my_handler.c:
Proper fix for comparision with ' '
strings/ctype-big5.c:
Proper fix for comparision with ' '
strings/ctype-bin.c:
Proper fix for comparision with ' '
strings/ctype-gbk.c:
Proper fix for comparision with ' '
strings/ctype-latin1.c:
Proper fix for comparision with ' '
strings/ctype-mb.c:
Proper fix for comparision with ' '
strings/ctype-simple.c:
Proper fix for comparision with ' '
strings/ctype-sjis.c:
Proper fix for comparision with ' '
strings/ctype-tis620.c:
Proper fix for comparision with ' '
strings/ctype-ucs2.c:
Proper fix for comparision with ' '
strings/ctype-utf8.c:
Proper fix for comparision with ' '
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Use a 32-bit right-shift implementation through a 64-bit integer that should work ok for both gcc and Visual C++; the code depended on defining SIZEOF_LONG, and that is not set when compiling ibbackup
innobase/ut/ut0ut.c:
Use a 32-bit right-shift implementation through a 64-bit integer that should work ok for both gcc and Visual C++; the code depended on defining SIZEOF_LONG, and that is not set when compiling ibbackup
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Fix Windows porting bugs that broke ibbackup: 1) wrong error check in for CreateDirectory(), 2) wrong error check if the file did not exist in DeleteFile(), 3) too strict sharing restrictions in os_file_create_simple(): when ibbackup called that function, it would not allow mysqld to write to the file
innobase/os/os0file.c:
Fix Windows porting bugs that broke ibbackup: 1) wrong error check in for CreateDirectory(), 2) wrong error check if the file did not exist in DeleteFile(), 3) too strict sharing restrictions in os_file_create_simple(): when ibbackup called that function, it would not allow mysqld to write to the file
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
We accidentally checked if the DIRECTORY is of type OS_FILE_TYPE_UNKNOWN; our intention was to check if the FILE is that; best to remove the check altogether, as in crash recovery it is safest to try to open also files whose type is unknown
os0file.c:
Fix a bug: in Windows, os_file_readdir_next_file() returned OS_FILE_TYPE_UNKNOWN as the type of a regular file; this did not break mysqld, but did break ibbackup on Windows
innobase/os/os0file.c:
Fix a bug: in Windows, os_file_readdir_next_file() returned OS_FILE_TYPE_UNKNOWN as the type of a regular file; this did not break mysqld, but did break ibbackup on Windows
innobase/fil/fil0fil.c:
We accidentally checked if the DIRECTORY is of type OS_FILE_TYPE_UNKNOWN; our intention was to check if the FILE is that; best to remove the check altogether, as in crash recovery it is safest to try to open also files whose type is unknown
|
|\ \ \
| |/ /
|/| |
| | |
| | |
| | |
| | |
| | | |
into hundin.mysql.fi:/home/heikki/mysql-4.1
sql/mysqld.cc:
Auto merged
|