Commit graph

120 commits

Author SHA1 Message Date
marko
9c4c712b32 Revert the changes to os0file.c that were accidentally committed in r181:
os_file_create_tmpfile(): Replace the UNIV_HOTBACKUP specific
implementation with a run-time assertion failure.
2006-02-13 12:07:01 +00:00
marko
f6485936c0 Revert r148 until MySQL AB has finally merged the code to the 5.1 tree:
Port r146 from branches/5.0:

Make innodb_flush_log_at_trx_commit a settable global variable.
2006-02-13 11:57:38 +00:00
osku
5d554cff0d Fix failing innodb.test (missing "connection default;"). 2006-02-13 09:44:33 +00:00
marko
0579ac3eab Merge r175 from branches/5.0:
fil_extend_space_to_desired_size(): in UNIV_HOTBACKUP builds,
do not touch srv_data_file_sizes[] or srv_n_data_files.
2006-02-10 10:16:50 +00:00
osku
48eb9e46a1 Apply InnoDB-specific parts of the fix for bug #9680, wrong error from
cascading update.
2006-02-10 09:16:35 +00:00
osku
67be8fe939 Port r172 from branches/5.0:
Fix bug #17126, CHECK TABLE blocking other queries, by releasing the
btr_search_latch periodically during the adaptive hash table validation.
2006-02-09 15:44:27 +00:00
osku
c0e41e1229 Port r170 from branches/5.0:
Fix bug #16827, better error message if ibdata files omitted from my.cnf.
2006-02-09 12:46:53 +00:00
marko
549dfbc60a Remove the unused field fixed_offs from dict_field_t. 2006-02-07 13:08:46 +00:00
marko
057e72e176 Merge r167 from branches/5.0: Add a missing newline to the
LAST FOREIGN KEY ERROR section in SHOW INNODB STATUS output (Bug #16814).

dict_foreign_error_report(): Always print a newline after invoking
dict_print_info_on_foreign_key_in_create_format().
2006-02-06 10:36:04 +00:00
marko
50de35d083 Port r165 from branches/5.0: Port a change from MySQL:
innodb_cache.test: save and restore query_cache_size
2006-02-06 09:08:58 +00:00
marko
92e652f53d Port r161 from branches/5.0: Avoid breaking --with-debug builds on QNX
and other systems whose compiler pretends to be GCC 2.

univ.i: Outside __WIN__, define UNIV_INLINE as static inline.
2006-01-27 14:43:12 +00:00
marko
546078cc07 Import mysql-5.1-new changeset 1.1945.48.1 (Anthony Curtis):
Finalize storage engine plugins

ha_innodb.cc: remove unwanted handlerton entries; changes for show status
2006-01-27 10:17:02 +00:00
marko
0a1ae92ce3 Import mysql-5.1-new changeset 1.2012.1.8 (Sergei Golubchik):
WL#2935 - SHOW STATUS support in plugins

ha_innodb.cc, ha_innodb.h: s/struct show_var_st/SHOW_VAR/
2006-01-27 09:57:01 +00:00
marko
c5504a1cf7 Import mysql-5.1-new changeset 1.2012.1.6 (Sergei Golubchik):
Remove the declaration of innodb_export_status(), as it will
from now on be invoked via a function pointer in innobase_hton.
2006-01-27 09:45:57 +00:00
marko
c932f9a9fe Import mysql-5.1-new changeset 1.2011.1.1 (Alexander Barkov):
WL#1324 table name to file name encoding

ha_innobase::create(): do not remove .frm extension

row_is_mysql_tmp_table_name(): replace '#' with '@0023'
2006-01-27 09:41:19 +00:00
marko
c97b724d7a Import those changes from mysql-5.1-new ChangeSet 1.1979 (Lars Thalmann)
that were not part of r154.  (Bug #3300)

innodb.test, innodb.result: Remove binlog related tests, because they
are not InnoDB specific; they merely require a transactional table.

ha_innobase::ha_innobase(): Add HA_PRIMARY_KEY_ALLOW_RANDOM_ACCESS
to table_flags.

ha_innobase::rnd_init(): Disable semi-consistent read for random access.
2006-01-27 09:34:55 +00:00
marko
affc7f664c Port r142 of branches/5.0 (from MySQL):
NetWare specific change to increase thread stack size.
2006-01-26 13:12:11 +00:00
marko
5674905ffb Implement semi-consistent read to reduce lock conflicts at the cost
of breaking serializability.  (Bug #3300)

ha_innobase::unlock_row(): reset the "did semi consistent read" flag

ha_innobase::was_semi_consistent_read(),
ha_innobase::try_semi_consistent_read(): new methods

row_prebuilt_t, row_create_prebuilt(): add field row_read_type for
keeping track of semi-consistent reads

row_vers_build_for_semi_consistent_read(),
row_sel_build_committed_vers_for_mysql(): new functions

row_search_for_mysql(): implement semi-consistent reads
2006-01-26 10:45:27 +00:00
marko
3da319386c Port r152 from branches/5.0: 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.
2006-01-24 12:13:44 +00:00
marko
463d8e33a2 Port r150 from branches/5.0: Port r19 from innodb-4.1/trunk:
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.
2006-01-23 13:47:55 +00:00
osku
553062fbca Sync array optimizations, most importantly signal_object changed to not
call os_event_set while holding the sync array mutex.

Idea by Heikki, implementation by Osku, bug-fixes and other changes by
Heikki, and final review and cleanup by Osku.
2006-01-20 17:20:52 +00:00
marko
c91e3017c0 Port r146 from branches/5.0:
Make innodb_flush_log_at_trx_commit a settable global variable.
2006-01-19 13:31:02 +00:00
marko
dc8fdd92f3 Port r145 from branches/5.0:
Make innodb_thread_concurrency 0 by default, and extend the useable
range from 0 to 1000 (0 disables the thread throttling).

Remove SRV_CONCURRENCY_THRESHOLD (20).  The magic value to
disable the thread throttling is 0 from now on.
2006-01-19 13:30:20 +00:00
osku
bd47ccfc20 Do not reset cell->wait_object to NULL when a cell in sync array is freed
since this can lead to problems.
2006-01-18 10:56:36 +00:00
osku
c2083023c4 Port r139 from branches/5.0:
From MySQL:

Fix bug #15108 (mysqld crashes when innodb_log_file_size is set > 4GB).
2006-01-18 10:52:53 +00:00
osku
111716520c Remove incorrect warning printed in sync0arr.c. 2006-01-17 14:49:11 +00:00
osku
d32c8bbdc7 Port r136 from branches/5.0 (slightly tweaked for 5.1):
Add BUILD/compile-innodb script.
2006-01-17 14:02:20 +00:00
jan
6c70351358 Forward port r133 from branches/5.0:
Remember to use noninlined versions of the functions
on ha_innodb.cc !
2006-01-17 13:08:48 +00:00
marko
ab3a8768b7 Port r132 from branches/5.0: Port r15 from innodb-4.1:
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.

innodb.test, innodb.result: Add test case.
2006-01-12 16:48:34 +00:00
osku
e8db9ca25e Forward port r123 from branches/5.0:
Replace goto in os_event_wait with a normal loop.
2006-01-12 09:20:15 +00:00
jan
7b1119ef52 Forward port r127 from branches/5.0:
Fixed a 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(). Added test cases for a bug. Fixed some code style errors.
2006-01-12 09:16:11 +00:00
jan
e88869eeee Forward port r108 from from branches/5.0:
Fixed bug #15308: Problem of Order with Enum Column in 
Primary Key. Added a new test case for bug #14056.
2006-01-12 08:58:56 +00:00
jan
ebe34127fa Forward port r120 from branches/5.0:
Added diagnostic code trx_print() to 
innobase_query_caching_of_table_permitted() to find reason
why we are holding adaptive search latch.
2006-01-12 08:42:46 +00:00
marko
e5d47f6d70 Port r125 from branches/5.0:
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)
2006-01-11 13:19:16 +00:00
osku
876f0fbd4f Forward port r121 from branches/5.0:
Optimize sync array behavior by not having the woken threads reserve the
sync array mutex.
2006-01-10 11:38:47 +00:00
marko
6915755dc5 Port r118 from branches/5.0:
Remove some declarations of unused global variables and member variables
of class ha_innobase.
2006-01-05 07:54:34 +00:00
osku
fe27cef26c Forward port r115 from branches/5.0:
Fix bug #16157, a crash when innodb_log_group_home_dir is set to an empty
string. This patch is from Heikki.
2006-01-04 12:52:45 +00:00
marko
bd816d37f0 Port r114 from branches/5.0:
lock_rec_unlock(): Initialize local variable release_lock, in order to avoid
dereferencing an uninitialized pointer when no lock exists on rec.

This bug was introduced in r103 of branches/5.0, ported as r104 to trunk.
2006-01-03 13:54:05 +00:00
marko
eb0ab9d7ee Merge r112 from branches/5.0:
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)
2006-01-03 13:36:55 +00:00
marko
7572f8fc2e Port r110 from branches/5.0:
Do not log empty binlog file name at transaction commit.

trx_commit_off_kernel(): Do not write empty trx->mysql_log_file_name.
2005-12-30 12:39:17 +00:00
marko
c85162b1e8 Port r106 from branches/5.0:
Protect the increment and decrement operations on the statistic variables
os_n_pending_writes and os_n_pending_reads with os_file_count_mutex.
2005-12-20 15:22:49 +00:00
osku
7d3e9fd60b From MySQL:
Restore "make dist" for the header files in "innobase/include".
2005-12-20 09:41:30 +00:00
jan
c8b22058f7 Port r103 from braches/5.0 to trunk.
Fixed a bug on unlock_row. In a unlock_row we may unlock
only the latest lock granted to this transaction to the row.
2005-12-16 07:21:33 +00:00
osku
c088f6d38c From MySQL:
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-12-15 10:53:54 +00:00
jan
0629c3ed96 Port r100 from branches/5.0 to trunk. 2005-12-15 07:00:12 +00:00
marko
0809de5d74 Port r98 from branches/5.0: INCOMPATIBLE CHANGE:
Do not pad VARBINARY or BINARY columns. (Bug #14189)

innodb.test, innodb.result: Add test cases for foreign key constraints
between VARBINARY and BINARY columns, and between VARCHAR BINARY and
CHAR BINARY columns.

innobase_init(): Assert that
DATA_MYSQL_BINARY_CHARSET_COLL == my_charset_bin.number.

dtype_get_pad_char(): Do not pad VARBINARY or BINARY columns.

row_ins_cascade_calc_update_vec(): Refuse ON UPDATE CASCADE
when trying to change the length 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.
2005-12-14 14:05:34 +00:00
osku
d10a22562c Port r95 and r96 from branches/5.0 to trunk:
Add tests for >1K keys on 32-bit platforms.

Clean up innodb_gis.test.
2005-12-12 12:42:41 +00:00
jan
2d78585bf3 trunk: Port a fix for bug #15308 Problem of Order with Enum Column in Primary
Key from branches/5.0.
2005-12-12 11:18:31 +00:00
marko
789cbab236 row_ins_foreign_report_add_err(): When printing the parent record, use the
index in the parent table rather than the index in the child table.
(Bug #15550)

innodb.test, innodb.result: Add test cases for foreign key errors.
2005-12-09 12:57:48 +00:00
marko
0c76f7cb96 trunk: Remove error introduced in r87 of branches/5.0, ported in r88:
In row_ins_set_detailed(), truncate the tmpfile by os_file_set_eof(), because
trx_set_detailed_error_from_file() does not call ftell() to determine
the actual length of the file.  This bug resulted in trash being appended
to foreign key error messages.
2005-12-09 07:46:45 +00:00